Keycloak WaverifyPlus is a multi-project Gradle-based application designed to integrate with Keycloak for extended functionality. It comprises two subprojects:
- mock-vp
- authenticator-demographic
Using this project from docker compose:
services:
keycloak:
image: ghcr.io/uwcirg/keycloak-waverifyplus:latest
container_name: keycloak
init: true
ports:
- "8080:8080"
volumes:
- keycloak-data:/opt/keycloak/data
env_file:
- keycloak.env
depends_on:
- mysql
mysql:
image: mysql:8.0
container_name: keycloak-mysql
restart: always
env_file:
- keycloak.env
volumes:
- mysql-data:/var/lib/mysql
volumes:
keycloak-data:
mysql-data:
Example for keycloak.env at: keycloak.env
mock-vp is a Spring Boot application that simulates a validation provider server. It provides REST endpoints for verifying demographic information. This is used to mock real-world integrations in a controlled environment for testing and development.
For more details, see the mock-vp README.
authenticator-demographic is a Keycloak Service Provider Interface (SPI) implementation that integrates both demographic validation and PIN-based authentication into the Keycloak ecosystem. It communicates with the mock-vp server to perform demographic validation and supports secure PIN-based authentication workflows.
For more details, see the authenticator-demographic README.
- Clone the repository:
git clone https://github.com/uwcirg/keycloak-waverifyplus.git cd keycloak-waverifyplus
- Build the entire project:
./gradlew build
- To run mock-vp, execute:
./gradlew :mock-vp:bootRun
- To run unit tests:
./gradlew test
- To run unit tests:
./gradlew test
- To run integration tests:
./gradlew integrationTest