Details
diff --git a/docbook/reference/en/en-US/modules/providers.xml b/docbook/reference/en/en-US/modules/providers.xml
index e88bc34..a1e9184 100755
--- a/docbook/reference/en/en-US/modules/providers.xml
+++ b/docbook/reference/en/en-US/modules/providers.xml
@@ -44,7 +44,7 @@ public class MyEventListenerProviderFactory implements EventListenerProviderFact
}
}]]></programlisting>
- The example uses a MaxList which has a maximum size and is concurrency safe. When the maximum size is reached
+ The example uses an imagined MaxList which has a maximum size and is concurrency safe. When the maximum size is reached
and new entries are added the oldest entry is removed. Keycloak creates a single instance of
EventListenerProviderFactory which makes it possible to store state for multiple requests. EventListenerProvider
instances are created by calling create on the factory for each requests so these should be light-weight.
@@ -116,10 +116,10 @@ public class MyEventListenerProvider implements EventListenerProvider {
Next you need to register this module with Keycloak. This is done by editing keycloak-server.json and adding
it to the providers:
<programlisting><![CDATA[{
-"providers": [
- ...
- "module:org.keycloak.examples.event-sysout"
-]
+ "providers": [
+ ...
+ "module:org.keycloak.examples.event-sysout"
+ ]
}]]></programlisting>
</para>
</section>
@@ -150,6 +150,21 @@ public class MyEventListenerProvider implements EventListenerProvider {
}]]></programlisting>
</para>
</section>
+
+ <section>
+ <title>Configuring a provider</title>
+ <para>
+ You can pass configuration options to your provider by setting them in <literal>keycloak-server.json</literal>.
+ For example to set the max value for <literal>my-event-listener</literal> add:
+<programlisting><![CDATA[{
+ "eventsListener": {
+ "my-event-listener": {
+ "max": 100
+ }
+ }
+}]]></programlisting>
+ </para>
+ </section>
</section>
<section>
diff --git a/examples/providers/event-listener-sysout/README.md b/examples/providers/event-listener-sysout/README.md
index 3325add..e3cef35 100644
--- a/examples/providers/event-listener-sysout/README.md
+++ b/examples/providers/event-listener-sysout/README.md
@@ -5,3 +5,13 @@ To deploy copy target/event-listener-sysout-example.jar to standalone/configurat
Then start (or restart) the server. Once started open the admin console, select your realm, then click on Events,
followed by config. Click on Listeners select box, then pick sysout from the dropdown. After this try to logout and
login again to see events printed to System.out.
+
+The example event listener can be configured to exclude certain events, for example to exclude REFRESH_TOKEN and
+CODE_TO_TOKEN events add the following to keycloak-server.json:
+
+ ...
+ "eventsListener": {
+ "sysout" {
+ "exclude": [ "REFRESH_TOKEN", "CODE_TO_TOKEN" ]
+ }
+ }
diff --git a/examples/providers/event-listener-sysout/src/main/java/org/keycloak/examples/providers/events/SysoutEventListenerProviderFactory.java b/examples/providers/event-listener-sysout/src/main/java/org/keycloak/examples/providers/events/SysoutEventListenerProviderFactory.java
index ab2b403..3f87d81 100755
--- a/examples/providers/event-listener-sysout/src/main/java/org/keycloak/examples/providers/events/SysoutEventListenerProviderFactory.java
+++ b/examples/providers/event-listener-sysout/src/main/java/org/keycloak/examples/providers/events/SysoutEventListenerProviderFactory.java
@@ -24,10 +24,10 @@ public class SysoutEventListenerProviderFactory implements EventListenerProvider
@Override
public void init(Config.Scope config) {
- String excludes = config.get("excludes");
+ String[] excludes = config.getArray("excludes");
if (excludes != null) {
- excludedEvents = new HashSet<EventType>();
- for (String e : excludes.split(",")) {
+ excludedEvents = new HashSet<>();
+ for (String e : excludes) {
excludedEvents.add(EventType.valueOf(e));
}
}