<div dir="ltr"><div>Hello folks!<br></div><div><br></div><div>Bill Burk was helping on the Keycloak front and besides fixing related items on the Keycloak server, he also created an example that we can use as a template for the actual integration. See [1]</div>
<div><br></div><div>In the past, Bruno and I did integrate w/ an external Keycloak server (see [2]), and we did include the keycloak.json file (See [3]). Thanks to Bill&#39;s work on Keycloak, the &#39;protected app&#39; no longer needs that, see [4].</div>
<div>Also there is no more the need to customize the Keycloak Rest Application (Stian and I did look into that as well).</div><div><br></div><div><br></div><div>Good news: This means the UPS can stay as it is -&gt; no need to change internals (e.g. the &#39;bundle all in one WAR file&#39; did force us to change our &#39;/rest&#39; URLs, as Keycloak uses them, see [5]).</div>
<div><br></div><div>Inside of our &#39;modular&#39; Keycloak branch (see [2] again), we can apply the work from Bill:</div><div>* our current &#39;server&#39; module will use a listener similar to [4]</div><div>* create a &quot;ups-auth&quot; module similar to [6]</div>
<div><br></div><div>On the &#39;ups-auth module&#39; there is one area where we need to have some future improvement:</div><div>* testrealm.json -&gt; needs to be in Java code, due to the URL being hard-coded in there (we need to resolve the URL of the host, running the bits). But, IMO for now that should be good enough.</div>
<div><br></div><div>Bruno did offer to help out on the Keycloak integration, so that I can go back to the analytics and mertrics feature. Thanks abstractj!! &lt;3</div><div><br></div><div>Greetings,</div><div>Matthias</div>
<div><br></div><div>[1] <a href="https://github.com/keycloak/keycloak/tree/master/project-integrations/aerogear-ups">https://github.com/keycloak/keycloak/tree/master/project-integrations/aerogear-ups</a></div><div>[2] <a href="https://github.com/aerogear/aerogear-unifiedpush-server/tree/keycloak-modular">https://github.com/aerogear/aerogear-unifiedpush-server/tree/keycloak-modular</a></div>
<div>[3] <a href="https://github.com/aerogear/aerogear-unifiedpush-server/blob/keycloak-modular/server/src/main/webapp/WEB-INF/keycloak.json">https://github.com/aerogear/aerogear-unifiedpush-server/blob/keycloak-modular/server/src/main/webapp/WEB-INF/keycloak.json</a></div>
<div>[4] <a href="https://github.com/keycloak/keycloak/blob/master/project-integrations/aerogear-ups/app/src/main/java/org/keycloak/example/BootstrapListener.java">https://github.com/keycloak/keycloak/blob/master/project-integrations/aerogear-ups/app/src/main/java/org/keycloak/example/BootstrapListener.java</a></div>
<div>[5] <a href="https://github.com/aerogear/aerogear-unifiedpush-server/tree/keycloak-embedded">https://github.com/aerogear/aerogear-unifiedpush-server/tree/keycloak-embedded</a></div><div>[6] <a href="https://github.com/keycloak/keycloak/tree/master/project-integrations/aerogear-ups/auth-server">https://github.com/keycloak/keycloak/tree/master/project-integrations/aerogear-ups/auth-server</a></div>
<div><br></div><div><br></div>-- <br>Matthias Wessendorf <br><br>blog: <a href="http://matthiaswessendorf.wordpress.com/" target="_blank">http://matthiaswessendorf.wordpress.com/</a><br>sessions: <a href="http://www.slideshare.net/mwessendorf" target="_blank">http://www.slideshare.net/mwessendorf</a><br>
twitter: <a href="http://twitter.com/mwessendorf" target="_blank">http://twitter.com/mwessendorf</a>
</div>