<div dir="ltr">Alright then.<div><br></div><div>I guess I should alter the dependencies in pom.xml then, I just thought that there was another way defined, perhaps on a different layer, and that not having access to Persistence in this layer was because it was defined this way.</div>
<div><br></div><div>But that sounds simple enough, thank you for your help!</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, May 22, 2014 at 10:30 AM, 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">Add a persistence-unit for it to:<br>
<br>
* standalone/deployments/auth-server.war/WEB-INF/classes/META-INF/persistence.xml<br>
<br>
Then use Persistence.createEntityManagerFactory(name) in AuthenticationProviderFactory.init, and create a new EntityManager in AuthenticationProviderFactory.init and pass into AuthenticationProvider.<br>
<div class="im HOEnZb"><br>
----- Original Message -----<br>
&gt; From: &quot;Rodrigo Sasaki&quot; &lt;<a href="mailto:rodrigopsasaki@gmail.com">rodrigopsasaki@gmail.com</a>&gt;<br>
</div><div class="HOEnZb"><div class="h5">&gt; To: &quot;Marek Posolda&quot; &lt;<a href="mailto:mposolda@redhat.com">mposolda@redhat.com</a>&gt;<br>
&gt; Cc: <a href="mailto:keycloak-user@lists.jboss.org">keycloak-user@lists.jboss.org</a><br>
&gt; Sent: Thursday, 22 May, 2014 2:20:39 PM<br>
&gt; Subject: Re: [keycloak-user] Migrating Users Database<br>
&gt;<br>
&gt; Hmm, I see..<br>
&gt;<br>
&gt; In that case, since I&#39;m using JPA, what would be the best way for me to get<br>
&gt; access to an EntityManager on my implementation of the<br>
&gt; AuthenticationProvider?<br>
&gt;<br>
&gt;<br>
&gt; On Mon, May 19, 2014 at 5:20 PM, Marek Posolda &lt; <a href="mailto:mposolda@redhat.com">mposolda@redhat.com</a> &gt; wrote:<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; Hi Rodrigo,<br>
&gt;<br>
&gt; it&#39;s not &quot;Settings and Authentication&quot;, but it&#39;s tab &quot;Settings&quot; and then top<br>
&gt; bar called &quot;Authentication&quot; inside it. It will be opened if you login to<br>
&gt; admin console and then open URL:<br>
&gt; <a href="http://localhost:8081/auth/admin/#/realms/keycloak-admin" target="_blank">http://localhost:8081/auth/admin/#/realms/keycloak-admin</a> (Replace<br>
&gt; &#39;keycloak-admin&#39; with name of your realm, for example &#39;test&#39;). Once you open<br>
&gt; it, you can click to button &quot;Add provider&quot; and your provider should be<br>
&gt; available in the list of available authentication providers.<br>
&gt;<br>
&gt; For the inspiration, you can take a look at the existing implementations, for<br>
&gt; example this one:<br>
&gt; <a href="https://github.com/keycloak/keycloak/tree/master/authentication/authentication-picketlink" target="_blank">https://github.com/keycloak/keycloak/tree/master/authentication/authentication-picketlink</a><br>
&gt; and it&#39;s configuration in file:<br>
&gt; <a href="https://github.com/keycloak/keycloak/blob/master/authentication/authentication-picketlink/src/main/resources/META-INF/services/org.keycloak.authentication.AuthenticationProviderFactory" target="_blank">https://github.com/keycloak/keycloak/blob/master/authentication/authentication-picketlink/src/main/resources/META-INF/services/org.keycloak.authentication.AuthenticationProviderFactory</a><br>

&gt; . Note that it&#39;s using standard java ServiceLoader mechanism described here<br>
&gt; - <a href="http://docs.oracle.com/javase/6/docs/api/java/util/ServiceLoader.html" target="_blank">http://docs.oracle.com/javase/6/docs/api/java/util/ServiceLoader.html</a><br>
&gt;<br>
&gt; You don&#39;t need implement RealmAdapter . RealmAdapter is not related to<br>
&gt; authentication SPI. It&#39;s implementation of interface RealmModel, which is<br>
&gt; part of model-api. You need to implement model-api just in case that you<br>
&gt; want to create your own storage for all keycloak data, but implementing<br>
&gt; whole model-api is much more complicated and challenging than implementation<br>
&gt; of authentication-api.<br>
&gt;<br>
&gt; So in shortcut, you need to implement AuthenticationProvider interface, which<br>
&gt; will be able to read data from your internal database.<br>
&gt;<br>
&gt; Marek<br>
&gt;<br>
&gt;<br>
&gt; On 19.5.2014 18:05, Rodrigo Sasaki wrote:<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; I have done most of what you mentioned, although I didn&#39;t find the &quot;Settings<br>
&gt; and Authentication&quot; part on the Realm Settings. I couldn&#39;t add the new<br>
&gt; provider to it like you said, and the version I&#39;m using is the one available<br>
&gt; on the github repo.<br>
&gt;<br>
&gt; Also I saw that I should probably implement a RealmAdapter aswell, to provide<br>
&gt; access to my table structure, is that correct? If so, how should I configure<br>
&gt; Keycloak to use my adapter to find users, and not it&#39;s default one? Or at<br>
&gt; least not only it&#39;s default one<br>
&gt;<br>
&gt;<br>
&gt; On Fri, May 16, 2014 at 4:50 AM, Stian Thorgersen &lt; <a href="mailto:stian@redhat.com">stian@redhat.com</a> &gt; wrote:<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; We will add some documentation to this soon, but you basically need to:<br>
&gt;<br>
&gt; - Implement<br>
&gt; <a href="https://github.com/keycloak/keycloak/blob/master/authentication/authentication-api/src/main/java/org/keycloak/authentication/AuthenticationProviderFactory.java" target="_blank">https://github.com/keycloak/keycloak/blob/master/authentication/authentication-api/src/main/java/org/keycloak/authentication/AuthenticationProviderFactory.java</a><br>

&gt; - Implement<br>
&gt; <a href="https://github.com/keycloak/keycloak/blob/master/authentication/authentication-api/src/main/java/org/keycloak/authentication/AuthenticationProvider.java" target="_blank">https://github.com/keycloak/keycloak/blob/master/authentication/authentication-api/src/main/java/org/keycloak/authentication/AuthenticationProvider.java</a><br>

&gt; - Add a<br>
&gt; &#39;META-INF/services/org.keycloak.authentication.AuthenticationProviderFactory&#39;<br>
&gt; that contains the fully qualified name of your AuthenticationProviderFactory<br>
&gt; implementation<br>
&gt;<br>
&gt; Build as a JAR and drop into<br>
&gt; keycloak/standalone/deployments/auth-server.war/WEB-INF/lib.<br>
&gt;<br>
&gt; Start the server, open the admin console, navigate to realm settings and<br>
&gt; authentication. Click Add Provider and it should now have your new provider.<br>
&gt; Add it to the realm.<br>
&gt;<br>
&gt; It will now use your provider to authenticate users.<br>
&gt;<br>
&gt; ----- Original Message -----<br>
&gt; &gt; From: &quot;Rodrigo Sasaki&quot; &lt; <a href="mailto:rodrigopsasaki@gmail.com">rodrigopsasaki@gmail.com</a> &gt;<br>
&gt; &gt; To: &quot;Bill Burke&quot; &lt; <a href="mailto:bburke@redhat.com">bburke@redhat.com</a> &gt;<br>
&gt; &gt; Cc: <a href="mailto:keycloak-user@lists.jboss.org">keycloak-user@lists.jboss.org</a><br>
&gt; &gt; Sent: Thursday, 15 May, 2014 7:30:00 PM<br>
&gt; &gt; Subject: Re: [keycloak-user] Migrating Users Database<br>
&gt; &gt;<br>
&gt; &gt; By the way, do you have further information regarding that SPI you<br>
&gt; &gt; mentioned?<br>
&gt; &gt;<br>
&gt; &gt; I was looking at the source code but I couldn&#39;t derive much from it, I<br>
&gt; &gt; don&#39;t<br>
&gt; &gt; know exactly how I should implement my own provider, and how do I tell<br>
&gt; &gt; keycloak to use mine instead of its own.<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt; On Thu, May 15, 2014 at 11:05 AM, Rodrigo Sasaki &lt; <a href="mailto:rodrigopsasaki@gmail.com">rodrigopsasaki@gmail.com</a><br>
&gt; &gt; &gt;<br>
&gt; &gt; wrote:<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt; That&#39;s quite alright at the moment.<br>
&gt; &gt;<br>
&gt; &gt; We have seen the roadmap and if it stays around the announced dates, there<br>
&gt; &gt; shouldn&#39;t be a problem for us here.<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt; On Thu, May 15, 2014 at 11:03 AM, Bill Burke &lt; <a href="mailto:bburke@redhat.com">bburke@redhat.com</a> &gt; wrote:<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt; FYI, Keycloak will be very slow until we start our performance work<br>
&gt; &gt; (scheduled for Beta-2). Right now, every login/logout/token action is<br>
&gt; &gt; all DB hits. We don&#39;t cache anything at the moment!<br>
&gt; &gt;<br>
&gt; &gt; On 5/15/2014 7:02 AM, Rodrigo Sasaki wrote:<br>
&gt; &gt; &gt; I am very interested in importing the whole database. It seems to be the<br>
&gt; &gt; &gt; cleanest way to do what we want to do here, and migrate to keycloak<br>
&gt; &gt; &gt; completely.<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; Are there any guidelines on how to do this? Nonetheless I will look into<br>
&gt; &gt; &gt; the SPI you mentioned, might come in handy sometime.<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; On Thu, May 15, 2014 at 5:13 AM, Stian Thorgersen &lt; <a href="mailto:stian@redhat.com">stian@redhat.com</a><br>
&gt; &gt; &gt; &lt;mailto: <a href="mailto:stian@redhat.com">stian@redhat.com</a> &gt;&gt; wrote:<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; At the moment we have an Authentication SPI that will let you easily<br>
&gt; &gt; &gt; authenticate users with your existing database of users. The first<br>
&gt; &gt; &gt; time a new user logs in using this approach a user will be pulled in<br>
&gt; &gt; &gt; to the Keycloak database. There&#39;s no documentation for this feature<br>
&gt; &gt; &gt; yet, but look at the SPI at<br>
&gt; &gt; &gt; <a href="https://github.com/keycloak/keycloak/tree/master/authentication/authentication-api" target="_blank">https://github.com/keycloak/keycloak/tree/master/authentication/authentication-api</a><br>
&gt; &gt; &gt; and the implementation that uses the Keycloak model itself to<br>
&gt; &gt; &gt; authenticate at<br>
&gt; &gt; &gt; <a href="https://github.com/keycloak/keycloak/tree/master/authentication/authentication-model" target="_blank">https://github.com/keycloak/keycloak/tree/master/authentication/authentication-model</a><br>
&gt; &gt; &gt; .<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; In the future we plan to provide a Sync SPI that will take this one<br>
&gt; &gt; &gt; step further and let you sync users (and roles) to/from an existing<br>
&gt; &gt; &gt; database.<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; However, if you plan to completely replace your current<br>
&gt; &gt; &gt; authentication system the cleanest solution may be to import your<br>
&gt; &gt; &gt; current user database into Keycloak once and for all. If you&#39;re<br>
&gt; &gt; &gt; interested in this approach let me know.<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; ----- Original Message -----<br>
&gt; &gt; &gt; &gt; From: &quot;Rodrigo Sasaki&quot; &lt; <a href="mailto:rodrigopsasaki@gmail.com">rodrigopsasaki@gmail.com</a><br>
&gt; &gt; &gt; &lt;mailto: <a href="mailto:rodrigopsasaki@gmail.com">rodrigopsasaki@gmail.com</a> &gt;&gt;<br>
&gt; &gt; &gt; &gt; To: <a href="mailto:keycloak-user@lists.jboss.org">keycloak-user@lists.jboss.org</a><br>
&gt; &gt; &gt; &lt;mailto: <a href="mailto:keycloak-user@lists.jboss.org">keycloak-user@lists.jboss.org</a> &gt;<br>
&gt; &gt; &gt; &gt; Sent: Wednesday, 14 May, 2014 8:52:07 PM<br>
&gt; &gt; &gt; &gt; Subject: [keycloak-user] Migrating Users Database<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; Hi,<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; I&#39;m trying to replace my current authentication system with<br>
&gt; &gt; &gt; Keycloak, but I<br>
&gt; &gt; &gt; &gt; have one problem. I already have a database of users, populated with<br>
&gt; &gt; &gt; &gt; millions of records, and I wanted to make it work with Keycloak.<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; What would be the best approach on this scenario? Should I<br>
&gt; &gt; &gt; migrate everything<br>
&gt; &gt; &gt; &gt; to the Keycloak tables, or try to make Keycloak understand my current<br>
&gt; &gt; &gt; &gt; database?<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; Is there any recommendation on this matter? And if there is, some<br>
&gt; &gt; &gt; explanation<br>
&gt; &gt; &gt; &gt; or documentation?<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; Thanks!<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; --<br>
&gt; &gt; &gt; &gt; Rodrigo Sasaki<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; _______________________________________________<br>
&gt; &gt; &gt; &gt; keycloak-user mailing list<br>
&gt; &gt; &gt; &gt; <a href="mailto:keycloak-user@lists.jboss.org">keycloak-user@lists.jboss.org</a> &lt;mailto: <a href="mailto:keycloak-user@lists.jboss.org">keycloak-user@lists.jboss.org</a> &gt;<br>
&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;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; --<br>
&gt; &gt; &gt; Rodrigo Sasaki<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; _______________________________________________<br>
&gt; &gt; &gt; keycloak-user mailing list<br>
&gt; &gt; &gt; <a href="mailto:keycloak-user@lists.jboss.org">keycloak-user@lists.jboss.org</a><br>
&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;<br>
&gt; &gt;<br>
&gt; &gt; --<br>
&gt; &gt; Bill Burke<br>
&gt; &gt; JBoss, a division of Red Hat<br>
&gt; &gt; <a href="http://bill.burkecentral.com" target="_blank">http://bill.burkecentral.com</a><br>
&gt; &gt; _______________________________________________<br>
&gt; &gt; keycloak-user mailing list<br>
&gt; &gt; <a href="mailto:keycloak-user@lists.jboss.org">keycloak-user@lists.jboss.org</a><br>
&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;<br>
&gt; &gt;admin<br>
&gt;<br>
&gt; &gt;<br>
&gt; &gt; --<br>
&gt; &gt; Rodrigo Sasaki<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt; --<br>
&gt; &gt; Rodrigo Sasaki<br>
&gt; &gt;<br>
&gt; &gt; _______________________________________________<br>
&gt; &gt; keycloak-user mailing list<br>
&gt; &gt; <a href="mailto:keycloak-user@lists.jboss.org">keycloak-user@lists.jboss.org</a><br>
&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;<br>
&gt;<br>
&gt;<br>
&gt; --<br>
&gt; Rodrigo Sasaki<br>
&gt;<br>
&gt;<br>
&gt; _______________________________________________<br>
&gt; keycloak-user mailing list <a href="mailto:keycloak-user@lists.jboss.org">keycloak-user@lists.jboss.org</a><br>
&gt; <a href="https://lists.jboss.org/mailman/listinfo/keycloak-user" target="_blank">https://lists.jboss.org/mailman/listinfo/keycloak-user</a><br>
&gt;<br>
&gt;<br>
&gt; _______________________________________________<br>
&gt; keycloak-user mailing list<br>
&gt; <a href="mailto:keycloak-user@lists.jboss.org">keycloak-user@lists.jboss.org</a><br>
&gt; <a href="https://lists.jboss.org/mailman/listinfo/keycloak-user" target="_blank">https://lists.jboss.org/mailman/listinfo/keycloak-user</a><br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; --<br>
&gt; Rodrigo Sasaki<br>
&gt;<br>
&gt; _______________________________________________<br>
&gt; keycloak-user mailing list<br>
&gt; <a href="mailto:keycloak-user@lists.jboss.org">keycloak-user@lists.jboss.org</a><br>
&gt; <a href="https://lists.jboss.org/mailman/listinfo/keycloak-user" target="_blank">https://lists.jboss.org/mailman/listinfo/keycloak-user</a><br>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div dir="ltr"><font face="Times New Roman">Rodrigo Sasaki</font><div></div></div>
</div>