<div dir="ltr"><div>I'm not using the saml client adapters, i'm using the jboss/wildfly adapter<br>as mention here<br><a href="http://keycloak.github.io/docs/userguide/keycloak-server/html/ch08.html#jboss-adapter">http://keycloak.github.io/docs/userguide/keycloak-server/html/ch08.html#jboss-adapter</a><br><br></div>I have the following in my wildfly 10 standalone.xml file<br>under entensions<br><br> <extension module="org.keycloak.keycloak-adapter-subsystem"/><br><div><br></div><div>under security subsystem<br><security-domain name="keycloak"><br> <authentication><br> <login-module code="org.keycloak.adapters.jboss.KeycloakLoginModule" flag="required"/><br> </authentication><br> </security-domain><br><br></div><div>under the keycloak subsystem i have secure my application <br><br><secure-deployment name="reporting-server-rest.war"><br> <realm>1Place</realm><br> <resource>1Place-reporting</resource><br> <realm-public-key>xxxxxxxxKey removedxxxxxxxxxxx</realm-public-key><br> <auth-server-url><a href="http://localhost:8180/">http://localhost:8180/</a></auth-server-url><br> <ssl-required>EXTERNAL</ssl-required><br> <credential name="secret">xxxxxxxxKey removedxxxxxxxxxxx</credential><br> </secure-deployment><br><br></div><div>The reporting-server-rest.war is in an EAR archive with an ejb jar. The code with the exception is a stateless session bean(OperatorService ) in the ejb jar.<br></div><div>It is called by a produces method <br><br><br>public class CurrentUserProducer {<br><br> <br> @Inject<br> OperatorService operatorService;<br> <br> @LoggedInUser<br> @Produces<br> public CurrentUser produceCurrentUser() {<br> return operatorService.getCurrentUser();<br> }<br>}<br><br><br><br></div><div>The OperatorService stateless session bean getCurrentUser method looks like the following. The exception is occurring on the first line<br> @Inject<br> private HttpServletRequest httpRequest;<br><br>public CurrentUser getCurrentUser(){<br> KeycloakSecurityContext securityContext = (KeycloakSecurityContext) httpRequest.getAttribute(KeycloakSecurityContext.class.getName());<br> <br></div><div><br></div><div>a filter in the reporting-server-rest.war archive is injecting the CurrentUser like so<br><br>@WebFilter(dispatcherTypes = {DispatcherType.REQUEST, DispatcherType.FORWARD}, urlPatterns = {"/*"})<br>public class CurrentUserFilter implements Filter {<br><br> @Inject @LoggedInUser<br> private CurrentUser currentUser;<br><br></div><div> <br><br></div><div>I'm getting the following exception in the log<br><br>14:26:38,444 ERROR [io.undertow.request] (default task-10) UT005023: Exception handling request to /reporting-server-rest/widgets/checklistQuestion: javax.servlet.ServletException: UT010013: Could not instantiate com.one<br>placeonline.rest.CurrentUserFilter<br> at io.undertow.servlet.core.ManagedFilter.createFilter(ManagedFilter.java:76)<br> at io.undertow.servlet.core.ManagedFilter.getFilter(ManagedFilter.java:65)<br> at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:60)<br> at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)<br> at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:84)<br> at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)<br> at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)<br> at org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:78)<br> at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)<br> at org.keycloak.adapters.undertow.UndertowAuthenticatedActionsHandler.handleRequest(UndertowAuthenticatedActionsHandler.java:66)<br> at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:131)<br> at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)<br> at io.undertow.server.handlers.DisableCacheHandler.handleRequest(DisableCacheHandler.java:33)<br> at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)<br> at io.undertow.security.handlers.AuthenticationConstraintHandler.handleRequest(AuthenticationConstraintHandler.java:51)<br> at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)<br> at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64)<br> at io.undertow.servlet.handlers.security.ServletSecurityConstraintHandler.handleRequest(ServletSecurityConstraintHandler.java:56)<br> at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60)<br> at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77)<br> at io.undertow.security.handlers.NotificationReceiverHandler.handleRequest(NotificationReceiverHandler.java:50)<br> at io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43)<br> at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)<br> at org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61)<br> at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)<br> at org.keycloak.adapters.undertow.ServletPreAuthActionsHandler.handleRequest(ServletPreAuthActionsHandler.java:69)<br> at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)<br> at io.undertow.servlet.handlers.ServletInitialHandler.jrHandle(ServletInitialHandler.java)<br> at org.zeroturnaround.javarebel.integration.servlet.undertow.cbp.ServletInitialHandlerCBP.handleRequest(ServletInitialHandlerCBP.java:100)<br> at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:284)<br> at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:263)<br> at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:81)<br> at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:174)<br> at io.undertow.server.Connectors.executeRootHandler(Connectors.java:202)<br> at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:793)<br> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)<br> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)<br> at java.lang.Thread.run(Thread.java:745)<br>Caused by: java.lang.IllegalStateException: WFLYEE0042: Failed to construct component instance<br> at org.jboss.as.ee.component.BasicComponent.constructComponentInstance(BasicComponent.java:163)<br> at org.jboss.as.ee.component.BasicComponent.constructComponentInstance(BasicComponent.java:134)<br> at org.jboss.as.ee.component.BasicComponent.createInstance(BasicComponent.java:88)<br> at org.jboss.as.ee.component.ComponentRegistry$ComponentManagedReferenceFactory.getReference(ComponentRegistry.java:149)<br> at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$6.createInstance(UndertowDeploymentInfoService.java:1366)<br> at io.undertow.servlet.core.ManagedFilter.createFilter(ManagedFilter.java:74)<br> ... 37 more<br>Caused by: javax.ejb.EJBException: WFLYEJB0442: Unexpected Error<br> at org.jboss.as.ejb3.tx.CMTTxInterceptor.handleExceptionInOurTx(CMTTxInterceptor.java:184)<br> at org.jboss.as.ejb3.tx.CMTTxInterceptor.invokeInOurTx(CMTTxInterceptor.java:277)<br> at org.jboss.as.ejb3.tx.CMTTxInterceptor.required(CMTTxInterceptor.java:327)<br> at org.jboss.as.ejb3.tx.CMTTxInterceptor.processInvocation(CMTTxInterceptor.java:239)<br> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)<br> at org.jboss.as.ejb3.component.interceptors.CurrentInvocationContextInterceptor.processInvocation(CurrentInvocationContextInterceptor.java:41)<br> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)<br> at org.jboss.as.ejb3.component.invocationmetrics.WaitTimeInterceptor.processInvocation(WaitTimeInterceptor.java:43)<br> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)<br> at org.jboss.as.ejb3.security.SecurityContextInterceptor.processInvocation(SecurityContextInterceptor.java:100)<br> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)<br> at org.jboss.as.ejb3.component.interceptors.ShutDownInterceptorFactory$1.processInvocation(ShutDownInterceptorFactory.java:64)<br> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)<br> at org.jboss.as.ejb3.component.interceptors.LoggingInterceptor.processInvocation(LoggingInterceptor.java:66)<br> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)<br> at org.jboss.as.ee.component.NamespaceContextInterceptor.processInvocation(NamespaceContextInterceptor.java:50)<br> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)<br> at org.jboss.as.ejb3.component.interceptors.AdditionalSetupInterceptor.processInvocation(AdditionalSetupInterceptor.java:54)<br> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)<br> at org.jboss.invocation.ContextClassLoaderInterceptor.processInvocation(ContextClassLoaderInterceptor.java:64)<br> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)<br> at org.jboss.invocation.InterceptorContext.run(InterceptorContext.java:356)<br> at org.wildfly.security.manager.WildFlySecurityManager.doChecked(WildFlySecurityManager.java:636)<br> at org.jboss.invocation.AccessCheckingInterceptor.processInvocation(AccessCheckingInterceptor.java:61)<br> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)<br> at org.jboss.invocation.InterceptorContext.run(InterceptorContext.java:356)<br> at org.jboss.invocation.PrivilegedWithCombinerInterceptor.processInvocation(PrivilegedWithCombinerInterceptor.java:80)<br> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)<br> at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61)<br> at org.jboss.as.ee.component.ViewService$View.invoke(ViewService.java:195)<br> at org.jboss.as.ee.component.ViewDescription$1.processInvocation(ViewDescription.java:185)<br> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)<br> at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61)<br> at org.jboss.as.ee.component.ProxyInvocationHandler.invoke(ProxyInvocationHandler.java:73)<br> at com.oneplaceonline.business.users.boundary.OperatorService$$$view14.getCurrentUser(Unknown Source)<br> at sun.reflect.GeneratedMethodAccessor89.invoke(Unknown Source)<br> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)<br> at java.lang.reflect.Method.invoke(Method.java:497)<br> at org.jboss.weld.util.reflection.Reflections.invokeAndUnwrap(Reflections.java:436)<br> at org.jboss.weld.bean.proxy.EnterpriseBeanProxyMethodHandler.invoke(EnterpriseBeanProxyMethodHandler.java:127)<br> at org.jboss.weld.bean.proxy.EnterpriseTargetBeanInstance.invoke(EnterpriseTargetBeanInstance.java:56)<br> at org.jboss.weld.bean.proxy.InjectionPointPropagatingEnterpriseTargetBeanInstance.invoke(InjectionPointPropagatingEnterpriseTargetBeanInstance.java:67)<br> at org.jboss.weld.bean.proxy.ProxyMethodHandler.invoke(ProxyMethodHandler.java:100)<br> at com.oneplaceonline.business.users.boundary.OperatorService$Proxy$_$$_Weld$EnterpriseProxy$.getCurrentUser(Unknown Source)<br> at com.oneplaceonline.business.users.boundary.CurrentUserProducer.produceCurrentUser(CurrentUserProducer.java:17)<br> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)<br> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)<br> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)<br> at java.lang.reflect.Method.invoke(Method.java:497)<br> at org.jboss.weld.injection.StaticMethodInjectionPoint.invoke(StaticMethodInjectionPoint.java:88)<br> at org.jboss.weld.injection.StaticMethodInjectionPoint.invoke(StaticMethodInjectionPoint.java:78)<br> at org.jboss.weld.injection.producer.ProducerMethodProducer.produce(ProducerMethodProducer.java:99)<br> at org.jboss.weld.injection.producer.AbstractMemberProducer.produce(AbstractMemberProducer.java:161)<br> at org.jboss.weld.bean.AbstractProducerBean.create(AbstractProducerBean.java:181)<br> at org.jboss.weld.context.unbound.DependentContextImpl.get(DependentContextImpl.java:70)<br> at org.jboss.weld.bean.ContextualInstanceStrategy$DefaultContextualInstanceStrategy.get(ContextualInstanceStrategy.java:101)<br> at org.jboss.weld.bean.ContextualInstance.get(ContextualInstance.java:50)<br> at org.jboss.weld.manager.BeanManagerImpl.getReference(BeanManagerImpl.java:742)<br> at org.jboss.weld.manager.BeanManagerImpl.getInjectableReference(BeanManagerImpl.java:842)<br> at org.jboss.weld.injection.FieldInjectionPoint.inject(FieldInjectionPoint.java:92)<br> at org.jboss.weld.util.Beans.injectBoundFields(Beans.java:378)<br> at org.jboss.weld.util.Beans.injectFieldsAndInitializers(Beans.java:389)<br> at org.jboss.weld.injection.producer.DefaultInjector$1.proceed(DefaultInjector.java:71)<br> at org.jboss.weld.injection.InjectionContextImpl.run(InjectionContextImpl.java:48)<br> at org.jboss.weld.injection.producer.DefaultInjector.inject(DefaultInjector.java:73)<br> at org.jboss.weld.injection.producer.BasicInjectionTarget.inject(BasicInjectionTarget.java:121)<br> at org.jboss.as.weld.injection.WeldInjectionContext.inject(WeldInjectionContext.java:39)<br> at org.jboss.as.weld.injection.WeldInjectionInterceptor.processInvocation(WeldInjectionInterceptor.java:51)<br> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)<br> at org.jboss.as.ee.component.AroundConstructInterceptorFactory$1.processInvocation(AroundConstructInterceptorFactory.java:28)<br> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)<br> at org.jboss.as.weld.injection.WeldInterceptorInjectionInterceptor.processInvocation(WeldInterceptorInjectionInterceptor.java:56)<br> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)<br> at org.jboss.as.weld.injection.WeldInjectionContextInterceptor.processInvocation(WeldInjectionContextInterceptor.java:43)<br> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)<br> at org.jboss.as.ee.concurrent.ConcurrentContextInterceptor.processInvocation(ConcurrentContextInterceptor.java:45)<br> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)<br> at org.jboss.invocation.ContextClassLoaderInterceptor.processInvocation(ContextClassLoaderInterceptor.java:64)<br> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)<br> at org.jboss.invocation.InterceptorContext.run(InterceptorContext.java:356)<br> at org.jboss.invocation.PrivilegedWithCombinerInterceptor.processInvocation(PrivilegedWithCombinerInterceptor.java:80)<br> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)<br> at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61)<br> at org.jboss.as.ee.component.BasicComponent.constructComponentInstance(BasicComponent.java:161)<br> ... 42 more<br>Caused by: java.lang.NoClassDefFoundError: org/keycloak/KeycloakSecurityContext<br> at com.oneplaceonline.business.users.boundary.OperatorService.getCurrentUser(OperatorService.java:81)<br> at sun.reflect.GeneratedMethodAccessor89.invoke(Unknown Source)<br> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)<br> at java.lang.reflect.Method.invoke(Method.java:497)<br> at org.jboss.as.ee.component.ManagedReferenceMethodInterceptor.processInvocation(ManagedReferenceMethodInterceptor.java:52)<br> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)<br> at org.jboss.invocation.InterceptorContext$Invocation.proceed(InterceptorContext.java:437)<br> at org.jboss.as.weld.ejb.Jsr299BindingsInterceptor.doMethodInterception(Jsr299BindingsInterceptor.java:82)<br> at org.jboss.as.weld.ejb.Jsr299BindingsInterceptor.processInvocation(Jsr299BindingsInterceptor.java:93)<br> at org.jboss.as.ee.component.interceptors.UserInterceptorFactory$1.processInvocation(UserInterceptorFactory.java:63)<br> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)<br> at org.jboss.as.ejb3.component.invocationmetrics.ExecutionTimeInterceptor.processInvocation(ExecutionTimeInterceptor.java:43)<br> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)<br> at org.jboss.as.jpa.interceptor.SBInvocationInterceptor.processInvocation(SBInvocationInterceptor.java:47)<br> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)<br> at org.jboss.invocation.InterceptorContext$Invocation.proceed(InterceptorContext.java:437)<br> at org.jboss.weld.ejb.AbstractEJBRequestScopeActivationInterceptor.aroundInvoke(AbstractEJBRequestScopeActivationInterceptor.java:64)<br> at org.jboss.as.weld.ejb.EjbRequestScopeActivationInterceptor.processInvocation(EjbRequestScopeActivationInterceptor.java:83)<br> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)<br> at org.jboss.as.ee.concurrent.ConcurrentContextInterceptor.processInvocation(ConcurrentContextInterceptor.java:45)<br> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)<br> at org.jboss.invocation.InitialInterceptor.processInvocation(InitialInterceptor.java:21)<br> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)<br> at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61)<br> at org.jboss.as.ee.component.interceptors.ComponentDispatcherInterceptor.processInvocation(ComponentDispatcherInterceptor.java:52)<br> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)<br> at org.jboss.as.ejb3.component.pool.PooledInstanceInterceptor.processInvocation(PooledInstanceInterceptor.java:51)<br> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)<br> at org.jboss.as.ejb3.tx.CMTTxInterceptor.invokeInOurTx(CMTTxInterceptor.java:275)<br> ... 124 more<br><br></div><div>Does it have anything to do with the change in 1.9.0 <br><a href="http://keycloak.github.io/docs/userguide/keycloak-server/html/Migration_from_older_versions.html#d4e4103">http://keycloak.github.io/docs/userguide/keycloak-server/html/Migration_from_older_versions.html#d4e4103</a><br></div><div> under<br><h3 class=""><a id="d4e4121">35.6.3. Migrating to 1.9.0</a></h3><h4 class=""><a id="d4e4131">Adapter Subsystems only bring in dependencies if keycloak is on</a></h4><a id="d4e4131">
<p>
Previously, if you had installed our saml or oidc
keycloak subsystem adapters into Wildfly or JBoss EAP, we would
automatically include Keycloak client jars into
EVERY application irregardless if you were using Keycloak or not.
These libraries are now only added to your
deployment if you have keycloak authentication turned on for that
adapter
(via the subsystem, or auth-method in web.xml
</p>
</a><br></div><div>Mind you i'm not using saml or oidc adapter<br></div><div><br><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On 21 May 2016 at 00:51, Bruno Oliveira <span dir="ltr"><<a href="mailto:bruno@abstractj.org" target="_blank">bruno@abstractj.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Do you have the security domain specified like described here:<br>
<a href="http://keycloak.github.io/docs/userguide/saml-client-adapter/html/jboss-adapter.html" rel="noreferrer" target="_blank">http://keycloak.github.io/docs/userguide/saml-client-adapter/html/jboss-adapter.html</a><br>
<br>
If possible send some steps to reproduce or the code snippet.<br>
<div><div class="h5"><br>
<br>
On 2016-05-20, Darrell Wu wrote:<br>
> If it helps I'm using wildfly 10 and have keycloak on a standalone server.<br>
> The authenication works. It just when my app tries to read the security<br>
> context I get the class not found exception.<br>
><br>
> So what triggers wildfly to include the keycloak modules in my apps class<br>
> path?<br>
> On 20/05/2016 10:10 pm, "Bruno Oliveira" <<a href="mailto:bruno@abstractj.org">bruno@abstractj.org</a>> wrote:<br>
><br>
> > Weird because it was fixed here:<br>
> > <a href="https://issues.jboss.org/browse/KEYCLOAK-2483" rel="noreferrer" target="_blank">https://issues.jboss.org/browse/KEYCLOAK-2483</a>. Plus, I tested<br>
> > on WildFly 9.0.2.Final with Keycloak adapter 1.9.4.Final and couldn't<br>
> > reproduce the issue.<br>
> ><br>
> > On 2016-05-20, Darrell Wu wrote:<br>
> > > Hi,<br>
> > ><br>
> > > With the keycloak wildfly adapter for version 1.9.x i've noticed that the<br>
> > > location of the Keycloak Subsystem modules have changed from<br>
> > > modules\system\layers\base\org\keycloak to<br>
> > > modules\system\add-ons\keycloak\org\keycloak<br>
> > ><br>
> > > Now on my secure war application server I've installed the keycloak<br>
> > wildfly<br>
> > > adpater by unzipping the archive and running the <a href="http://adapter-install.cl" rel="noreferrer" target="_blank">adapter-install.cl</a><br>
> > script.<br>
> > ><br>
> > > Now In my application i'm getting a<br>
> > > ClassNotFoundException: org.keycloak.KeycloakSecurityContext<br>
> > ><br>
> > > when the following is executed<br>
> > ><br>
> > > KeycloakSecurityContext securityContext = (KeycloakSecurityContext)<br>
> > > httpRequest.getAttribute(KeycloakSecurityContext.class.getName());<br>
> > ><br>
> > > Obviously the application isn't loading the keycloak modules in the<br>
> > > classpath.<br>
> > > What is the proper way to include the keycloak libraries in my app?<br>
> > ><br>
> > > Should my app have a jboss-deployment-structure.xml file or should the<br>
> > > libraries be moved back to modules\system\layers\base\org\keycloak?<br>
> > ><br>
> > > Thanks<br>
> > ><br>
> > ><br>
> > ><br>
> > > --<br>
> > > Darrell Wu<br>
> > > 1Place Limited<br>
> > > P.O. Box 125152, St Heliers, Auckland 1740, New Zealand<br>
> > > Level 4, 1 Queen Street, Auckland 1010, New Zealand<br>
> > > Phone: <a href="tel:%2B64%209%205200612%20ext%20521" value="+6495200612">+64 9 5200612 ext 521</a> | Mob: <a href="tel:%2B64%2021%20262%204898" value="+64212624898">+64 21 262 4898</a> | Fax: <a href="tel:%2B64%209%205246203" value="+6495246203">+64 9 5246203</a><br>
> > > Email: <a href="mailto:darrell@1placeonline.com">darrell@1placeonline.com</a> | Web: <a href="http://www.1placeonline.com" rel="noreferrer" target="_blank">www.1placeonline.com</a><br>
> ><br>
> > > _______________________________________________<br>
> > > keycloak-user mailing list<br>
> > > <a href="mailto:keycloak-user@lists.jboss.org">keycloak-user@lists.jboss.org</a><br>
> > > <a href="https://lists.jboss.org/mailman/listinfo/keycloak-user" rel="noreferrer" target="_blank">https://lists.jboss.org/mailman/listinfo/keycloak-user</a><br>
> ><br>
> ><br>
> > --<br>
> ><br>
> > abstractj<br>
> > PGP: 0x84DC9914<br>
> ><br>
<br>
</div></div>--<br>
<br>
abstractj<br>
PGP: 0x84DC9914<br>
</blockquote></div><br><br clear="all"><br>-- <br><div class="gmail_signature"><div dir="ltr">Darrell Wu<br>1Place Limited<br>P.O. Box 125152, St Heliers, Auckland 1740, New Zealand<br>Level 4,<a title="aka:
-1 Queen Street" style="color:rgb(0,0,0);font-family:Arial,Helvetica,sans-serif;font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-align:-webkit-center;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255)"><span style="font-size:15px;font-family:Arial,Helvetica,sans-serif;font-weight:bold"> </span></a>1 Queen Street, Auckland 1010, New Zealand<br>Phone: +64 9 5200612 ext 521 | Mob: +64 21 262 4898 | Fax: +64 9 5246203<br>Email: <a href="mailto:darrell@1placeonline.com" target="_blank">darrell@1placeonline.com</a> | Web: <a href="http://www.1placeonline.com" target="_blank">www.1placeonline.com</a><div style="display:inline"></div><div style="display:inline"></div></div></div>
</div>