Thanks for your interest! JavaMemHunter is open-sourced for the security community under Apache License 2.0. As of v1.0 it does detect / score / clean / verify for Behinder agent, Godzilla filter, and JSP webshells. Contributions adding new shell types or container support are very welcome.
- JDK 17 (build + integration tests run on 17)
- JDK 8 optional (only needed if you reproduce the Windows + JDK 17 NIO selector workaround locally)
- Maven Wrapper (
./mvnw/mvnw.cmd) — do not require a systemmvn
./mvnw -DskipITs verify # unit tests
./mvnw -pl integration-tests -Psb27 verify # Spring Boot 2.7 E2E
./mvnw -pl integration-tests -Psb32 verify # Spring Boot 3.2 E2E- Open an issue first for any non-trivial change, so we can agree on the approach before you spend time on a PR.
- Branch from
master:feature/<short-name>. - Write tests first (TDD). New cleaners or scanners must have unit tests covering happy path + at least one failure mode.
- Run
./mvnw verifylocally before pushing. - Open a PR using the template; CI must pass.
- Follow the existing indentation and naming. No formatter is enforced; match the surrounding code.
- Keep files focused. If a class grows past ~400 lines or accrues unrelated responsibilities, propose a split.
- Reflection-heavy code lives in
agent/.../compat/andagent/.../cleaner/. New servlet-API references must go throughServletApiBridgeso they stay javax/jakarta neutral.
bug— reproducible defectenhancement— new capabilitygood first issue— small, well-scoped, documentedhelp wanted— accepted but maintainers can't immediately work on itwontfix— out of scope or rejected
Not required at this stage.
If you find a vulnerability, do not file a public issue. Report it privately via GitHub Security Advisories: go to the repository's Security tab → Report a vulnerability. We'll respond and coordinate a fix and disclosure.