This repository provides an example for implementing a cross-cutting concern like
- Logging
- JWT decryption
- Authorisation of resource endpoints.
To get started with this project, you'll need Java and Gradle installed.
-
☕️ Java 21 or later: Ensure Java is installed and available on your
PATH
. -
⚙️ Gradle: You can install Gradle using your preferred method:
macOS (Recommended with Homebrew):
brew install gradle
Other Platforms: Visit the Gradle installation guide for platform-specific instructions.
You can verify installation with:
java -version
gradle -v
run gradle wrapper
Recommended Approach for macOS Users (using direnv
)
If you're on macOS, you can use direnv to automatically load these environment variables per project:
-
Install
direnv
:brew install direnv
-
Hook it into your shell (example for bash or zsh):
echo 'eval "$(direnv hook bash)"' >> ~/.bash_profile # or for zsh echo 'eval "$(direnv hook zsh)"' >> ~/.zshrc
-
Allow
direnv
to load:direnv allow
This will ensure your environment is correctly set up every time you enter the project directory.
Install PMD
brew install pmd
pmd check \
--dir src/main/java \
--rulesets \
.github/pmd-ruleset.xml \
--format html \
-r build/reports/pmd/pmd-report.html
See also: JWTFilter documentation
This project is licensed under the MIT License - see the LICENSE file for details