<font face="arial" size="2"><p style="margin:0;padding:0;font-family: arial; font-size: 10pt; word-wrap: break-word;">The database would do for a POC im doing right now. Thanks Stian for the information. Thanks a lot for ur prompt response.</p>
<!--WM_COMPOSE_SIGNATURE_START-->
<p style="margin:0;padding:0;">Kalinga</p>
<!--WM_COMPOSE_SIGNATURE_END-->
<p style="margin:0;padding:0;font-family: arial; font-size: 10pt; word-wrap: break-word;"><br /><br />-----Original Message-----<br />From: "Stian Thorgersen" &lt;stian@redhat.com&gt;<br />Sent: Tuesday, April 7, 2015 5:13pm<br />To: "Kalinga Dissanayake" &lt;kalinga@leapset.com&gt;<br />Cc: keycloak-user@lists.jboss.org<br />Subject: Re: Externalising session storage in keycloak<br /><br /></p>
<div id="SafeStyles1428408784">
<p style="margin:0;padding:0;font-family: arial; font-size: 10pt; word-wrap: break-word;">In keycloak-server.json set userSessionProvider to JPA:<br /><br /> "userSessions": {<br /> "provider": "jpa"<br /> }<br /><br />You also need to either disable realm and user caches:<br /><br /> "realmCache": {<br /> "provider": "none"<br /> },<br /><br /> "userCache": {<br /> "provider": "none"<br /> }<br /><br />Or use Infinispan invalidation caches as the clustering documentation suggests.<br /><br />Bear in mind that if you store user sessions in db and don't use the caches you'll be generating a fair bit of db traffic, so it won't scale extremely well.<br /><br /><br />----- Original Message -----<br />&gt; From: "Kalinga Dissanayake" &lt;kalinga@leapset.com&gt;<br />&gt; To: "Stian Thorgersen" &lt;stian@redhat.com&gt;<br />&gt; Cc: keycloak-user@lists.jboss.org<br />&gt; Sent: Tuesday, 7 April, 2015 1:37:38 PM<br />&gt; Subject: Re: Externalising session storage in keycloak<br />&gt; <br />&gt; <br />&gt; What should I do to store sessions in the database? Is there a guide to do<br />&gt; this? Should I implement any SPI?<br />&gt; <br />&gt; Kalinga<br />&gt; <br />&gt; -----Original Message-----<br />&gt; From: "Stian Thorgersen" &lt;stian@redhat.com&gt;<br />&gt; Sent: Tuesday, April 7, 2015 11:50am<br />&gt; To: "Kalinga Dissanayake" &lt;kalinga@leapset.com&gt;<br />&gt; Cc: keycloak-user@lists.jboss.org<br />&gt; Subject: Re: Externalising session storage in keycloak<br />&gt; <br />&gt; <br />&gt; <br />&gt; We have support for using either Infinispan or a database (relational or<br />&gt; Mongo) to store the user sessions when load balanced.<br />&gt; <br />&gt; If performance is not a problem you can just go with storing sessions in the<br />&gt; database. Otherwise go with Infinispan, see<br />&gt; http://docs.jboss.org/keycloak/docs/1.2.0.Beta1/userguide/html/clustering.html<br />&gt; for the details on how to configure that. To use a replicated cache instead<br />&gt; of a distributed cache use the following config for Infinspan:<br />&gt; <br />&gt; &lt;subsystem xmlns="urn:jboss:domain:infinispan:2.0"&gt;<br />&gt; &lt;cache-container name="keycloak" jndi-name="infinispan/Keycloak"<br />&gt; start="EAGER"&gt;<br />&gt; &lt;transport lock-timeout="60000"/&gt;<br />&gt; &lt;invalidation-cache name="realms" mode="SYNC"/&gt;<br />&gt; &lt;invalidation-cache name="users" mode="SYNC"/&gt;<br />&gt; &lt;replicated-cachename="sessions" mode="SYNC"/&gt;<br />&gt; &lt;replicated-cache name="loginFailures" mode="SYNC"/&gt;<br />&gt; &lt;/cache-container&gt;<br />&gt; ...<br />&gt; &lt;/subsystem&gt;<br />&gt; <br />&gt; You can also just use the configuration from the docs above but set<br />&gt; 'owners="2"'.<br />&gt; <br />&gt; ----- Original Message -----<br />&gt; &gt; From: "Kalinga Dissanayake" &lt;kalinga@leapset.com&gt;<br />&gt; &gt; To: keycloak-user@lists.jboss.org<br />&gt; &gt; Cc: "Stian Thorgersen" &lt;stian@redhat.com&gt;<br />&gt; &gt; Sent: Monday, 6 April, 2015 2:13:42 PM<br />&gt; &gt; Subject: Externalising session storage in keycloak<br />&gt; &gt; <br />&gt; &gt; <br />&gt; &gt; Guys i know this has been discussed before, but im trying to find a simple<br />&gt; &gt; number of steps for me to externalize the session storage in keycloak.<br />&gt; &gt; I just need to do the following;<br />&gt; &gt; 1. Two servers running keycloak (wildfly)<br />&gt; &gt; 2. A load balancer in front of these two servers. Preferably an AWS<br />&gt; &gt; loadbalancer<br />&gt; &gt; 3. I need to store the session details on an external store so that the<br />&gt; &gt; sessions work accurately.<br />&gt; &gt; <br />&gt; &gt; There is so much documentation for this but I am actually confused as to<br />&gt; &gt; what<br />&gt; &gt; i should do and the bare minimum i should do to achieve this. I dont need a<br />&gt; &gt; distributed cache or anything just need one cache store (may be infinispan<br />&gt; &gt; or memcached) and the two keycloak servers running storing the sessions on<br />&gt; &gt; that. Is there one key place i should look into which contains the bare<br />&gt; &gt; minimum i should do.<br />&gt; &gt; <br />&gt; &gt; Kalinga.<br />&gt; &gt;</p>
</div></font>