<div dir="ltr">thank you for this ! i&#39;ll have a look at infinispan ..</div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Nov 26, 2014 at 12:01 PM, Stian Thorgersen <span dir="ltr">&lt;<a href="mailto:stian@redhat.com" target="_blank">stian@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"><span class=""><br>
<br>
----- Original Message -----<br>
&gt; From: &quot;Alexander Chriztopher&quot; &lt;<a href="mailto:alexander.chriztopher@gmail.com">alexander.chriztopher@gmail.com</a>&gt;<br>
&gt; To: &quot;Stian Thorgersen&quot; &lt;<a href="mailto:stian@redhat.com">stian@redhat.com</a>&gt;<br>
&gt; Cc: &quot;Bill Burke&quot; &lt;<a href="mailto:bburke@redhat.com">bburke@redhat.com</a>&gt;, <a href="mailto:keycloak-user@lists.jboss.org">keycloak-user@lists.jboss.org</a><br>
</span><span class="">&gt; Sent: Wednesday, 26 November, 2014 11:46:21 AM<br>
&gt; Subject: Re: [keycloak-user] Brut force attack questions<br>
&gt;<br>
</span><span class="">&gt; i think we will go for Infinispan or jpa for roadmap reasons !<br>
&gt;<br>
&gt; how would we access the infinispan data ?<br>
<br>
</span>You&#39;ll need to use 1.1.0.Beta1 as it&#39;s not available in 1.0.x. Have a look at <a href="http://docs.jboss.org/keycloak/docs/1.1.0.Beta1/userguide/html/clustering.html#d4e1662" target="_blank">http://docs.jboss.org/keycloak/docs/1.1.0.Beta1/userguide/html/clustering.html#d4e1662</a><br>
<br>
You can inject the cache into your own application with:<br>
<br>
  @Resource(lookup=&quot;java:jboss/infinispan/Keycloak&quot;)<br>
  private CacheContainer container;<br>
<br>
You&#39;ll want to remove/change entries in the loginFailures cache. Look at the source for model/sessions-infinispan for more info on how the Infinispan userSession provider works.<br>
<br>
Have a look at <a href="http://www.mastertheboss.com/jboss-frameworks/infinispan/develop-a-clustered-application-with-infinispan-data-grid" target="_blank">www.mastertheboss.com/jboss-frameworks/infinispan/develop-a-clustered-application-with-infinispan-data-grid</a> for more info on using the Infinispan subsystem from your app.<br>
<span class=""><br>
&gt;<br>
&gt; are there any documents on this integration aspect within keycloak ?<br>
<br>
</span>What integration aspect are you referring to? The work around proposed with accessing JPA or Infinispan directly is not recommended so won&#39;t be documented.<br>
<div class="HOEnZb"><div class="h5"><br>
&gt;<br>
&gt; On Wed, Nov 26, 2014 at 11:02 AM, Stian Thorgersen &lt;<a href="mailto:stian@redhat.com">stian@redhat.com</a>&gt; wrote:<br>
&gt;<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt; ----- Original Message -----<br>
&gt; &gt; &gt; From: &quot;Alexander Chriztopher&quot; &lt;<a href="mailto:alexander.chriztopher@gmail.com">alexander.chriztopher@gmail.com</a>&gt;<br>
&gt; &gt; &gt; To: &quot;Stian Thorgersen&quot; &lt;<a href="mailto:stian@redhat.com">stian@redhat.com</a>&gt;<br>
&gt; &gt; &gt; Cc: &quot;Bill Burke&quot; &lt;<a href="mailto:bburke@redhat.com">bburke@redhat.com</a>&gt;, <a href="mailto:keycloak-user@lists.jboss.org">keycloak-user@lists.jboss.org</a><br>
&gt; &gt; &gt; Sent: Wednesday, 26 November, 2014 10:51:11 AM<br>
&gt; &gt; &gt; Subject: Re: [keycloak-user] Brut force attack questions<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; nice !<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; is there a way to play with this via rest -regardless to wether am jpa,<br>
&gt; &gt; &gt; infinispan or in-memory ?<br>
&gt; &gt;<br>
&gt; &gt; Afraid not, that&#39;s what we&#39;ll need to add. Not sure when we get time<br>
&gt; &gt; though. If you&#39;re up for it we would be more than happy to accept a<br>
&gt; &gt; contribution, I can give you some pointers on how to do it. Alternatively,<br>
&gt; &gt; you can create your own app that uses JAX-RS and either JPA or the<br>
&gt; &gt; Infinispan subsystem to remove login-failure entries.<br>
&gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; On Wed, Nov 26, 2014 at 10:39 AM, Stian Thorgersen &lt;<a href="mailto:stian@redhat.com">stian@redhat.com</a>&gt;<br>
&gt; &gt; wrote:<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; By default user sessions (and login failures) are stored in-memory not<br>
&gt; &gt; in<br>
&gt; &gt; &gt; &gt; the database. Unless you specify JPA for the userSession provider those<br>
&gt; &gt; &gt; &gt; tables will stay empty.<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; You could either do what you&#39;re trying to do, which should work if you<br>
&gt; &gt; use<br>
&gt; &gt; &gt; &gt; the jpa userSession provider. The other if you&#39;re worried about the<br>
&gt; &gt; &gt; &gt; performance of storing user sessions in the db is to use the Infinispan<br>
&gt; &gt; &gt; &gt; provider, then you can manually delete login failures from the<br>
&gt; &gt; userSession<br>
&gt; &gt; &gt; &gt; cache from another application.<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; We should add a mechanism to both view and remove login-failure<br>
&gt; &gt; entries to<br>
&gt; &gt; &gt; &gt; the admin console though.<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; ----- Original Message -----<br>
&gt; &gt; &gt; &gt; &gt; From: &quot;Alexander Chriztopher&quot; &lt;<a href="mailto:alexander.chriztopher@gmail.com">alexander.chriztopher@gmail.com</a>&gt;<br>
&gt; &gt; &gt; &gt; &gt; To: &quot;Bill Burke&quot; &lt;<a href="mailto:bburke@redhat.com">bburke@redhat.com</a>&gt;, <a href="mailto:keycloak-user@lists.jboss.org">keycloak-user@lists.jboss.org</a><br>
&gt; &gt; &gt; &gt; &gt; Sent: Wednesday, 26 November, 2014 9:45:42 AM<br>
&gt; &gt; &gt; &gt; &gt; Subject: Re: [keycloak-user] Brut force attack questions<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; Am to find a workaround in order to be able to unlock a user<br>
&gt; &gt; account. So<br>
&gt; &gt; &gt; &gt; far<br>
&gt; &gt; &gt; &gt; &gt; i have tried to disable then enable the user account but this does<br>
&gt; &gt; not do<br>
&gt; &gt; &gt; &gt; &gt; the trick apparently.<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; I have also tried to tweek the database but it looks like the lock<br>
&gt; &gt; &gt; &gt; &gt; information is not stored in the db even though there is the table :<br>
&gt; &gt; &gt; &gt; &gt; USERNAME_LOGIN_FAILURE. Is it normal that this table stays empty<br>
&gt; &gt; even on<br>
&gt; &gt; &gt; &gt; &gt; login failures ?<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; Do you think of any other good workaround ?<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; On Tue, Nov 25, 2014 at 11:03 PM, Alexander Chriztopher &lt;<br>
&gt; &gt; &gt; &gt; &gt; <a href="mailto:alexander.chriztopher@gmail.com">alexander.chriztopher@gmail.com</a> &gt; wrote:<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; Nice ! Again, thank you.<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; On 25 Nov 2014, at 21:39, Bill Burke &lt; <a href="mailto:bburke@redhat.com">bburke@redhat.com</a> &gt; wrote:<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;&gt; On 11/25/2014 3:27 PM, Alexander Chriztopher wrote:<br>
&gt; &gt; &gt; &gt; &gt; &gt;&gt; Hi Bill and thanks.<br>
&gt; &gt; &gt; &gt; &gt; &gt;&gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;&gt; Do you think we will be able to have this within a short period of<br>
&gt; &gt; &gt; &gt; time<br>
&gt; &gt; &gt; &gt; &gt; &gt;&gt; (4-6 weeks) or is it going to be planned for the long run ?<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; Not sure on the priority of this. We have face to face meetings in<br>
&gt; &gt; a<br>
&gt; &gt; &gt; &gt; couple<br>
&gt; &gt; &gt; &gt; &gt; &gt; of weeks to discuss priority, then of course, its christmas<br>
&gt; &gt; vacation.<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;&gt; When is the value of max wait used as there is already a wait<br>
&gt; &gt; &gt; &gt; increment<br>
&gt; &gt; &gt; &gt; &gt; &gt;&gt; out there ?<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; Correct. It will increase the wait after each failure until the<br>
&gt; &gt; max is<br>
&gt; &gt; &gt; &gt; hit.<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;&gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;&gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;&gt;&gt; On 25 Nov 2014, at 20:05, Bill Burke &lt; <a href="mailto:bburke@redhat.com">bburke@redhat.com</a> &gt;<br>
&gt; &gt; wrote:<br>
&gt; &gt; &gt; &gt; &gt; &gt;&gt;&gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;&gt;&gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;&gt;&gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt; On 11/25/2014 12:32 PM, Alexander Chriztopher wrote:<br>
&gt; &gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt; Hi,<br>
&gt; &gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt; I have a some question with regards to Brut Force Attack<br>
&gt; &gt; Protection<br>
&gt; &gt; &gt; &gt; :<br>
&gt; &gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt; # 1 / When brut force attack protection is enabled is there a<br>
&gt; &gt; way to<br>
&gt; &gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt; know when a user account is locked ? I am thinking about the<br>
&gt; &gt; admin<br>
&gt; &gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt; console.<br>
&gt; &gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt; # 2 / When a user account is locked is there a way to unlock it<br>
&gt; &gt; &gt; &gt; from the<br>
&gt; &gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt; admin console ?<br>
&gt; &gt; &gt; &gt; &gt; &gt;&gt;&gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;&gt;&gt; Unfortunately no for the above. I&#39;ll log a jira.<br>
&gt; &gt; &gt; &gt; &gt; &gt;&gt;&gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt; # 3 / What is the difference between wait increment (When<br>
&gt; &gt; failure<br>
&gt; &gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt; threshold has been met, how much time should the user be locked<br>
&gt; &gt; &gt; &gt; out?)<br>
&gt; &gt; &gt; &gt; &gt; &gt;&gt;&gt;&gt; and max wait (Max time a user will be locked out.).<br>
&gt; &gt; &gt; &gt; &gt; &gt;&gt;&gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;&gt;&gt; correct on both.<br>
&gt; &gt; &gt; &gt; &gt; &gt;&gt;&gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;&gt;&gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;&gt;&gt; --<br>
&gt; &gt; &gt; &gt; &gt; &gt;&gt;&gt; Bill Burke<br>
&gt; &gt; &gt; &gt; &gt; &gt;&gt;&gt; JBoss, a division of Red Hat<br>
&gt; &gt; &gt; &gt; &gt; &gt;&gt;&gt; <a href="http://bill.burkecentral.com" target="_blank">http://bill.burkecentral.com</a><br>
&gt; &gt; &gt; &gt; &gt; &gt;&gt;&gt; _______________________________________________<br>
&gt; &gt; &gt; &gt; &gt; &gt;&gt;&gt; keycloak-user mailing list<br>
&gt; &gt; &gt; &gt; &gt; &gt;&gt;&gt; <a href="mailto:keycloak-user@lists.jboss.org">keycloak-user@lists.jboss.org</a><br>
&gt; &gt; &gt; &gt; &gt; &gt;&gt;&gt; <a href="https://lists.jboss.org/mailman/listinfo/keycloak-user" target="_blank">https://lists.jboss.org/mailman/listinfo/keycloak-user</a><br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; --<br>
&gt; &gt; &gt; &gt; &gt; &gt; Bill Burke<br>
&gt; &gt; &gt; &gt; &gt; &gt; JBoss, a division of Red Hat<br>
&gt; &gt; &gt; &gt; &gt; &gt; <a href="http://bill.burkecentral.com" target="_blank">http://bill.burkecentral.com</a><br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; _______________________________________________<br>
&gt; &gt; &gt; &gt; &gt; keycloak-user mailing list<br>
&gt; &gt; &gt; &gt; &gt; <a href="mailto:keycloak-user@lists.jboss.org">keycloak-user@lists.jboss.org</a><br>
&gt; &gt; &gt; &gt; &gt; <a href="https://lists.jboss.org/mailman/listinfo/keycloak-user" target="_blank">https://lists.jboss.org/mailman/listinfo/keycloak-user</a><br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt;<br>
&gt;<br>
</div></div></blockquote></div><br></div>