[keycloak-user] How to include the keycloak wildfly adapter libraries in the secure war application classpath?

Darrell Wu darrell at 1placeonline.com
Wed May 25 02:49:52 EDT 2016


I'm using wildfly 10

On Wednesday, 25 May 2016, Stian Thorgersen <sthorger at redhat.com> wrote:

> What version of WildFly do you have?
>
> On 25 May 2016 at 07:43, Darrell Wu <darrell at 1placeonline.com
> <javascript:_e(%7B%7D,'cvml','darrell at 1placeonline.com');>> wrote:
>
>> It doesn't seem to work for me.  It looks like it looking in the wrong
>> place,   If i copy the keycloak libraries to
>> modules\system\layers\base\org\keycloak directory then it works.  Also my
>> WAR is within an EAR archive
>>
>>
>> On 25 May 2016 at 17:05, Stian Thorgersen <sthorger at redhat.com
>> <javascript:_e(%7B%7D,'cvml','sthorger at redhat.com');>> wrote:
>>
>>> The dependencies should be automatically injected into your WAR if it's
>>> either secured in standalone.xml or if the auth-method is set to KEYCLOAK.
>>>
>>> On 21 May 2016 at 05:15, Darrell Wu <darrell at 1placeonline.com
>>> <javascript:_e(%7B%7D,'cvml','darrell at 1placeonline.com');>> wrote:
>>>
>>>> I'm not using the saml client adapters, i'm using the jboss/wildfly
>>>> adapter
>>>> as mention here
>>>>
>>>> http://keycloak.github.io/docs/userguide/keycloak-server/html/ch08.html#jboss-adapter
>>>>
>>>> I have the following in my wildfly 10 standalone.xml file
>>>> under entensions
>>>>
>>>>  <extension module="org.keycloak.keycloak-adapter-subsystem"/>
>>>>
>>>> under security subsystem
>>>> <security-domain name="keycloak">
>>>>                     <authentication>
>>>>                         <login-module
>>>> code="org.keycloak.adapters.jboss.KeycloakLoginModule" flag="required"/>
>>>>                     </authentication>
>>>>                 </security-domain>
>>>>
>>>> under the keycloak subsystem i have secure my application
>>>>
>>>> <secure-deployment name="reporting-server-rest.war">
>>>>                 <realm>1Place</realm>
>>>>                 <resource>1Place-reporting</resource>
>>>>                 <realm-public-key>xxxxxxxxKey
>>>> removedxxxxxxxxxxx</realm-public-key>
>>>>                 <auth-server-url>http://localhost:8180/
>>>> </auth-server-url>
>>>>                 <ssl-required>EXTERNAL</ssl-required>
>>>>                 <credential name="secret">xxxxxxxxKey
>>>> removedxxxxxxxxxxx</credential>
>>>>             </secure-deployment>
>>>>
>>>> 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.
>>>> It is called by a produces method
>>>>
>>>>
>>>> public class CurrentUserProducer {
>>>>
>>>>
>>>>     @Inject
>>>>     OperatorService operatorService;
>>>>
>>>>     @LoggedInUser
>>>>     @Produces
>>>>     public CurrentUser produceCurrentUser() {
>>>>         return operatorService.getCurrentUser();
>>>>     }
>>>> }
>>>>
>>>>
>>>>
>>>> The OperatorService  stateless session bean  getCurrentUser method
>>>> looks like the following.  The exception is occurring on the first line
>>>>   @Inject
>>>>     private HttpServletRequest httpRequest;
>>>>
>>>> public CurrentUser getCurrentUser(){
>>>>   KeycloakSecurityContext securityContext = (KeycloakSecurityContext)
>>>> httpRequest.getAttribute(KeycloakSecurityContext.class.getName());
>>>>
>>>>
>>>> a filter in the reporting-server-rest.war archive is injecting the
>>>> CurrentUser like so
>>>>
>>>> @WebFilter(dispatcherTypes = {DispatcherType.REQUEST,
>>>> DispatcherType.FORWARD}, urlPatterns = {"/*"})
>>>> public class CurrentUserFilter implements Filter {
>>>>
>>>>     @Inject @LoggedInUser
>>>>     private CurrentUser currentUser;
>>>>
>>>>
>>>>
>>>> I'm getting the following exception in the log
>>>>
>>>> 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
>>>> placeonline.rest.CurrentUserFilter
>>>>     at
>>>> io.undertow.servlet.core.ManagedFilter.createFilter(ManagedFilter.java:76)
>>>>     at
>>>> io.undertow.servlet.core.ManagedFilter.getFilter(ManagedFilter.java:65)
>>>>     at
>>>> io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:60)
>>>>     at
>>>> io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
>>>>     at
>>>> io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:84)
>>>>     at
>>>> io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)
>>>>     at
>>>> io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
>>>>     at
>>>> org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:78)
>>>>     at
>>>> io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
>>>>     at
>>>> org.keycloak.adapters.undertow.UndertowAuthenticatedActionsHandler.handleRequest(UndertowAuthenticatedActionsHandler.java:66)
>>>>     at
>>>> io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:131)
>>>>     at
>>>> io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)
>>>>     at
>>>> io.undertow.server.handlers.DisableCacheHandler.handleRequest(DisableCacheHandler.java:33)
>>>>     at
>>>> io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
>>>>     at
>>>> io.undertow.security.handlers.AuthenticationConstraintHandler.handleRequest(AuthenticationConstraintHandler.java:51)
>>>>     at
>>>> io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)
>>>>     at
>>>> io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64)
>>>>     at
>>>> io.undertow.servlet.handlers.security.ServletSecurityConstraintHandler.handleRequest(ServletSecurityConstraintHandler.java:56)
>>>>     at
>>>> io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60)
>>>>     at
>>>> io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77)
>>>>     at
>>>> io.undertow.security.handlers.NotificationReceiverHandler.handleRequest(NotificationReceiverHandler.java:50)
>>>>     at
>>>> io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43)
>>>>     at
>>>> io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
>>>>     at
>>>> org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61)
>>>>     at
>>>> io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
>>>>     at
>>>> org.keycloak.adapters.undertow.ServletPreAuthActionsHandler.handleRequest(ServletPreAuthActionsHandler.java:69)
>>>>     at
>>>> io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
>>>>     at
>>>> io.undertow.servlet.handlers.ServletInitialHandler.jrHandle(ServletInitialHandler.java)
>>>>     at
>>>> org.zeroturnaround.javarebel.integration.servlet.undertow.cbp.ServletInitialHandlerCBP.handleRequest(ServletInitialHandlerCBP.java:100)
>>>>     at
>>>> io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:284)
>>>>     at
>>>> io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:263)
>>>>     at
>>>> io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:81)
>>>>     at
>>>> io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:174)
>>>>     at
>>>> io.undertow.server.Connectors.executeRootHandler(Connectors.java:202)
>>>>     at
>>>> io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:793)
>>>>     at
>>>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
>>>>     at
>>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
>>>>     at java.lang.Thread.run(Thread.java:745)
>>>> Caused by: java.lang.IllegalStateException: WFLYEE0042: Failed to
>>>> construct component instance
>>>>     at
>>>> org.jboss.as.ee.component.BasicComponent.constructComponentInstance(BasicComponent.java:163)
>>>>     at
>>>> org.jboss.as.ee.component.BasicComponent.constructComponentInstance(BasicComponent.java:134)
>>>>     at
>>>> org.jboss.as.ee.component.BasicComponent.createInstance(BasicComponent.java:88)
>>>>     at
>>>> org.jboss.as.ee.component.ComponentRegistry$ComponentManagedReferenceFactory.getReference(ComponentRegistry.java:149)
>>>>     at
>>>> org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$6.createInstance(UndertowDeploymentInfoService.java:1366)
>>>>     at
>>>> io.undertow.servlet.core.ManagedFilter.createFilter(ManagedFilter.java:74)
>>>>     ... 37 more
>>>> Caused by: javax.ejb.EJBException: WFLYEJB0442: Unexpected Error
>>>>     at
>>>> org.jboss.as.ejb3.tx.CMTTxInterceptor.handleExceptionInOurTx(CMTTxInterceptor.java:184)
>>>>     at
>>>> org.jboss.as.ejb3.tx.CMTTxInterceptor.invokeInOurTx(CMTTxInterceptor.java:277)
>>>>     at
>>>> org.jboss.as.ejb3.tx.CMTTxInterceptor.required(CMTTxInterceptor.java:327)
>>>>     at
>>>> org.jboss.as.ejb3.tx.CMTTxInterceptor.processInvocation(CMTTxInterceptor.java:239)
>>>>     at
>>>> org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
>>>>     at
>>>> org.jboss.as.ejb3.component.interceptors.CurrentInvocationContextInterceptor.processInvocation(CurrentInvocationContextInterceptor.java:41)
>>>>     at
>>>> org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
>>>>     at
>>>> org.jboss.as.ejb3.component.invocationmetrics.WaitTimeInterceptor.processInvocation(WaitTimeInterceptor.java:43)
>>>>     at
>>>> org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
>>>>     at
>>>> org.jboss.as.ejb3.security.SecurityContextInterceptor.processInvocation(SecurityContextInterceptor.java:100)
>>>>     at
>>>> org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
>>>>     at
>>>> org.jboss.as.ejb3.component.interceptors.ShutDownInterceptorFactory$1.processInvocation(ShutDownInterceptorFactory.java:64)
>>>>     at
>>>> org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
>>>>     at
>>>> org.jboss.as.ejb3.component.interceptors.LoggingInterceptor.processInvocation(LoggingInterceptor.java:66)
>>>>     at
>>>> org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
>>>>     at
>>>> org.jboss.as.ee.component.NamespaceContextInterceptor.processInvocation(NamespaceContextInterceptor.java:50)
>>>>     at
>>>> org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
>>>>     at
>>>> org.jboss.as.ejb3.component.interceptors.AdditionalSetupInterceptor.processInvocation(AdditionalSetupInterceptor.java:54)
>>>>     at
>>>> org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
>>>>     at
>>>> org.jboss.invocation.ContextClassLoaderInterceptor.processInvocation(ContextClassLoaderInterceptor.java:64)
>>>>     at
>>>> org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
>>>>     at
>>>> org.jboss.invocation.InterceptorContext.run(InterceptorContext.java:356)
>>>>     at
>>>> org.wildfly.security.manager.WildFlySecurityManager.doChecked(WildFlySecurityManager.java:636)
>>>>     at
>>>> org.jboss.invocation.AccessCheckingInterceptor.processInvocation(AccessCheckingInterceptor.java:61)
>>>>     at
>>>> org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
>>>>     at
>>>> org.jboss.invocation.InterceptorContext.run(InterceptorContext.java:356)
>>>>     at
>>>> org.jboss.invocation.PrivilegedWithCombinerInterceptor.processInvocation(PrivilegedWithCombinerInterceptor.java:80)
>>>>     at
>>>> org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
>>>>     at
>>>> org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61)
>>>>     at
>>>> org.jboss.as.ee.component.ViewService$View.invoke(ViewService.java:195)
>>>>     at
>>>> org.jboss.as.ee.component.ViewDescription$1.processInvocation(ViewDescription.java:185)
>>>>     at
>>>> org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
>>>>     at
>>>> org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61)
>>>>     at
>>>> org.jboss.as.ee.component.ProxyInvocationHandler.invoke(ProxyInvocationHandler.java:73)
>>>>     at
>>>> com.oneplaceonline.business.users.boundary.OperatorService$$$view14.getCurrentUser(Unknown
>>>> Source)
>>>>     at sun.reflect.GeneratedMethodAccessor89.invoke(Unknown Source)
>>>>     at
>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>>>     at java.lang.reflect.Method.invoke(Method.java:497)
>>>>     at
>>>> org.jboss.weld.util.reflection.Reflections.invokeAndUnwrap(Reflections.java:436)
>>>>     at
>>>> org.jboss.weld.bean.proxy.EnterpriseBeanProxyMethodHandler.invoke(EnterpriseBeanProxyMethodHandler.java:127)
>>>>     at
>>>> org.jboss.weld.bean.proxy.EnterpriseTargetBeanInstance.invoke(EnterpriseTargetBeanInstance.java:56)
>>>>     at
>>>> org.jboss.weld.bean.proxy.InjectionPointPropagatingEnterpriseTargetBeanInstance.invoke(InjectionPointPropagatingEnterpriseTargetBeanInstance.java:67)
>>>>     at
>>>> org.jboss.weld.bean.proxy.ProxyMethodHandler.invoke(ProxyMethodHandler.java:100)
>>>>     at
>>>> com.oneplaceonline.business.users.boundary.OperatorService$Proxy$_$$_Weld$EnterpriseProxy$.getCurrentUser(Unknown
>>>> Source)
>>>>     at
>>>> com.oneplaceonline.business.users.boundary.CurrentUserProducer.produceCurrentUser(CurrentUserProducer.java:17)
>>>>     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>>     at
>>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>>>>     at
>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>>>     at java.lang.reflect.Method.invoke(Method.java:497)
>>>>     at
>>>> org.jboss.weld.injection.StaticMethodInjectionPoint.invoke(StaticMethodInjectionPoint.java:88)
>>>>     at
>>>> org.jboss.weld.injection.StaticMethodInjectionPoint.invoke(StaticMethodInjectionPoint.java:78)
>>>>     at
>>>> org.jboss.weld.injection.producer.ProducerMethodProducer.produce(ProducerMethodProducer.java:99)
>>>>     at
>>>> org.jboss.weld.injection.producer.AbstractMemberProducer.produce(AbstractMemberProducer.java:161)
>>>>     at
>>>> org.jboss.weld.bean.AbstractProducerBean.create(AbstractProducerBean.java:181)
>>>>     at
>>>> org.jboss.weld.context.unbound.DependentContextImpl.get(DependentContextImpl.java:70)
>>>>     at
>>>> org.jboss.weld.bean.ContextualInstanceStrategy$DefaultContextualInstanceStrategy.get(ContextualInstanceStrategy.java:101)
>>>>     at
>>>> org.jboss.weld.bean.ContextualInstance.get(ContextualInstance.java:50)
>>>>     at
>>>> org.jboss.weld.manager.BeanManagerImpl.getReference(BeanManagerImpl.java:742)
>>>>     at
>>>> org.jboss.weld.manager.BeanManagerImpl.getInjectableReference(BeanManagerImpl.java:842)
>>>>     at
>>>> org.jboss.weld.injection.FieldInjectionPoint.inject(FieldInjectionPoint.java:92)
>>>>     at org.jboss.weld.util.Beans.injectBoundFields(Beans.java:378)
>>>>     at
>>>> org.jboss.weld.util.Beans.injectFieldsAndInitializers(Beans.java:389)
>>>>     at
>>>> org.jboss.weld.injection.producer.DefaultInjector$1.proceed(DefaultInjector.java:71)
>>>>     at
>>>> org.jboss.weld.injection.InjectionContextImpl.run(InjectionContextImpl.java:48)
>>>>     at
>>>> org.jboss.weld.injection.producer.DefaultInjector.inject(DefaultInjector.java:73)
>>>>     at
>>>> org.jboss.weld.injection.producer.BasicInjectionTarget.inject(BasicInjectionTarget.java:121)
>>>>     at
>>>> org.jboss.as.weld.injection.WeldInjectionContext.inject(WeldInjectionContext.java:39)
>>>>     at
>>>> org.jboss.as.weld.injection.WeldInjectionInterceptor.processInvocation(WeldInjectionInterceptor.java:51)
>>>>     at
>>>> org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
>>>>     at
>>>> org.jboss.as.ee.component.AroundConstructInterceptorFactory$1.processInvocation(AroundConstructInterceptorFactory.java:28)
>>>>     at
>>>> org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
>>>>     at
>>>> org.jboss.as.weld.injection.WeldInterceptorInjectionInterceptor.processInvocation(WeldInterceptorInjectionInterceptor.java:56)
>>>>     at
>>>> org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
>>>>     at
>>>> org.jboss.as.weld.injection.WeldInjectionContextInterceptor.processInvocation(WeldInjectionContextInterceptor.java:43)
>>>>     at
>>>> org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
>>>>     at
>>>> org.jboss.as.ee.concurrent.ConcurrentContextInterceptor.processInvocation(ConcurrentContextInterceptor.java:45)
>>>>     at
>>>> org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
>>>>     at
>>>> org.jboss.invocation.ContextClassLoaderInterceptor.processInvocation(ContextClassLoaderInterceptor.java:64)
>>>>     at
>>>> org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
>>>>     at
>>>> org.jboss.invocation.InterceptorContext.run(InterceptorContext.java:356)
>>>>     at
>>>> org.jboss.invocation.PrivilegedWithCombinerInterceptor.processInvocation(PrivilegedWithCombinerInterceptor.java:80)
>>>>     at
>>>> org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
>>>>     at
>>>> org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61)
>>>>     at
>>>> org.jboss.as.ee.component.BasicComponent.constructComponentInstance(BasicComponent.java:161)
>>>>     ... 42 more
>>>> Caused by: java.lang.NoClassDefFoundError:
>>>> org/keycloak/KeycloakSecurityContext
>>>>     at
>>>> com.oneplaceonline.business.users.boundary.OperatorService.getCurrentUser(OperatorService.java:81)
>>>>     at sun.reflect.GeneratedMethodAccessor89.invoke(Unknown Source)
>>>>     at
>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>>>     at java.lang.reflect.Method.invoke(Method.java:497)
>>>>     at
>>>> org.jboss.as.ee.component.ManagedReferenceMethodInterceptor.processInvocation(ManagedReferenceMethodInterceptor.java:52)
>>>>     at
>>>> org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
>>>>     at
>>>> org.jboss.invocation.InterceptorContext$Invocation.proceed(InterceptorContext.java:437)
>>>>     at
>>>> org.jboss.as.weld.ejb.Jsr299BindingsInterceptor.doMethodInterception(Jsr299BindingsInterceptor.java:82)
>>>>     at
>>>> org.jboss.as.weld.ejb.Jsr299BindingsInterceptor.processInvocation(Jsr299BindingsInterceptor.java:93)
>>>>     at
>>>> org.jboss.as.ee.component.interceptors.UserInterceptorFactory$1.processInvocation(UserInterceptorFactory.java:63)
>>>>     at
>>>> org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
>>>>     at
>>>> org.jboss.as.ejb3.component.invocationmetrics.ExecutionTimeInterceptor.processInvocation(ExecutionTimeInterceptor.java:43)
>>>>     at
>>>> org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
>>>>     at
>>>> org.jboss.as.jpa.interceptor.SBInvocationInterceptor.processInvocation(SBInvocationInterceptor.java:47)
>>>>     at
>>>> org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
>>>>     at
>>>> org.jboss.invocation.InterceptorContext$Invocation.proceed(InterceptorContext.java:437)
>>>>     at
>>>> org.jboss.weld.ejb.AbstractEJBRequestScopeActivationInterceptor.aroundInvoke(AbstractEJBRequestScopeActivationInterceptor.java:64)
>>>>     at
>>>> org.jboss.as.weld.ejb.EjbRequestScopeActivationInterceptor.processInvocation(EjbRequestScopeActivationInterceptor.java:83)
>>>>     at
>>>> org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
>>>>     at
>>>> org.jboss.as.ee.concurrent.ConcurrentContextInterceptor.processInvocation(ConcurrentContextInterceptor.java:45)
>>>>     at
>>>> org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
>>>>     at
>>>> org.jboss.invocation.InitialInterceptor.processInvocation(InitialInterceptor.java:21)
>>>>     at
>>>> org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
>>>>     at
>>>> org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61)
>>>>     at
>>>> org.jboss.as.ee.component.interceptors.ComponentDispatcherInterceptor.processInvocation(ComponentDispatcherInterceptor.java:52)
>>>>     at
>>>> org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
>>>>     at
>>>> org.jboss.as.ejb3.component.pool.PooledInstanceInterceptor.processInvocation(PooledInstanceInterceptor.java:51)
>>>>     at
>>>> org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
>>>>     at
>>>> org.jboss.as.ejb3.tx.CMTTxInterceptor.invokeInOurTx(CMTTxInterceptor.java:275)
>>>>     ... 124 more
>>>>
>>>> Does it have anything to do with the change in 1.9.0
>>>>
>>>> http://keycloak.github.io/docs/userguide/keycloak-server/html/Migration_from_older_versions.html#d4e4103
>>>>  under
>>>> 35.6.3. Migrating to 1.9.0Adapter Subsystems only bring in
>>>> dependencies if keycloak is on
>>>>
>>>> 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
>>>>
>>>> Mind you i'm not using saml or oidc adapter
>>>>
>>>>
>>>>
>>>> On 21 May 2016 at 00:51, Bruno Oliveira <bruno at abstractj.org
>>>> <javascript:_e(%7B%7D,'cvml','bruno at abstractj.org');>> wrote:
>>>>
>>>>> Do you have the security domain specified like described here:
>>>>>
>>>>> http://keycloak.github.io/docs/userguide/saml-client-adapter/html/jboss-adapter.html
>>>>>
>>>>> If possible send some steps to reproduce or the code snippet.
>>>>>
>>>>>
>>>>> On 2016-05-20, Darrell Wu wrote:
>>>>> > If it helps I'm using wildfly 10 and have keycloak on a standalone
>>>>> server.
>>>>> > The authenication works. It just when my app tries to read the
>>>>> security
>>>>> > context I get the class not found exception.
>>>>> >
>>>>> > So what triggers wildfly to include the keycloak modules in my apps
>>>>> class
>>>>> > path?
>>>>> > On 20/05/2016 10:10 pm, "Bruno Oliveira" <bruno at abstractj.org
>>>>> <javascript:_e(%7B%7D,'cvml','bruno at abstractj.org');>> wrote:
>>>>> >
>>>>> > > Weird because it was fixed here:
>>>>> > > https://issues.jboss.org/browse/KEYCLOAK-2483. Plus, I tested
>>>>> > > on WildFly 9.0.2.Final with Keycloak adapter 1.9.4.Final and
>>>>> couldn't
>>>>> > > reproduce the issue.
>>>>> > >
>>>>> > > On 2016-05-20, Darrell Wu wrote:
>>>>> > > > Hi,
>>>>> > > >
>>>>> > > > With the keycloak wildfly adapter for version 1.9.x i've noticed
>>>>> that the
>>>>> > > > location of the Keycloak Subsystem modules have changed from
>>>>> > > > modules\system\layers\base\org\keycloak to
>>>>> > > > modules\system\add-ons\keycloak\org\keycloak
>>>>> > > >
>>>>> > > > Now on my secure war application server I've installed the
>>>>> keycloak
>>>>> > > wildfly
>>>>> > > > adpater by unzipping the archive and running the
>>>>> adapter-install.cl
>>>>> > > script.
>>>>> > > >
>>>>> > > > Now In my application i'm getting a
>>>>> > > > ClassNotFoundException: org.keycloak.KeycloakSecurityContext
>>>>> > > >
>>>>> > > > when the following is executed
>>>>> > > >
>>>>> > > > KeycloakSecurityContext securityContext =
>>>>> (KeycloakSecurityContext)
>>>>> > > >
>>>>> httpRequest.getAttribute(KeycloakSecurityContext.class.getName());
>>>>> > > >
>>>>> > > > Obviously the application isn't loading the keycloak modules in
>>>>> the
>>>>> > > > classpath.
>>>>> > > > What is the proper way to include the keycloak libraries in my
>>>>> app?
>>>>> > > >
>>>>> > > > Should my app have a jboss-deployment-structure.xml file   or
>>>>> should the
>>>>> > > > libraries be moved back to
>>>>> modules\system\layers\base\org\keycloak?
>>>>> > > >
>>>>> > > > Thanks
>>>>> > > >
>>>>> > > >
>>>>> > > >
>>>>> > > > --
>>>>> > > > Darrell Wu
>>>>> > > > 1Place Limited
>>>>> > > > P.O. Box 125152, St Heliers, Auckland 1740, New Zealand
>>>>> > > > Level 4, 1 Queen Street, Auckland 1010, New Zealand
>>>>> > > > Phone: +64 9 5200612 ext 521 | Mob: +64 21 262 4898 | Fax: +64
>>>>> 9 5246203
>>>>> > > > Email: darrell at 1placeonline.com
>>>>> <javascript:_e(%7B%7D,'cvml','darrell at 1placeonline.com');> | Web:
>>>>> www.1placeonline.com
>>>>> > >
>>>>> > > > _______________________________________________
>>>>> > > > keycloak-user mailing list
>>>>> > > > keycloak-user at lists.jboss.org
>>>>> <javascript:_e(%7B%7D,'cvml','keycloak-user at lists.jboss.org');>
>>>>> > > > https://lists.jboss.org/mailman/listinfo/keycloak-user
>>>>> > >
>>>>> > >
>>>>> > > --
>>>>> > >
>>>>> > > abstractj
>>>>> > > PGP: 0x84DC9914
>>>>> > >
>>>>>
>>>>> --
>>>>>
>>>>> abstractj
>>>>> PGP: 0x84DC9914
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Darrell Wu
>>>> 1Place Limited
>>>> P.O. Box 125152, St Heliers, Auckland 1740, New Zealand
>>>> Level 4, 1 Queen Street, Auckland 1010, New Zealand
>>>> Phone: +64 9 5200612 ext 521 | Mob: +64 21 262 4898 | Fax: +64 9
>>>> 5246203
>>>> Email: darrell at 1placeonline.com
>>>> <javascript:_e(%7B%7D,'cvml','darrell at 1placeonline.com');> | Web:
>>>> www.1placeonline.com
>>>>
>>>> _______________________________________________
>>>> keycloak-user mailing list
>>>> keycloak-user at lists.jboss.org
>>>> <javascript:_e(%7B%7D,'cvml','keycloak-user at lists.jboss.org');>
>>>> https://lists.jboss.org/mailman/listinfo/keycloak-user
>>>>
>>>
>>>
>>
>>
>> --
>> Darrell Wu
>> 1Place Limited
>> P.O. Box 125152, St Heliers, Auckland 1740, New Zealand
>> Level 4, 1 Queen Street, Auckland 1010, New Zealand
>> Phone: +64 9 5200612 ext 521 | Mob: +64 21 262 4898 | Fax: +64 9 5246203
>> Email: darrell at 1placeonline.com
>> <javascript:_e(%7B%7D,'cvml','darrell at 1placeonline.com');> | Web:
>> www.1placeonline.com
>>
>
>

-- 
Darrell Wu
1Place Limited
P.O. Box 125152, St Heliers, Auckland 1740, New Zealand
Level 4, 1 Queen Street, Auckland 1010, New Zealand
Phone: +64 9 5200612 ext 521 | Mob: +64 21 262 4898 | Fax: +64 9 5246203
Email: darrell at 1placeonline.com | Web: www.1placeonline.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/keycloak-user/attachments/20160525/cbda53b4/attachment-0001.html 


More information about the keycloak-user mailing list