Plugin
2 minute read
The plugin provides the auth flows that keycloak uses for x509 (CAC) authentication as well as some of the surrounding registration flows.
One nuanced auth flow is the creation of a Mattermost ID attribute for users. CustomEventListener is responsible for generating the unique ID.
Note
When creating a user via ADMIN API or ADMIN UI, the REGISTER
event is not triggered, resulting in no Mattermost ID attribute generation. This will need to be done manually via click ops or the api. An example of how the attribute can be set via api can be seen here.
Requirements
Working on the plugin requires JDK17+ and Maven 3.5+.
# local java version
java -version
# loval maven version
mvn -version
Plugin Testing with Keycloak
After making changes to the plugin code and verifying that unit tests are passing ( and hopefully writing some more ), test against Keycloak.
See the New uds-identity-config Image
section in the CUSTOMIZE.md for building, publishing, and using the new image with uds-core
.
Plugin Unit Testing / Code Coverage
The maven surefire and jacoco plugins are configured in the pom.xml.
Note
mvn
commands will need to be executed from inside of the src/plugin
directory
Note
There is a uds-cli task for running the mvn clean verify
command: uds run dev-plugin
.
Some important commands that can be used when developing/testing on the plugin:
Command | Description |
---|---|
mvn clean install | Cleans up build artifacts and then builds and installs project into local maven repository. |
mvn clean test | Cleans up build artifacts and then compiles the source code and runs all tests in the project. |
mvn clean test -Dtest=com.defenseunicorns.uds.keycloak.plugin.X509ToolsTest | Same as mvn clean test but instead of running all tests in project, only runs the tests in designated file. |
mvn surefire-report:report | This command will run the mvn clean test and then generate the surefire-report.html file in target/site |
mvn clean verify | Clean project, run tests, and generate both surefire and jacoco reports |
Viewing the Test Reports
# maven command from src/plugin directory
mvn clean verify
Open the src/plugin/target/site/surefire-report.html
file in your browser to view the surefire test report.
Open the src/plugin/target/site/jacoco/index.html
file in your browser to view the unit test coverage report generated by jacoco.
Both reports will hot reload each time they are regenerated, no need to open each time.
Feedback
Was this page helpful?