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 -vrun 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
direnvto load:direnv allow
This will ensure your environment is correctly set up every time you enter the project directory.
Install PMD
brew install pmdpmd check \
--dir src/main/java \
--rulesets \
.github/pmd-ruleset.xml \
--format html \
-r build/reports/pmd/pmd-report.htmlThis service supports multiple authentication providers. See the authentication documentation for details:
- Authentication Documentation - Complete authentication guide
- Quick Reference - Quick reference for developers
- JWTFilter Documentation - JWT filter specific documentation
This project is licensed under the MIT License - see the LICENSE file for details