[keycloak-user] How to include the keycloak wildfly adapter libraries in the secure war application classpath?
Stian Thorgersen
sthorger at redhat.com
Wed May 25 02:43:19 EDT 2016
What version of WildFly do you have?
On 25 May 2016 at 07:43, Darrell Wu <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> 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> 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> 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> 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 | Web: www.1placeonline.com
>>>> > >
>>>> > > > _______________________________________________
>>>> > > > keycloak-user mailing list
>>>> > > > 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 | Web: www.1placeonline.com
>>>
>>> _______________________________________________
>>> keycloak-user mailing list
>>> 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 | Web: www.1placeonline.com
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/keycloak-user/attachments/20160525/3a08be7a/attachment-0001.html
More information about the keycloak-user
mailing list