Giter Club home page Giter Club logo

keycloak-event-listener-mqtt's Introduction

keycloak-event-listener-mqtt

A Keycloak SPI that publishes events to a MQTT broker.

This SPI has been deployed successfully on a containerized Keycloak 22.0. It should therefore work properly on any version of Keycloak above 22.0.

Build

mvn clean install

To build the SPI for use with a version of Keycloak prior to 22.X, you need to use openjdk 11 and patch pom.xml to target java 11:

<source>11</source>
<target>11</target>

Deploy

Keycloak on Wildfly

  • Copy target/event-listener-mqtt-jar-with-dependencies.jar to {KEYCLOAK_HOME}/standalone/deployments
  • Edit standalone.xml to configure the MQTT service settings. Find the following section in the configuration:
<subsystem xmlns="urn:jboss:domain:keycloak-server:1.1">
    <web-context>auth</web-context>

And add below:

<spi name="eventsListener">
    <provider name="mqtt" enabled="true">
        <properties>
            <property name="serverUri" value="tcp://127.0.0.1:1883"/>
            <property name="username" value="mqtt_user"/>
            <property name="password" value="mqtt_password"/>
            <property name="topic" value="my_topic"/>
            <property name="usePersistence" value="true">
            <property name="retained" value="true">
            <property name="cleanSession" value="true">
            <property name="qos" value="0">
        </properties>
    </provider>
</spi>

Leave username and password out if the service allows anonymous write access. If unset, the default message topic is "keycloak/events". By default, the SPI won't use persistence. If set to true, messages will be persisted in memory.

  • Restart the keycloak server.

Keycloak on Quarkus

  • Copy the jar archive to /opt/keycloak/providers/ in the keycloak container.
  • run keycloak with the following options:
kc.sh start
  --spi-events-listener-mqtt-server-uri tcp://your.mqtt.server:port \
  --spi-events-listener-mqtt-publisher-id kc-mqtt \
  --spi-events-listener-mqtt-username mqtt_user \
  --spi-events-listener-mqtt-password mqtt_password \
  --spi-events-listener-mqtt-topic my_topic \
  --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

Trying it out

The Dockerfile in the testing directory can be used to build a keycloak container image with the listener pre-installed. It assumes the compiled jar has been generated.

The compose in the same directory will launch keycloak and a MQTT server; keycloak is configured to publish to this server - however the listener must be enabled on any realm.

The demo.sh script at the root of the repository automates all the steps above up to and including configuring the master realm to publish events to the MQTT server, and can be used to test the event listener out.

keycloak-event-listener-mqtt's People

Contributors

mhuin avatar sbaeurle avatar sf-project-io avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

keycloak-event-listener-mqtt's Issues

Verbose logging of event listener configuration

Hey, I did check the source code to verify the origin of the following log statement issued by the event listener:

MQTT Event Listener configured to use server ssl://***:1883 with username ***

However I was not able to find any configuration or code statements related to the output.

Since this occurs quite frequently (for each Keycloak event), I was wondering if and how to disable this

Cannot run keycloak with it 21.0.1

ive done mvn clean package
then moved .jar to providers, did volume hookup to quay.io and result is:

ERROR: Failed to run 'build' command.
keycloak-round-2-keycloak-1     | ERROR: io.quarkus.builder.BuildException: Build failure: Build failed due to errors
keycloak-round-2-keycloak-1     | 	[error]: Build step org.keycloak.quarkus.deployment.KeycloakProcessor#configureKeycloakSessionFactory threw an exception: java.util.ServiceConfigurationError: org.keycloak.events.EventListenerProviderFactory: org.softwarefactory.keycloak.providers.events.mqtt.MQTTEventListenerProviderFactory Unable to get public no-arg constructor

how to solve this?

UH OH!! MqttException (0) : Message not send after user update

Hi,

when i update a user in keycloak, i get this error.
The mqtt broker does not received the message.

15:39:20,487 INFO [stdout] (default task-2) UH OH!! MqttException (0)
15:39:20,488 ERROR [stderr] (default task-2) MqttException (0)
15:39:20,489 ERROR [stderr] (default task-2) at deployment.event-listener-mqtt-9.0.0-jar-with-dependencies.jar//org.eclipse.paho.client.mqttv3.persist.MqttDefaultFilePersistence.open(MqttDefaultFilePersistence.java:85)

Here is the associated code of the error :

https://github.com/eclipse/paho.mqtt.java/blob/master/org.eclipse.paho.client.mqttv3/src/main/java/org/eclipse/paho/client/mqttv3/persist/MqttDefaultFilePersistence.java

public void open(String clientId, String theConnection) throws MqttPersistenceException {
		
		if (dataDir.exists() && !dataDir.isDirectory()) {
			throw new MqttPersistenceException();
		} else if (!dataDir.exists() ) {
			if (!dataDir.mkdirs()) {
				throw new MqttPersistenceException();
			}
		} 
		if (!dataDir.canWrite()) {
			throw new MqttPersistenceException();
		}
...
}

Here is my docker-compose

version: '3'
services:
  mqtt:
      image: "hivemq/hivemq4"
      container_name: "mqtt"
      ports:
        - 1883:1883
        - 8883:8883
      networks:
        - my-project
  keycloak:
    build:
      context: ./keycloak
      dockerfile: Dockerfile
    container_name: "keycloak"
    environment:
      DB_VENDOR: mysql
      DB_ADDR: mysql
      DB_PORT: 3306
      DB_DATABASE: myproject
      DB_USER: myproject
      DB_PASSWORD: myproject
      KEYCLOAK_USER: admin
      KEYCLOAK_PASSWORD: admin
      KEYCLOAK_IMPORT: /opt/jboss/keycloak/imports/keycloak-myproject.json -Dkeycloak.profile.feature.upload_scripts=enabled          
      PROXY_ADDRESS_FORWARDING: "true"
      KEYCLOAK_LOGLEVEL: ALL
      MQTT_HOST: tcp://mqtt:1883
    command: ["-c=standalone.xml"]
    volumes:
      - ./keycloak/imports:/opt/jboss/keycloak/imports
    ports:
      - '8092:8080'
      - '8443:8443'
      - '9990:9990'
    depends_on:
      - mysql
      - mqtt
    links:
      - mysql
      - mqtt
    networks:
      - my-project

Le standalone.xml

<spi name="eventsListener">
                <provider name="mqtt" enabled="true">
                    <properties>
                        <property name="serverUri" value="tcp://127.0.0.1:1883"/>
                        <property name="username" value=""/>
                        <property name="password" value=""/>
                        <property name="topic" value="keycloak"/>
                    </properties>
                </provider>
            </spi>

my Dockerfile

FROM jboss/keycloak:11.0.2
COPY event-listener-mqtt-9.0.0-jar-with-dependencies.jar /opt/jboss/keycloak/standalone/deployments/event-listener-mqtt-9.0.0-jar-with-dependencies.jar
COPY startup-config.cli /opt/jboss/startup-scripts/startup-config.cli
COPY ./imports/keycloak-realm.json /opt/jboss/keycloak/keycloak-realm.json

and my startup-config.cli

embed-server --std-out=echo
/subsystem=keycloak-server/spi=eventsListener/:add
/subsystem=keycloak-server/spi=eventsListener/provider=mqtt/:add(properties={"serverUri" => "tcp://localhost:1883", "topic" => "keycloak"}, enabled=true)
stop-embedded-server

In keycloak, the mqtt logger is selected.
The mqtt run well. I MQTTBox to send message on it.

How can i resolve this error ?

Thanks a lot

updating standalone.xml causes keycloak not to start

I have compiled the code and copied jar to modules/org/soft*/key*/prov*/events/mqtt/main and created module.xml as docs in 6.2.2 of the Server Developer docs

Then updated standalone.xml

    <subsystem xmlns="urn:jboss:domain:keycloak-server:1.1">
        <web-context>auth</web-context>
        <providers>
            <provider>classpath:${jboss.home.dir}/providers/*</provider>
            <!-- this is the line I have added -->
            <provider>module:org/softwarefactory/keycloak/providers/events/mqtt</provider>
        </providers>

Running standalone.sh -b 0.0.0.0 gives

.war (runtime-name: keycloak-server.war) in 255ms
09:43:01,955 ERROR [org.jboss.as.controller.management-operation] (Controller Boot Thread) WFLYCTL0013: Operation ("add") failed - address: ([("subsystem" => "microprofile-metrics-smallrye")]): java.lang.NullPointerException
at [email protected]//org.wildfly.extension.microprofile.metrics.MicroProfileMetricsSubsystemAdd$2.execute(MicroProfileMetricsSubsystemAdd.java:86)
at [email protected]//org.jboss.as.controller.AbstractOperationContext.executeStep(AbstractOperationContext.java:999)
......

Removing the additional line and all is well. Assuming there is no daft error in the xml, then would the problem be that the system finds the generated jar and reacts badly to that?

But having said that, the error complains about microprofile-metrics-smallrye:2.0, so should that be commented out? I also saw this https://developer.jboss.org/thread/280621.

Regards,
John

UH OH!! MqttException (0)

Hi,

I've added this event listener to keycloak 9, and for the first few messages all seems fine (both tcp and ws), however after a while it then drops out and struggles to reconnect.

Mar 31 09:14:09 mgmt-user-keycloak standalone.sh[6791]: #033[0m#033[0m09:14:09,619 INFO [stdout] (default task-2) UH OH!! MqttException (0)
Mar 31 09:14:09 mgmt-user-keycloak standalone.sh[6791]: #033[0m#033[31m09:14:09,628 ERROR [stderr] (default task-2) MqttException (0)
Mar 31 09:14:09 mgmt-user-keycloak standalone.sh[6791]: #033[0m#033[31m09:14:09,628 ERROR [stderr] (default task-2) #011at org.eclipse.paho.client.mqttv3.persist.MqttDefaultFilePersistence.open(MqttDefaultFilePersistence.java:85)
Mar 31 09:14:09 mgmt-user-keycloak standalone.sh[6791]: #033[0m#033[31m09:14:09,629 ERROR [stderr] (default task-2) #011at org.eclipse.paho.client.mqttv3.MqttAsyncClient.(MqttAsyncClient.java:469)
Mar 31 09:14:09 mgmt-user-keycloak standalone.sh[6791]: #033[0m#033[31m09:14:09,629 ERROR [stderr] (default task-2) #011at org.eclipse.paho.client.mqttv3.MqttAsyncClient.(MqttAsyncClient.java:320)
Mar 31 09:14:09 mgmt-user-keycloak standalone.sh[6791]: #033[0m#033[31m09:14:09,630 ERROR [stderr] (default task-2) #011at org.eclipse.paho.client.mqttv3.MqttAsyncClient.(MqttAsyncClient.java:315)
Mar 31 09:14:09 mgmt-user-keycloak standalone.sh[6791]: #033[0m#033[31m09:14:09,635 ERROR [stderr] (default task-2) #011at org.eclipse.paho.client.mqttv3.MqttClient.(MqttClient.java:227)
Mar 31 09:14:09 mgmt-user-keycloak standalone.sh[6791]: #033[0m#033[31m09:14:09,636 ERROR [stderr] (default task-2) #011at org.eclipse.paho.client.mqttv3.MqttClient.(MqttClient.java:138)
Mar 31 09:14:09 mgmt-user-keycloak standalone.sh[6791]: #033[0m#033[31m09:14:09,636 ERROR [stderr] (default task-2) #011at org.softwarefactory.keycloak.providers.events.mqtt.MQTTEventListenerProvider.onEvent(MQTTEventListenerProvider.java:100)
Mar 31 09:14:09 mgmt-user-keycloak standalone.sh[6791]: #033[0m#033[31m09:14:09,636 ERROR [stderr] (default task-2) #011at org.keycloak.services.resources.admin.AdminEventBuilder.send(AdminEventBuilder.java:256)
Mar 31 09:14:09 mgmt-user-keycloak standalone.sh[6791]: #033[0m#033[31m09:14:09,636 ERROR [stderr] (default task-2) #011at org.keycloak.services.resources.admin.AdminEventBuilder.success(AdminEventBuilder.java:235)
Mar 31 09:14:09 mgmt-user-keycloak standalone.sh[6791]: #033[0m#033[31m09:14:09,636 ERROR [stderr] (default task-2) #011at org.keycloak.services.resources.admin.UserResource.updateUser(UserResource.java:176)
Mar 31 09:14:09 mgmt-user-keycloak standalone.sh[6791]: #033[0m#033[31m09:14:09,636 ERROR [stderr] (default task-2) #011at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
Mar 31 09:14:09 mgmt-user-keycloak standalone.sh[6791]: #033[0m#033[31m09:14:09,636 ERROR [stderr] (default task-2) #011at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
Mar 31 09:14:09 mgmt-user-keycloak standalone.sh[6791]: #033[0m#033[31m09:14:09,637 ERROR [stderr] (default task-2) #011at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
Mar 31 09:14:09 mgmt-user-keycloak standalone.sh[6791]: #033[0m#033[31m09:14:09,637 ERROR [stderr] (default task-2) #011at java.lang.reflect.Method.invoke(Method.java:498)
Mar 31 09:14:09 mgmt-user-keycloak standalone.sh[6791]: #033[0m#033[31m09:14:09,637 ERROR [stderr] (default task-2) #011at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:138)
Mar 31 09:14:09 mgmt-user-keycloak standalone.sh[6791]: #033[0m#033[31m09:14:09,637 ERROR [stderr] (default task-2) #011at org.jboss.resteasy.core.ResourceMethodInvoker.internalInvokeOnTarget(ResourceMethodInvoker.java:517)
Mar 31 09:14:09 mgmt-user-keycloak standalone.sh[6791]: #033[0m#033[31m09:14:09,637 ERROR [stderr] (default task-2) #011at org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTargetAfterFilter(ResourceMethodInvoker.java:406)
Mar 31 09:14:09 mgmt-user-keycloak standalone.sh[6791]: #033[0m#033[31m09:14:09,637 ERROR [stderr] (default task-2) #011at org.jboss.resteasy.core.ResourceMethodInvoker.lambda$invokeOnTarget$0(ResourceMethodInvoker.java:370)
Mar 31 09:14:09 mgmt-user-keycloak standalone.sh[6791]: #033[0m#033[31m09:14:09,637 ERROR [stderr] (default task-2) #011at org.jboss.resteasy.core.interception.PreMatchContainerRequestContext.filter(PreMatchContainerRequestContext.java:356)
Mar 31 09:14:09 mgmt-user-keycloak standalone.sh[6791]: #033[0m#033[31m09:14:09,637 ERROR [stderr] (default task-2) #011at org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTarget(ResourceMethodInvoker.java:372)
Mar 31 09:14:09 mgmt-user-keycloak standalone.sh[6791]: #033[0m#033[31m09:14:09,638 ERROR [stderr] (default task-2) #011at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:344)
Mar 31 09:14:09 mgmt-user-keycloak standalone.sh[6791]: #033[0m#033[31m09:14:09,638 ERROR [stderr] (default task-2) #011at org.jboss.resteasy.core.ResourceLocatorInvoker.invokeOnTargetObject(ResourceLocatorInvoker.java:137)
Mar 31 09:14:09 mgmt-user-keycloak standalone.sh[6791]: #033[0m#033[31m09:14:09,638 ERROR [stderr] (default task-2) #011at org.jboss.resteasy.core.ResourceLocatorInvoker.invoke(ResourceLocatorInvoker.java:106)
Mar 31 09:14:09 mgmt-user-keycloak standalone.sh[6791]: #033[0m#033[31m09:14:09,649 ERROR [stderr] (default task-2) #011at org.jboss.resteasy.core.ResourceLocatorInvoker.invokeOnTargetObject(ResourceLocatorInvoker.java:132)
Mar 31 09:14:09 mgmt-user-keycloak standalone.sh[6791]: #033[0m#033[31m09:14:09,655 ERROR [stderr] (default task-2) #011at org.jboss.resteasy.core.ResourceLocatorInvoker.invoke(ResourceLocatorInvoker.java:106)
Mar 31 09:14:09 mgmt-user-keycloak standalone.sh[6791]: #033[0m#033[31m09:14:09,655 ERROR [stderr] (default task-2) #011at org.jboss.resteasy.core.ResourceLocatorInvoker.invokeOnTargetObject(ResourceLocatorInvoker.java:132)
Mar 31 09:14:09 mgmt-user-keycloak standalone.sh[6791]: #033[0m#033[31m09:14:09,656 ERROR [stderr] (default task-2) #011at org.jboss.resteasy.core.ResourceLocatorInvoker.invoke(ResourceLocatorInvoker.java:106)
Mar 31 09:14:09 mgmt-user-keycloak standalone.sh[6791]: #033[0m#033[31m09:14:09,656 ERROR [stderr] (default task-2) #011at org.jboss.resteasy.core.ResourceLocatorInvoker.invokeOnTargetObject(ResourceLocatorInvoker.java:132)
Mar 31 09:14:09 mgmt-user-keycloak standalone.sh[6791]: #033[0m#033[31m09:14:09,656 ERROR [stderr] (default task-2) #011at org.jboss.resteasy.core.ResourceLocatorInvoker.invoke(ResourceLocatorInvoker.java:100)
Mar 31 09:14:09 mgmt-user-keycloak standalone.sh[6791]: #033[0m#033[31m09:14:09,657 ERROR [stderr] (default task-2) #011at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:440)
Mar 31 09:14:09 mgmt-user-keycloak standalone.sh[6791]: #033[0m#033[31m09:14:09,657 ERROR [stderr] (default task-2) #011at org.jboss.resteasy.core.SynchronousDispatcher.lambda$invoke$4(SynchronousDispatcher.java:229)
Mar 31 09:14:09 mgmt-user-keycloak standalone.sh[6791]: #033[0m#033[31m09:14:09,657 ERROR [stderr] (default task-2) #011at org.jboss.resteasy.core.SynchronousDispatcher.lambda$preprocess$0(SynchronousDispatcher.java:135)
Mar 31 09:14:09 mgmt-user-keycloak standalone.sh[6791]: #033[0m#033[31m09:14:09,665 ERROR [stderr] (default task-2) #011at org.jboss.resteasy.core.interception.PreMatchContainerRequestContext.filter(PreMatchContainerRequestContext.java:356)
Mar 31 09:14:09 mgmt-user-keycloak standalone.sh[6791]: #033[0m#033[31m09:14:09,666 ERROR [stderr] (default task-2) #011at org.jboss.resteasy.core.SynchronousDispatcher.preprocess(SynchronousDispatcher.java:138)
Mar 31 09:14:09 mgmt-user-keycloak standalone.sh[6791]: #033[0m#033[31m09:14:09,666 ERROR [stderr] (default task-2) #011at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:215)
Mar 31 09:14:09 mgmt-user-keycloak standalone.sh[6791]: #033[0m#033[31m09:14:09,667 ERROR [stderr] (default task-2) #011at org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:227)
Mar 31 09:14:09 mgmt-user-keycloak standalone.sh[6791]: #033[0m#033[31m09:14:09,667 ERROR [stderr] (default task-2) #011at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:56)
Mar 31 09:14:09 mgmt-user-keycloak standalone.sh[6791]: #033[0m#033[31m09:14:09,667 ERROR [stderr] (default task-2) #011at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:51)
Mar 31 09:14:09 mgmt-user-keycloak standalone.sh[6791]: #033[0m#033[31m09:14:09,668 ERROR [stderr] (default task-2) #011at javax.servlet.http.HttpServlet.service(HttpServlet.java:590)
Mar 31 09:14:09 mgmt-user-keycloak standalone.sh[6791]: #033[0m#033[31m09:14:09,668 ERROR [stderr] (default task-2) #011at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:74)
Mar 31 09:14:09 mgmt-user-keycloak standalone.sh[6791]: #033[0m#033[31m09:14:09,669 ERROR [stderr] (default task-2) #011at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:129)
Mar 31 09:14:09 mgmt-user-keycloak standalone.sh[6791]: #033[0m#033[31m09:14:09,686 ERROR [stderr] (default task-2) #011at org.keycloak.services.filters.KeycloakSessionServletFilter.doFilter(KeycloakSessionServletFilter.java:91)
Mar 31 09:14:09 mgmt-user-keycloak standalone.sh[6791]: #033[0m#033[31m09:14:09,694 ERROR [stderr] (default task-2) #011at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
Mar 31 09:14:09 mgmt-user-keycloak standalone.sh[6791]: #033[0m#033[31m09:14:09,694 ERROR [stderr] (default task-2) #011at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
Mar 31 09:14:09 mgmt-user-keycloak standalone.sh[6791]: #033[0m#033[31m09:14:09,695 ERROR [stderr] (default task-2) #011at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:84)
Mar 31 09:14:09 mgmt-user-keycloak standalone.sh[6791]: #033[0m#033[31m09:14:09,695 ERROR [stderr] (default task-2) #011at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)
Mar 31 09:14:09 mgmt-user-keycloak standalone.sh[6791]: #033[0m#033[31m09:14:09,695 ERROR [stderr] (default task-2) #011at io.undertow.servlet.handlers.ServletChain$1.handleRequest(ServletChain.java:68)
Mar 31 09:14:09 mgmt-user-keycloak standalone.sh[6791]: #033[0m#033[31m09:14:09,695 ERROR [stderr] (default task-2) #011at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
Mar 31 09:14:09 mgmt-user-keycloak standalone.sh[6791]: #033[0m#033[31m09:14:09,696 ERROR [stderr] (default task-2) #011at org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:78)
Mar 31 09:14:09 mgmt-user-keycloak standalone.sh[6791]: #033[0m#033[31m09:14:09,696 ERROR [stderr] (default task-2) #011at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
Mar 31 09:14:09 mgmt-user-keycloak standalone.sh[6791]: #033[0m#033[31m09:14:09,697 ERROR [stderr] (default task-2) #011at io.undertow.servlet.handlers.RedirectDirHandler.handleRequest(RedirectDirHandler.java:68)
Mar 31 09:14:09 mgmt-user-keycloak standalone.sh[6791]: #033[0m#033[31m09:14:09,704 ERROR [stderr] (default task-2) #011at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:132)
Mar 31 09:14:09 mgmt-user-keycloak standalone.sh[6791]: #033[0m#033[31m09:14:09,704 ERROR [stderr] (default task-2) #011at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)
Mar 31 09:14:09 mgmt-user-keycloak standalone.sh[6791]: #033[0m#033[31m09:14:09,704 ERROR [stderr] (default task-2) #011at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
Mar 31 09:14:09 mgmt-user-keycloak standalone.sh[6791]: #033[0m#033[31m09:14:09,705 ERROR [stderr] (default task-2) #011at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)
Mar 31 09:14:09 mgmt-user-keycloak standalone.sh[6791]: #033[0m#033[31m09:14:09,705 ERROR [stderr] (default task-2) #011at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64)
Mar 31 09:14:09 mgmt-user-keycloak standalone.sh[6791]: #033[0m#033[31m09:14:09,706 ERROR [stderr] (default task-2) #011at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60)
Mar 31 09:14:09 mgmt-user-keycloak standalone.sh[6791]: #033[0m#033[31m09:14:09,706 ERROR [stderr] (default task-2) #011at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77)
Mar 31 09:14:09 mgmt-user-keycloak standalone.sh[6791]: #033[0m#033[31m09:14:09,707 ERROR [stderr] (default task-2) #011at io.undertow.security.handlers.NotificationReceiverHandler.handleRequest(NotificationReceiverHandler.java:50)
Mar 31 09:14:09 mgmt-user-keycloak standalone.sh[6791]: #033[0m#033[31m09:14:09,707 ERROR [stderr] (default task-2) #011at io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43)
Mar 31 09:14:09 mgmt-user-keycloak standalone.sh[6791]: #033[0m#033[31m09:14:09,714 ERROR [stderr] (default task-2) #011at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
Mar 31 09:14:09 mgmt-user-keycloak standalone.sh[6791]: #033[0m#033[31m09:14:09,715 ERROR [stderr] (default task-2) #011at org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61)
Mar 31 09:14:09 mgmt-user-keycloak standalone.sh[6791]: #033[0m#033[31m09:14:09,715 ERROR [stderr] (default task-2) #011at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
Mar 31 09:14:09 mgmt-user-keycloak standalone.sh[6791]: #033[0m#033[31m09:14:09,723 ERROR [stderr] (default task-2) #011at org.wildfly.extension.undertow.deployment.GlobalRequestControllerHandler.handleRequest(GlobalRequestControllerHandler.java:68)
Mar 31 09:14:09 mgmt-user-keycloak standalone.sh[6791]: #033[0m#033[31m09:14:09,723 ERROR [stderr] (default task-2) #011at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
Mar 31 09:14:09 mgmt-user-keycloak standalone.sh[6791]: #033[0m#033[31m09:14:09,724 ERROR [stderr] (default task-2) #011at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:269)
Mar 31 09:14:09 mgmt-user-keycloak standalone.sh[6791]: #033[0m#033[31m09:14:09,724 ERROR [stderr] (default task-2) #011at io.undertow.servlet.handlers.ServletInitialHandler.access$100(ServletInitialHandler.java:78)
Mar 31 09:14:09 mgmt-user-keycloak standalone.sh[6791]: #033[0m#033[31m09:14:09,725 ERROR [stderr] (default task-2) #011at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:133)
Mar 31 09:14:09 mgmt-user-keycloak standalone.sh[6791]: #033[0m#033[31m09:14:09,725 ERROR [stderr] (default task-2) #011at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:130)
Mar 31 09:14:09 mgmt-user-keycloak standalone.sh[6791]: #033[0m#033[31m09:14:09,725 ERROR [stderr] (default task-2) #011at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48)
Mar 31 09:14:09 mgmt-user-keycloak standalone.sh[6791]: #033[0m#033[31m09:14:09,726 ERROR [stderr] (default task-2) #011at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43)
Mar 31 09:14:09 mgmt-user-keycloak standalone.sh[6791]: #033[0m#033[31m09:14:09,726 ERROR [stderr] (default task-2) #011at org.wildfly.extension.undertow.security.SecurityContextThreadSetupAction.lambda$create$0(SecurityContextThreadSetupAction.java:105)
Mar 31 09:14:09 mgmt-user-keycloak standalone.sh[6791]: #033[0m#033[31m09:14:09,727 ERROR [stderr] (default task-2) #011at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1504)
Mar 31 09:14:09 mgmt-user-keycloak standalone.sh[6791]: #033[0m#033[31m09:14:09,733 ERROR [stderr] (default task-2) #011at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1504)
Mar 31 09:14:09 mgmt-user-keycloak standalone.sh[6791]: #033[0m#033[31m09:14:09,733 ERROR [stderr] (default task-2) #011at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1504)
Mar 31 09:14:09 mgmt-user-keycloak standalone.sh[6791]: #033[0m#033[31m09:14:09,734 ERROR [stderr] (default task-2) #011at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1504)
Mar 31 09:14:09 mgmt-user-keycloak standalone.sh[6791]: #033[0m#033[31m09:14:09,734 ERROR [stderr] (default task-2) #011at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:249)
Mar 31 09:14:09 mgmt-user-keycloak standalone.sh[6791]: #033[0m#033[31m09:14:09,734 ERROR [stderr] (default task-2) #011at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:78)
Mar 31 09:14:09 mgmt-user-keycloak standalone.sh[6791]: #033[0m#033[31m09:14:09,734 ERROR [stderr] (default task-2) #011at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:99)
Mar 31 09:14:09 mgmt-user-keycloak standalone.sh[6791]: #033[0m#033[31m09:14:09,735 ERROR [stderr] (default task-2) #011at io.undertow.server.Connectors.executeRootHandler(Connectors.java:376)
Mar 31 09:14:09 mgmt-user-keycloak standalone.sh[6791]: #033[0m#033[31m09:14:09,735 ERROR [stderr] (default task-2) #011at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:830)
Mar 31 09:14:09 mgmt-user-keycloak standalone.sh[6791]: #033[0m#033[31m09:14:09,735 ERROR [stderr] (default task-2) #011at org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35)
Mar 31 09:14:09 mgmt-user-keycloak standalone.sh[6791]: #033[0m#033[31m09:14:09,735 ERROR [stderr] (default task-2) #011at org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:1982)
Mar 31 09:14:09 mgmt-user-keycloak standalone.sh[6791]: #033[0m#033[31m09:14:09,736 ERROR [stderr] (default task-2) #011at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1486)
Mar 31 09:14:09 mgmt-user-keycloak standalone.sh[6791]: #033[0m#033[31m09:14:09,736 ERROR [stderr] (default task-2) #011at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1377)
Mar 31 09:14:09 mgmt-user-keycloak standalone.sh[6791]: #033[0m#033[31m09:14:09,743 ERROR [stderr] (default task-2) #011at java.lang.Thread.run(Thread.java:748)

Representation field missing in Admin Event

In admin events the field representation is missing.

In order to fix this, add following line:

ev.put("representation", adminEvent.getRepresentation());

at line 121 in file MQTTEventListenerProvider.java (based on release 19.0.2 - commit 777500ca).

See: https://www.keycloak.org/docs-api/18.0/javadocs/org/keycloak/events/admin/AdminEvent.html#getRepresentation()

For comparison, see EventAdminNotificationMqMsg.java from project keycloak-event-listener-rabbitmq

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.