[keycloak-user] How to create a Camel Route with Keycloak Admin Client in JBoss Fuse 6.3.0?
Marek Posolda
mposolda at redhat.com
Thu Jun 15 04:15:48 EDT 2017
Hi,
I think that you're right. ATM our adminClient likely won't work inside
JBoss Fuse as adminClient is a bit tightly coupled to resteasy JAXRS
implementation and JBoss Fuse uses Apache CXF.
At some point we had the PR and discussion for Apache CXF support of our
admin client, but in the end, it wasn't done. Feel free to create JIRA
for adminClient support in Fuse environment if it doesn't yet exists.
The easiest workaround for you might be to call the REST endpoint
manually (either with CXF or with Apache HTTP Client) and not use
Keycloak builtin adminClient.
Marek
On 14/06/17 06:24, Celso Agra wrote:
> Hi all,
>
> I'm trying to use the keycloak admin client in JBoss Fuse 6.3.0. Everything
> works fine when I run the java main class, but when I put this in the JBoss
> Fuse (with Karaf) I got an error, because the keycloak are using the
> resteasy, and the OSGI is totally different. So, does anyone knows how to
> do the same keycloak admin client configuration using this environment?
>
> Here is my log:
>
> javax.ws.rs.ProcessingException: RESTEASY004655: Unable to invoke request
>
> at
>> org.jboss.resteasy.client.jaxrs.engines.ApacheHttpClient4Engine.invoke(ApacheHttpClient4Engine.java:289)
> at
>> org.jboss.resteasy.client.jaxrs.internal.ClientInvocation.invoke(ClientInvocation.java:454)
> at
>> org.jboss.resteasy.client.jaxrs.internal.proxy.ClientInvoker.invoke(ClientInvoker.java:105)
> at
>> org.jboss.resteasy.client.jaxrs.internal.proxy.ClientProxy.invoke(ClientProxy.java:76)
> at com.sun.proxy.$Proxy85.grantToken(Unknown Source)
>
> at
>> org.keycloak.admin.client.token.TokenManager.grantToken(TokenManager.java:89)
> at
>> org.keycloak.admin.client.token.TokenManager.getAccessToken(TokenManager.java:69)
> at
>> org.keycloak.admin.client.token.TokenManager.getAccessTokenString(TokenManager.java:64)
> at
>> org.keycloak.admin.client.resource.BearerAuthFilter.filter(BearerAuthFilter.java:52)
> at
>> org.jboss.resteasy.client.jaxrs.internal.ClientInvocation.invoke(ClientInvocation.java:431)
> at
>> org.jboss.resteasy.client.jaxrs.internal.proxy.ClientInvoker.invoke(ClientInvoker.java:105)
> at
>> org.jboss.resteasy.client.jaxrs.internal.proxy.ClientProxy.invoke(ClientProxy.java:76)
> at com.sun.proxy.$Proxy88.create(Unknown Source)
>
> at
>> pe.gov.br.ati.service.KeycloakAdminManager.createUserKeycloak(KeycloakAdminManager.java:64)
> at
>> pe.gov.br.ati.service.KeycloakClientService.validateAndInsertUser(KeycloakClientService.java:20)
> 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:498)
>
> at
>> org.apache.camel.component.bean.MethodInfo.invoke(MethodInfo.java:408)
> at
>> org.apache.camel.component.bean.MethodInfo$1.doProceed(MethodInfo.java:279)
> at
>> org.apache.camel.component.bean.MethodInfo$1.proceed(MethodInfo.java:252)
> at
>> org.apache.camel.component.bean.BeanProcessor.process(BeanProcessor.java:177)
> at
>> org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:77)
> at
>> org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:163)
> at
>> org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:468)
> at
>> org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:196)
> at org.apache.camel.processor.Pipeline.process(Pipeline.java:121)
>
> at org.apache.camel.processor.Pipeline.process(Pipeline.java:83)
>
> at
>> org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:196)
> at
>> org.apache.camel.component.direct.DirectProducer.process(DirectProducer.java:62)
> at
>> org.apache.camel.processor.SendProcessor.process(SendProcessor.java:145)
> at
>> org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:77)
> at
>> org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:163)
> at
>> org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:468)
> at
>> org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:196)
> at org.apache.camel.processor.Pipeline.process(Pipeline.java:121)
>
> at org.apache.camel.processor.Pipeline.process(Pipeline.java:83)
>
> at
>> org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:196)
> at
>> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:109)
> at
>> org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:91)
> at
>> org.apache.camel.component.restlet.RestletConsumer$1.handle(RestletConsumer.java:68)
> at
>> org.apache.camel.component.restlet.MethodBasedRouter.handle(MethodBasedRouter.java:54)
> at org.restlet.routing.Filter.doHandle(Filter.java:150)
>
> at org.restlet.routing.Filter.handle(Filter.java:197)
>
> at org.restlet.routing.Router.doHandle(Router.java:422)
>
> at org.restlet.routing.Router.handle(Router.java:639)
>
> at org.restlet.routing.Filter.doHandle(Filter.java:150)
>
> at org.restlet.routing.Filter.handle(Filter.java:197)
>
> at org.restlet.routing.Router.doHandle(Router.java:422)
>
> at org.restlet.routing.Router.handle(Router.java:639)
>
> at org.restlet.routing.Filter.doHandle(Filter.java:150)
>
> at
>> org.restlet.engine.application.StatusFilter.doHandle(StatusFilter.java:140)
> at org.restlet.routing.Filter.handle(Filter.java:197)
>
> at org.restlet.routing.Filter.doHandle(Filter.java:150)
>
> at org.restlet.routing.Filter.handle(Filter.java:197)
>
> at org.restlet.engine.CompositeHelper.handle(CompositeHelper.java:202)
>
> at org.restlet.Component.handle(Component.java:408)
>
> at org.restlet.Server.handle(Server.java:507)
>
> at
>> org.restlet.engine.connector.ServerHelper.handle(ServerHelper.java:63)
> at
>> org.restlet.engine.adapter.HttpServerHelper.handle(HttpServerHelper.java:143)
> at
>> org.restlet.engine.connector.HttpServerHelper$1.handle(HttpServerHelper.java:64)
> at com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:79)
>
> at sun.net.httpserver.AuthFilter.doFilter(AuthFilter.java:83)
>
> at com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:82)
>
> at
>> sun.net.httpserver.ServerImpl$Exchange$LinkHandler.handle(ServerImpl.java:675)
> at com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:79)
>
> at sun.net.httpserver.ServerImpl$Exchange.run(ServerImpl.java:647)
>
> 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:748)
>
> Caused by: javax.ws.rs.ProcessingException: RESTEASY003215: could not find
>> writer for content-type application/x-www-form-urlencoded type:
>> javax.ws.rs.core.Form$1
> at
>> org.jboss.resteasy.core.interception.jaxrs.ClientWriterInterceptorContext.throwWriterNotFoundException(ClientWriterInterceptorContext.java:40)
> at
>> org.jboss.resteasy.core.interception.jaxrs.AbstractWriterInterceptorContext.getWriter(AbstractWriterInterceptorContext.java:146)
> at
>> org.jboss.resteasy.core.interception.jaxrs.AbstractWriterInterceptorContext.proceed(AbstractWriterInterceptorContext.java:121)
> at
>> org.jboss.resteasy.client.jaxrs.internal.ClientInvocation.writeRequestBody(ClientInvocation.java:388)
> at
>> org.jboss.resteasy.client.jaxrs.engines.ApacheHttpClient4Engine.writeRequestBodyToOutputStream(ApacheHttpClient4Engine.java:589)
> at
>> org.jboss.resteasy.client.jaxrs.engines.ApacheHttpClient4Engine.buildEntity(ApacheHttpClient4Engine.java:557)
> at
>> org.jboss.resteasy.client.jaxrs.engines.ApacheHttpClient4Engine.loadHttpMethod(ApacheHttpClient4Engine.java:456)
> at
>> org.jboss.resteasy.client.jaxrs.engines.ApacheHttpClient4Engine.invoke(ApacheHttpClient4Engine.java:283)
> ... 70 more
>
>
> Thanks for the attention.
>
More information about the keycloak-user
mailing list