<html>
<head>
<meta content="text/html; charset=windows-1252"
http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<p>
<meta http-equiv="content-type" content="text/html;
charset=windows-1252">
</p>
<pre style="background-color:#ffffff;color:#000000;font-family:'Menlo';font-size:9.0pt;"><span style="color:#008000;font-weight:bold;">"userFederation" : {
"IDP-API" : {
"test": "value
}
}
</span></pre>
<p>
<meta http-equiv="content-type" content="text/html;
charset=windows-1252">
</p>
<br>
<div class="moz-cite-prefix">On 8/1/16 2:56 PM, Zhaohua Meng wrote:<br>
</div>
<blockquote
cite="mid:6355FF95-5A92-4C4A-A56C-6B5782F3CD49@appnexus.com"
type="cite">
<meta http-equiv="Content-Type" content="text/html;
charset=windows-1252">
<meta name="Title" content="">
<meta name="Keywords" content="">
<meta name="Generator" content="Microsoft Word 15 (filtered
medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Courier New";
        panose-1:2 7 3 9 2 2 5 2 4 4;}
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:DengXian;
        panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Monaco;
        panose-1:2 0 5 0 0 0 0 0 0 0;}
@font-face
        {font-family:"Helvetica Neue \;color\:\#262626";}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:Calibri;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
pre
        {mso-style-priority:99;
        mso-style-link:"HTML Preformatted Char";
        margin:0in;
        margin-bottom:.0001pt;
        font-size:10.0pt;
        font-family:"Courier New";}
span.EmailStyle17
        {mso-style-type:personal;
        font-family:Calibri;
        color:windowtext;}
span.HTMLPreformattedChar
        {mso-style-name:"HTML Preformatted Char";
        mso-style-priority:99;
        mso-style-link:"HTML Preformatted";
        font-family:Courier;}
span.EmailStyle20
        {mso-style-type:personal-reply;
        font-family:Calibri;
        color:windowtext;}
span.msoIns
        {mso-style-type:export-only;
        mso-style-name:"";
        text-decoration:underline;
        color:teal;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style>
<div class="WordSection1">
<p class="MsoNormal"><span style="font-size:16.0pt">Marek,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:16.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:16.0pt">My
implementation id is “IDP-API” and my getId() and init()
method are following:<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-family:Monaco;color:black"><o:p> </o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-family:Monaco;color:black">
</span><span style="font-family:Monaco;color:#646464">@Override</span><span
style="font-family:Monaco"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-family:Monaco;color:black">
</span><b><span style="font-family:Monaco;color:#7F0055">public</span></b><span
style="font-family:Monaco;color:black">
<span style="background:silver;mso-highlight:silver">String</span>
getId() { </span>
<span style="font-family:Monaco"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-family:Monaco;color:black">
</span><b><span
style="font-family:Monaco;color:#7F0055;background:silver;mso-highlight:silver">return</span></b><span
style="font-family:Monaco;color:black;background:silver;mso-highlight:silver">
</span><span style="font-family:Monaco;color:black">(</span><span
style="font-family:Monaco;color:#2A00FF">"IDP-API")</span><span
style="font-family:Monaco;color:black">;</span><span
style="font-family:Monaco"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-family:Monaco;color:black"> }</span><span
style="font-family:Monaco"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:16.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-family:Monaco;color:black">
</span><span style="font-family:Monaco;color:#646464">@Override</span><span
style="font-family:Monaco"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-family:Monaco;color:black">
</span><b><span style="font-family:Monaco;color:#7F0055">public</span></b><span
style="font-family:Monaco;color:black">
</span><b><span style="font-family:Monaco;color:#7F0055">void</span></b><span
style="font-family:Monaco;color:black"> init(Scope
</span><span style="font-family:Monaco;color:#6A3E3E">config</span><span
style="font-family:Monaco;color:black">) {</span><span
style="font-family:Monaco"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-family:Monaco;color:black">
</span><span style="font-family:Monaco;color:#0000C0">logger</span><span
style="font-family:Monaco;color:black">.info(</span><span
style="font-family:Monaco;color:#2A00FF">"in init"</span><span
style="font-family:Monaco;color:black">);<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-family:Monaco;color:black"> this.config
= config;</span><span style="font-family:Monaco"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-family:Monaco;color:black">
</span><span style="font-family:Monaco;color:#0000C0">logger</span><span
style="font-family:Monaco;color:black">.infof(</span><span
style="font-family:Monaco;color:#2A00FF">"config: %s"</span><span
style="font-family:Monaco;color:black">,</span><span
style="font-family:Monaco;color:#6A3E3E">config</span><span
style="font-family:Monaco;color:black">.get(</span><span
style="font-family:Monaco;color:#2A00FF">"test"</span><span
style="font-family:Monaco;color:black">));</span><span
style="font-family:Monaco"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-family:Monaco;color:black"> }</span><span
style="font-family:Monaco"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:16.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:16.0pt">I’m getting
null for the </span>
<span style="font-family:Monaco;color:#6A3E3E">config</span><span
style="font-family:Monaco;color:black">.get(</span><span
style="font-family:Monaco;color:#2A00FF">"test"</span><span
style="font-family:Monaco;color:black">). What am I doing
wrong here?</span><span style="font-size:16.0pt"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:16.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:16.0pt">I’m copying
the keycloak-server.json in my test for your reference.
<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:16.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-family:Monaco">{<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-family:Monaco"> "IDP-API": {<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-family:Monaco"> "test": "<u><span
style="color:black">idp</span></u>
<u><span style="color:black">api</span></u> test value"<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-family:Monaco"> },<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-family:Monaco"> "providers": [<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-family:Monaco"> "<u><span
style="color:black">classpath</span></u>:${jboss.home.dir}/providers/*"<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-family:Monaco"> ],<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-family:Monaco"><o:p> </o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-family:Monaco"> "<u><span style="color:black">admin</span></u>":
{<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-family:Monaco"> "realm": "master"<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-family:Monaco"> },<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-family:Monaco"><o:p> </o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-family:Monaco"> "eventsStore": {<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-family:Monaco"> "provider": "<u><span
style="color:black">jpa</span></u>",<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-family:Monaco"> "<u><span
style="color:black">jpa</span></u>": {<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-family:Monaco"> "exclude-events": [
"REFRESH_TOKEN" ]<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-family:Monaco"> }<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-family:Monaco"> },<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-family:Monaco"><o:p> </o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-family:Monaco"> "realm": {<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-family:Monaco"> "provider": "<u><span
style="color:black">jpa</span></u>"<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-family:Monaco"> },<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-family:Monaco"><o:p> </o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-family:Monaco"> "user": {<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-family:Monaco"> "provider": "<u><span
style="color:black">jpa</span></u>"<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-family:Monaco"> },<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-family:Monaco"><o:p> </o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-family:Monaco"> "userCache": {<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-family:Monaco"> "default" : {<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-family:Monaco"> "enabled": true<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-family:Monaco"> }<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-family:Monaco"> },<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-family:Monaco"><o:p> </o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-family:Monaco"> "userSessionPersister": {<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-family:Monaco"> "provider": "<u><span
style="color:black">jpa</span></u>"<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-family:Monaco"> },<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-family:Monaco"><o:p> </o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-family:Monaco"> "authorizationPersister": {<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-family:Monaco"> "provider": "<u><span
style="color:black">jpa</span></u>"<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-family:Monaco"> },<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-family:Monaco"><o:p> </o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-family:Monaco"> "timer": {<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-family:Monaco"> "provider": "basic"<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-family:Monaco"> },<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-family:Monaco"><o:p> </o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-family:Monaco"> "theme": {<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-family:Monaco"> "staticMaxAge": 2592000,<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-family:Monaco"> "cacheTemplates": true,<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-family:Monaco"> "cacheThemes": true,<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-family:Monaco"> "folder": {<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-family:Monaco"> "<u><span
style="color:black">dir</span></u>":
"${jboss.home.dir}/themes"<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-family:Monaco"> }<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-family:Monaco"> },<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-family:Monaco"><o:p> </o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-family:Monaco"> "scheduled": {<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-family:Monaco"> "interval": 900<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-family:Monaco"> },<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-family:Monaco"><o:p> </o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-family:Monaco"> "connectionsHttpClient": {<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-family:Monaco"> "default": {}<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-family:Monaco"> },<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-family:Monaco"><o:p> </o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-family:Monaco"> "connectionsJpa": {<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-family:Monaco"> "default": {<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-family:Monaco"> "dataSource":
"java:jboss/<u><span style="color:black">datasources</span></u>/KeycloakDS",<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-family:Monaco"> "databaseSchema":
"update"<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-family:Monaco"> }<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-family:Monaco"> },<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-family:Monaco"><o:p> </o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-family:Monaco"> "realmCache": {<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-family:Monaco"> "default" : {<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-family:Monaco"> "enabled": true<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-family:Monaco"> }<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-family:Monaco"> },<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-family:Monaco"><o:p> </o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-family:Monaco"> "connectionsInfinispan": {<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-family:Monaco"> "provider": "default",<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-family:Monaco"> "default": {<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-family:Monaco"> "cacheContainer" :
"java:comp/<u><span style="color:black">env</span></u>/<u><span
style="color:black">infinispan</span></u>/<u><span
style="color:black">Keycloak</span></u>"<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-family:Monaco"> }<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-family:Monaco"> }<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:Monaco">}</span><o:p></o:p></p>
<div>
<p class="MsoNormal"><span
style="font-size:10.5pt;color:black">Thanks,<o:p></o:p></span></p>
<p class="MsoNormal"><span
style="font-size:10.5pt;color:black">-- <o:p></o:p></span></p>
<p class="MsoNormal"><span
style="font-size:10.5pt;color:black">Zhaohua Meng<o:p></o:p></span></p>
<p class="MsoNormal"><span
style="font-size:10.5pt;color:black">Business
Intelligence, AppNexus<o:p></o:p></span></p>
<p class="MsoNormal"><span
style="font-size:10.5pt;color:black">973-936-8028 (cell)<o:p></o:p></span></p>
<p class="MsoNormal"><span
style="font-size:10.5pt;color:black">973-415-8028 (home)<o:p></o:p></span></p>
</div>
<p class="MsoNormal"><span style="font-size:16.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:16.0pt"><o:p> </o:p></span></p>
<div style="border:none;border-top:solid #B5C4DF
1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b><span style="color:black">From: </span></b><span
style="color:black">Marek Posolda
<a class="moz-txt-link-rfc2396E" href="mailto:mposolda@redhat.com"><mposolda@redhat.com></a><br>
<b>Date: </b>Monday, August 1, 2016 at 1:32 PM<br>
<b>To: </b>Zaohua <a class="moz-txt-link-rfc2396E" href="mailto:zmeng@appnexus.com"><zmeng@appnexus.com></a>,
<a class="moz-txt-link-rfc2396E" href="mailto:keycloak-user@lists.jboss.org">"keycloak-user@lists.jboss.org"</a>
<a class="moz-txt-link-rfc2396E" href="mailto:keycloak-user@lists.jboss.org"><keycloak-user@lists.jboss.org></a><br>
<b>Subject: </b>Re: [keycloak-user] How to configure a
user Federation SPI implementation<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-family:"Times New
Roman""><o:p> </o:p></span></p>
</div>
<div>
<div>
<div>
<p class="MsoNormal">In
YourUserFederationProviderFactory.init you can read the
properties, which you configured in the
keycloak-server.json. It's used in the event example for
instance. For UserFederation it works the same way :
<a moz-do-not-send="true"
href="https://github.com/keycloak/keycloak/blob/master/examples/providers/event-store-mem/src/main/java/org/keycloak/examples/providers/events/MemEventStoreProviderFactory.java#L56">https://github.com/keycloak/keycloak/blob/master/examples/providers/event-store-mem/src/main/java/org/keycloak/examples/providers/events/MemEventStoreProviderFactory.java#L56</a>
<br>
<br>
Note that YourUserFederationProviderFactory.getId is
corresponding to the providerId used in
keycloak-server.json .
<br>
<br>
Btv. the
YourUserFederationProviderFactory.getConfigurationOptions()
you can return list of strings, which will be used as
names of the properties configurable in admin console.
This is an alternative to keycloak-server.json
configuration. See the userFederation example for more
details.<br>
<br>
Marek<br>
<br>
On 01/08/16 19:23, Zhaohua Meng wrote:<o:p></o:p></p>
</div>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<p class="MsoNormal" style="text-autospace:none"><span
style="font-size:14.0pt">I wrote a user federation SPI
implementation to integrate our internal user
management. Particularly, an implementation of
org.keycloak.models.UserFederationProviderFactory and
org.keycloak.models.UserFederationProvider.</span><o:p></o:p></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-size:14.0pt"> </span><o:p></o:p></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-size:14.0pt">My question is, how do you
configure it in the
</span><span
style="font-size:14.0pt;font-family:"Helvetica
Neue \;color\:\#262626"">keycloak-server.json</span><span
style="font-size:14.0pt">?</span><o:p></o:p></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-size:14.0pt"> </span><o:p></o:p></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-size:14.0pt">The documentation gave
example for event listener but not user federation.
Following the doc with similar approach I tried “{
“userFederation”: { “my-impl”: { “myProperty”:””, ...}
…}}”, and all kinds of combinations like that but
nothing worked. I’d really appreciate if you can share
some experience here.</span><o:p></o:p></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-size:14.0pt"> </span><o:p></o:p></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-size:14.0pt">I’m quoting the doc in this
regard here:
<a moz-do-not-send="true"
href="https://keycloak.gitbooks.io/server-developer-guide/content/v/2.0/topics/providers.html#providers"><span
style="color:#0B4CB4">https://keycloak.gitbooks.io/server-developer-guide/content/v/2.0/topics/providers.html#providers</span></a></span><o:p></o:p></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-size:14.0pt"> </span><o:p></o:p></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-size:14.0pt">...…</span><o:p></o:p></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-size:14.0pt">Configuring a provider</span><o:p></o:p></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-size:14.0pt"> </span><o:p></o:p></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-size:14.0pt">You can pass configuration
options to your provider by setting them in
keycloak-server.json. For example to set the max value
for my-event-listener add:</span><o:p></o:p></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-size:14.0pt">{</span><o:p></o:p></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-size:14.0pt"> "eventsListener": {</span><o:p></o:p></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-size:14.0pt"> "my-event-listener":
{</span><o:p></o:p></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-size:14.0pt"> "max": 100</span><o:p></o:p></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-size:14.0pt"> }</span><o:p></o:p></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-size:14.0pt"> }</span><o:p></o:p></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-size:14.0pt">}</span><o:p></o:p></p>
<p class="MsoNormal" style="text-autospace:none"><span
style="font-size:14.0pt">…..</span><o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:21.0pt"> </span><o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:16.0pt"> </span><o:p></o:p></p>
<p class="MsoNormal"><span
style="font-size:10.5pt;color:black">Thanks,</span><o:p></o:p></p>
<p class="MsoNormal"><span
style="font-size:10.5pt;color:black">-- </span><o:p></o:p></p>
<p class="MsoNormal"><span
style="font-size:10.5pt;color:black">Zhaohua Meng</span><o:p></o:p></p>
<p class="MsoNormal"><span
style="font-size:10.5pt;color:black">Business
Intelligence, AppNexus</span><o:p></o:p></p>
<p class="MsoNormal"><span
style="font-size:10.5pt;color:black">973-936-8028
(cell)</span><o:p></o:p></p>
<p class="MsoNormal"><span
style="font-size:10.5pt;color:black">973-415-8028
(home)</span><o:p></o:p></p>
<p class="MsoNormal"> <o:p></o:p></p>
<p class="MsoNormal"><span style="font-family:"Times
New Roman""><br>
<br>
<br>
<o:p></o:p></span></p>
<pre>_______________________________________________<o:p></o:p></pre>
<pre>keycloak-user mailing list<o:p></o:p></pre>
<pre><a moz-do-not-send="true" href="mailto:keycloak-user@lists.jboss.org">keycloak-user@lists.jboss.org</a><o:p></o:p></pre>
<pre><a moz-do-not-send="true" href="https://lists.jboss.org/mailman/listinfo/keycloak-user">https://lists.jboss.org/mailman/listinfo/keycloak-user</a><o:p></o:p></pre>
</blockquote>
<p class="MsoNormal"><span style="font-family:"Times
New Roman""><o:p> </o:p></span></p>
</div>
</div>
</div>
<br>
<fieldset class="mimeAttachmentHeader"></fieldset>
<br>
<pre wrap="">_______________________________________________
keycloak-user mailing list
<a class="moz-txt-link-abbreviated" href="mailto:keycloak-user@lists.jboss.org">keycloak-user@lists.jboss.org</a>
<a class="moz-txt-link-freetext" href="https://lists.jboss.org/mailman/listinfo/keycloak-user">https://lists.jboss.org/mailman/listinfo/keycloak-user</a></pre>
</blockquote>
<br>
</body>
</html>