Keycloak SPI written in Scala to publish events to a MQTT broker
Find a file
2024-02-19 18:00:25 +01:00
project Add license 2024-02-18 19:03:59 +01:00
src/main Switch JSON serialization framework 2024-02-19 18:00:25 +01:00
.gitignore Init 2024-02-18 17:11:38 +01:00
.scalafmt.conf Init 2024-02-18 17:11:38 +01:00
build.sbt Switch JSON serialization framework 2024-02-19 18:00:25 +01:00
LICENSE Add license 2024-02-18 19:03:59 +01:00
README.md Update README.md 2024-02-18 19:16:41 +01:00

MQTT Event Listener Provider for Keycloak

Keycloak SPI to publish events to a MQTT broker written in Scala

Based on https://github.com/softwarefactory-project/keycloak-event-listener-mqtt

TODO: Reduce JAR size

Configuration

  • server-uri (String): MQTT broker URI
  • username (String) / password (String): Credentials
  • topic (String): MQTT base topic
  • use-persistence (Boolean): MQTT persistence
  • retained (Boolean): Message retention
  • clean-session (Boolean): Establish clean sessions
  • connection-timeout (Int): Timeout duration in seconds
  • qos (Int): MQTT QoS

Installtion

Copy the JAR into providers/ and run Keycloak with these options:

./bin/kc.sh start \
        --proxy=edge \
        --hostname-strict=false \
        --spi-events-listener-mqtt-server-uri tcp://localhost:1883 \
        --spi-events-listener-mqtt-username username \
        --spi-events-listener-mqtt-password password \
        --spi-events-listener-mqtt-topic keycloak \
        --spi-events-listener-mqtt-use-persistence true \
        --spi-events-listener-mqtt-retained true \
        --spi-events-listener-mqtt-clean-session true \
        --spi-events-listener-mqtt-qos 0