<div dir="ltr">A note is sufficient IMO. We shouldn&#39;t go over board with documenting things that should be covered elsewhere. It&#39;s not our responsibility to document how to cluster a WAR.</div><div class="gmail_extra"><br><div class="gmail_quote">On 26 January 2016 at 22:05, Marek Posolda <span dir="ltr">&lt;<a href="mailto:mposolda@redhat.com" target="_blank">mposolda@redhat.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Yeah. The question is where is the exactly is the &quot;border&quot; to provide some hints, but not duplicate the info, which is not directly related to Keycloak.<br>
<br>
For application clustering, it&#39;s tricky as we support bunch of servers for adapter clustering. And each of them has some differences for cluster setup (and different infinispan version). So I&#39;ve just added the note about &lt;distributable /&gt; in web.xml and the obligatory sentence &quot;For more details look at your app server documentation&quot; :-)<br>
<br>
Hope this will be sufficient for most of the cases.<span class="HOEnZb"><font color="#888888"><br>
<br>
Marek</font></span><div class="HOEnZb"><div class="h5"><br>
<br>
On 26/01/16 18:10, Marko Strukelj wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Maybe we should assume that people forget that stuff, and some don&#39;t<br>
know it in the first place, and simply try to give all the info<br>
necessary even for novice java developer to be successful setting it<br>
all up.<br>
<br>
On Tue, Jan 26, 2016 at 5:36 PM, Marek Posolda &lt;<a href="mailto:mposolda@redhat.com" target="_blank">mposolda@redhat.com</a>&gt; wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hi,<br>
<br>
I&#39;ve put some small note at the first paragraph of &quot;Application clustering&quot;<br>
chapter. Just a small note really, as setup of &quot;distributable&quot; in web.xml or<br>
configuration of infinispan are app. server specific steps and they are<br>
general to HttpSession replication and clustering, it&#39;s not Keycloak<br>
specific stuff.<br>
<br>
Marek<br>
<br>
<br>
On 26/01/16 12:55, Christian Beikov wrote:<br>
<br>
I am really sorry about the last mail, I just felt that my suggestions about<br>
a possible problem were ignored, especially since you just suggested to<br>
google it.<br>
<br>
In the end I found out that I was missing theĀ  &lt;distributable/&gt; tag in my<br>
web.xml to enable session replication properly. So you(Stian) were right<br>
after all. I didn&#39;t quite get the hint that &quot;need to enable it for your<br>
application&quot; actually meant that I had to change the web.xml.<br>
<br>
Could you maybe put a warning into the documentation?<br>
<br>
Sorry for the noise again.<br>
<br>
Regards,<br>
Christian<br>
<br>
Am 26.01.2016 um 08:49 schrieb Stian Thorgersen:<br>
<br>
I don&#39;t see the need for this mail. I was actually trying to help you. I<br>
doubt you&#39;ve even looked at what I&#39;ve suggested though.<br>
<br>
As Bill points out get your HTTP session replication working first. It has<br>
nothing to do with Keycloak. If you want non-sticky sessions and not using<br>
the stateless option then you need that working. The reason why I told you<br>
to google it is that you do actually have to enable HTTP session replication<br>
on a per-war basis. It&#39;s not just a container config. The standalone-ha.xml<br>
config in WildFly should be fine by default, so you don&#39;t need to do<br>
anything there.<br>
<br>
On 25 January 2016 at 20:33, Christian Beikov &lt;<a href="mailto:christian.beikov@gmail.com" target="_blank">christian.beikov@gmail.com</a>&gt;<br>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
I don&#39;t want to be rude but you aren&#39;t helping me at all so I&#39;d like to<br>
ask someone else from the team about this. I tried to explain multiple times<br>
that I already configured clustering in my Wildfly server, thus I configured<br>
session replication.<br>
Either I don&#39;t understand something about session replication or I require<br>
a configuration that you don&#39;t mention anywhere.<br>
I copied over the cache container from the standalone-ha configurations<br>
and configured the JGroups Subsystem which is what is described in the<br>
official documentation:<br>
<a href="https://docs.jboss.org/author/display/WFLY10/High+Availability+Guide" rel="noreferrer" target="_blank">https://docs.jboss.org/author/display/WFLY10/High+Availability+Guide</a><br>
<br>
I think I gave you enough information about my situation which you seemed<br>
to ignore completely. I would very much appreciate if I got a clear answer<br>
to my question especially since I am not asking for general configuration<br>
help, but for this special case which to me seems like a problem/limitation<br>
that should be explicitly documented.<br>
<br>
I am pretty sure clustering/session replication is configured correctly<br>
since I am using a custom cache container with a similar configuration like<br>
the web cache container which I know replicates correctly. So here comes my<br>
question once again, is it possible that the replication just lags behind<br>
which makes the usage of round robin completely impossible in the login<br>
flow? Or is there some kind of special configuration I have to do which<br>
differs from the standard cluster configuration as provided by the wildfly<br>
distribution? Or is this maybe even an implementation limiation of the<br>
server adapter?<br>
<br>
Regards,<br>
Christian<br>
<br>
<br>
Am 25.01.2016 um 19:04 schrieb Stian Thorgersen:<br>
<br>
Try google for wildfly replicate http sessions<br>
<br>
On 25 January 2016 at 15:53, Christian Beikov &lt;<a href="mailto:christian.beikov@gmail.com" target="_blank">christian.beikov@gmail.com</a>&gt;<br>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
I just wrote that I configured clustering for my application just like in<br>
the standlone-ha.xml of my Wildfly 10 CR4.<br>
I configured the jgroups subsystem and the distributed caches for web<br>
sessions as it is done in standalone-ha.xml of Wildfly.<br>
If there is anything else that should be configured, can you please point<br>
me to that configuration option?<br>
<br>
Regards,<br>
Christian<br>
<br>
<br>
Am 25.01.2016 um 15:45 schrieb Stian Thorgersen:<br>
<br>
HTTP session replicate is not enabled by default. You need to enable it<br>
for your application.<br>
<br>
On 25 January 2016 at 14:39, Christian Beikov<br>
&lt;<a href="mailto:christian.beikov@gmail.com" target="_blank">christian.beikov@gmail.com</a>&gt; wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
The documentation states, that the default token-store is &quot;session&quot; and<br>
as I wrote before, I have setup clustering on my Wildfly 10 CR4 like in<br>
standalone-ha.xml, so the session should already be replicated.<br>
<br>
Regards,<br>
Christian<br>
<br>
<br>
Am 25.01.2016 um 14:20 schrieb Stian Thorgersen:<br>
<br>
Your issue doesn&#39;t have anything to do with the Keycloak server side<br>
user sessions, they don&#39;t require sticky sessions.<br>
<br>
Your issue is down to the http session on the adapter side not being<br>
replicated by default. For the adapter you&#39;ve got 3 choices: sticky session,<br>
replicated session or stateless. Which is best depends on your application.<br>
<br>
<br>
On 25 January 2016 at 14:05, Christian Beikov<br>
&lt;<a href="mailto:christian.beikov@gmail.com" target="_blank">christian.beikov@gmail.com</a>&gt; wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
I don&#39;t have a problem with sticky sessions and I will definitively<br>
configure them, but I am curious. What is the reason for the problems with<br>
round robin in this test scenario? Are the infinispan caches not replicated<br>
fast enough or is there an implementation limitation in the adapters?<br>
<br>
<br>
Regards,<br>
Christian<br>
<br>
<br>
Am 25.01.2016 um 08:58 schrieb Stian Thorgersen:<br>
<br>
By default the adapters will require sticky sessions, please refer to<br>
<a href="http://keycloak.github.io/docs/userguide/keycloak-server/html/applicationClustering.html" rel="noreferrer" target="_blank">http://keycloak.github.io/docs/userguide/keycloak-server/html/applicationClustering.html</a><br>
for more information<br>
<br>
On 22 January 2016 at 12:48, Christian Beikov<br>
&lt;<a href="mailto:christian.beikov@gmail.com" target="_blank">christian.beikov@gmail.com</a>&gt; wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hello,<br>
<br>
I am running some tests with my application cluster being secured by a<br>
single keycloak server instance and I encountered problems with the<br>
adapter.<br>
<br>
My application cluster contains 2 nodes and is load balanced by nginx.<br>
For testing purposes, I enabled round robin load balancing which is<br>
probably the &quot;cause&quot; for my issues.<br>
<br>
When I access a secured page, I get redirected to keycloak and<br>
everything is fine. When I then login, and keycloak redirects me back<br>
to<br>
the application, I get to a different application cluster node because<br>
of round robin. On that node, apparently the initial information of<br>
the<br>
client session is not available and I get redirected to keycloak login<br>
page again. Then keycloak redirects me back to the application, this<br>
time to the original node, and says that access is forbidden.<br>
<br>
I suppose the web session caches are not in sync but I just used the<br>
default cache containers as they are defined in standalone-ha.xml of<br>
my<br>
Wildlfy 10 CR4. Clustering with jgroups works, as I use other<br>
distributed caches too which work just fine.<br>
<br>
We are using Keycloak 1.8.0.CR2 on a Wildfly 10 CR4<br>
<br>
Regards,<br>
Christian<br>
_______________________________________________<br>
keycloak-dev mailing list<br>
<a href="mailto:keycloak-dev@lists.jboss.org" target="_blank">keycloak-dev@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/keycloak-dev" rel="noreferrer" target="_blank">https://lists.jboss.org/mailman/listinfo/keycloak-dev</a><br>
</blockquote>
<br>
<br>
</blockquote>
<br>
</blockquote>
<br>
</blockquote>
<br>
</blockquote>
<br>
<br>
<br>
_______________________________________________<br>
keycloak-dev mailing list<br>
<a href="mailto:keycloak-dev@lists.jboss.org" target="_blank">keycloak-dev@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/keycloak-dev" rel="noreferrer" target="_blank">https://lists.jboss.org/mailman/listinfo/keycloak-dev</a><br>
<br>
<br>
<br>
_______________________________________________<br>
keycloak-dev mailing list<br>
<a href="mailto:keycloak-dev@lists.jboss.org" target="_blank">keycloak-dev@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/keycloak-dev" rel="noreferrer" target="_blank">https://lists.jboss.org/mailman/listinfo/keycloak-dev</a><br>
</blockquote></blockquote>
<br>
</div></div></blockquote></div><br></div>