Skip to content

Latest commit

 

History

History
103 lines (77 loc) · 2.3 KB

README.md

File metadata and controls

103 lines (77 loc) · 2.3 KB

Keycloak WaverifyPlus

Keycloak WaverifyPlus is a multi-project Gradle-based application designed to integrate with Keycloak for extended functionality. It comprises two subprojects:

  1. mock-vp
  2. authenticator-demographic

Quick start

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


Subprojects

1. mock-vp

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.


2. authenticator-demographic

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.


How to Build and Run

  1. Clone the repository:
    git clone https://github.com/uwcirg/keycloak-waverifyplus.git
    cd keycloak-waverifyplus
  2. Build the entire project:
    ./gradlew build
  3. To run mock-vp, execute:
    ./gradlew :mock-vp:bootRun

Running Tests and Integration Tests

mock-vp

  • To run unit tests:
    ./gradlew test

authenticator-demographic

  • To run unit tests:
    ./gradlew test
  • To run integration tests:
    ./gradlew integrationTest