<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On 16 October 2015 at 21:19, Pedro Igor Silva <span dir="ltr">&lt;<a href="mailto:psilva@redhat.com" target="_blank">psilva@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">I&#39;m not saying it does not work, but in my case I have a specific module with all the authz stuff. There I&#39;m already using Spis from KC such as JpaConnectionProvider, extension to admin rest api, etc. That is fine and everything is perfect.<br>
<br>
The problem I&#39;m facing is how to tell KC to load Spis from my module without change a bit in KC modules or change code. If you see org.keycloak.services.DefaultKeycloakSessionFactory#init, Spis are loaded from getClass().getClassLoader(). Considering that my Spis are in a different classloader, they will never be loaded.<br>
<br>
A simple solution for that would be to do something similar as when loading providers, so you could also consider the classloaders from the providers when loading Spis.<br></blockquote><div><br></div><div>That works - we should be able to look in modules and classpath entries for SPIs like we do for providers. Prepare a PR and we&#39;ll merge it.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<span class="im HOEnZb"><br>
----- Original Message -----<br>
From: &quot;Bill Burke&quot; &lt;<a href="mailto:bburke@redhat.com">bburke@redhat.com</a>&gt;<br>
To: <a href="mailto:keycloak-dev@lists.jboss.org">keycloak-dev@lists.jboss.org</a><br>
Sent: Friday, October 16, 2015 2:18:22 PM<br>
Subject: Re: [keycloak-dev] Authz Model Implementation<br>
<br>
<br>
<br>
</span><div class="HOEnZb"><div class="h5">On 10/16/2015 9:07 AM, Pedro Igor Silva wrote:<br>
&gt; Yeah, I&#39;ve talked with Bolek as well and we discussed about focusing on JPA (which I was already using) for now, but still provide a SPI for future implementations.<br>
&gt;<br>
&gt;&gt;From a SPI perspective, I did something very simple without KC&#39;s org.keycloak.provider.Spi. The main reason for this decision is that Spis in KC are not loaded when defined within a custom provider and I&#39;m trying to minimize changes in KC itself.<br>
&gt;<br>
<br>
How could the org.keycloak.provider.Spi not work?  It uses the<br>
META-INF/services pattern to locate new and old Spis.  Nothing magical<br>
there.  Your jar just needs to be loaded into the appropriate modules.<br>
<br>
<br>
--<br>
Bill Burke<br>
JBoss, a division of Red Hat<br>
<a href="http://bill.burkecentral.com" rel="noreferrer" target="_blank">http://bill.burkecentral.com</a><br>
_______________________________________________<br>
keycloak-dev mailing list<br>
<a href="mailto:keycloak-dev@lists.jboss.org">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>
keycloak-dev mailing list<br>
<a href="mailto:keycloak-dev@lists.jboss.org">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>
</div></div></blockquote></div><br></div></div>