[keycloak-user] Exception with User Storage SPI priority configuration

Thomas Darimont thomas.darimont at googlemail.com
Thu Nov 3 14:40:59 EDT 2016


btw. just noticed.. switching back and forth between Identity Providers and
User Federation results in duplicate entries in the federation provider
list (ldap, and kerberos are repeated for every switch...)

2016-11-03 19:34 GMT+01:00 Thomas Darimont <thomas.darimont at googlemail.com>:

> ... if I build a new server-distribution from current master (c3f3c5c) via:
>
>   mvn clean install -DskipTests -T 2.0C -pl :keycloak-server-dist -am -P
> distribution
>
> and install the "user-storage-jpa-example" UserStorage provider and try
> to save.
> I see a similar exception, but this time JSON deserialization failures
> with the field "config" - which is probably related
> to the error discussed above.
>
> Admin-Console sends the following JSON to the http://localhost:8080/
> auth/admin/realms/federation-test/components endpoint
>
> {
>   "name":"example-user-storage-jpa",
>   "providerId":"example-user-storage-jpa",
>   "providerType":"org.keycloak.storage.UserStorageProvider",
>   "parentId":"federation-test",
>   "config":{
>     "priority":[
>       "0"
>     ],
>     "cachePolicy":{
>       "0":"DEFAULT"
>     },
>     "evictionHour":{
>       "0":"0"
>     },
>     "evictionMinute":{
>       "0":"0"
>     }
>   }
> }
>
> Cheers,
> Thomas
>
> 19:28:58,684 ERROR [org.jboss.resteasy.resteasy_jaxrs.i18n] (default
> task-116) RESTEASY002005: Failed executing POST
> /admin/realms/federation-test/components: org.jboss.resteasy.spi.ReaderException:
> com.fasterxml.jackson.databind.JsonMappingException: Can not deserialize
> instance of java.util.ArrayList out of START_OBJECT token
>  at [Source: io.undertow.servlet.spec.ServletInputStreamImpl at 1454aeb7;
> line: 1, column: 189] (through reference chain:
> org.keycloak.representations.idm.ComponentRepresentation["
> config"]->org.keycloak.common.util.MultivaluedHashMap["cachePolicy"])
> at org.jboss.resteasy.core.MessageBodyParameterInjector.inject(
> MessageBodyParameterInjector.java:184)
> at org.jboss.resteasy.core.MethodInjectorImpl.injectArguments(
> MethodInjectorImpl.java:91)
> at org.jboss.resteasy.core.MethodInjectorImpl.invoke(
> MethodInjectorImpl.java:114)
> at org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTarget(
> ResourceMethodInvoker.java:295)
> at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(
> ResourceMethodInvoker.java:249)
> at org.jboss.resteasy.core.ResourceLocatorInvoker.invokeOnTargetObject(
> ResourceLocatorInvoker.java:138)
> at org.jboss.resteasy.core.ResourceLocatorInvoker.invoke(
> ResourceLocatorInvoker.java:107)
> at org.jboss.resteasy.core.ResourceLocatorInvoker.invokeOnTargetObject(
> ResourceLocatorInvoker.java:133)
> at org.jboss.resteasy.core.ResourceLocatorInvoker.invoke(
> ResourceLocatorInvoker.java:107)
> at org.jboss.resteasy.core.ResourceLocatorInvoker.invokeOnTargetObject(
> ResourceLocatorInvoker.java:133)
> at org.jboss.resteasy.core.ResourceLocatorInvoker.invoke(
> ResourceLocatorInvoker.java:101)
> at org.jboss.resteasy.core.SynchronousDispatcher.invoke(
> SynchronousDispatcher.java:395)
> at org.jboss.resteasy.core.SynchronousDispatcher.invoke(
> SynchronousDispatcher.java:202)
> at org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.
> service(ServletContainerDispatcher.java:221)
> at org.jboss.resteasy.plugins.server.servlet.
> HttpServletDispatcher.service(HttpServletDispatcher.java:56)
> at org.jboss.resteasy.plugins.server.servlet.
> HttpServletDispatcher.service(HttpServletDispatcher.java:51)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
> at io.undertow.servlet.handlers.ServletHandler.handleRequest(
> ServletHandler.java:85)
> at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.
> doFilter(FilterHandler.java:129)
> at org.keycloak.services.filters.KeycloakSessionServletFilter.doFilter(
> KeycloakSessionServletFilter.java:90)
> 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.SecurityContextAssociationHand
> ler.handleRequest(SecurityContextAssociationHandler.java:78)
> at io.undertow.server.handlers.PredicateHandler.handleRequest(
> PredicateHandler.java:43)
> at io.undertow.servlet.handlers.security.SSLInformationAssociationHandl
> er.handleRequest(SSLInformationAssociationHandler.java:131)
> at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandl
> er.handleRequest(ServletAuthenticationCallHandler.java:57)
> at io.undertow.server.handlers.PredicateHandler.handleRequest(
> PredicateHandler.java:43)
> at io.undertow.security.handlers.AbstractConfidentialityHandler
> .handleRequest(AbstractConfidentialityHandler.java:46)
> at io.undertow.servlet.handlers.security.ServletConfidentialityConstrai
> ntHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64)
> at io.undertow.security.handlers.AuthenticationMechanismsHandle
> r.handleRequest(AuthenticationMechanismsHandler.java:60)
> at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHand
> ler.handleRequest(CachedAuthenticatedSessionHandler.java:77)
> at io.undertow.security.handlers.NotificationReceiverHandler.
> handleRequest(NotificationReceiverHandler.java:50)
> at io.undertow.security.handlers.AbstractSecurityContextAssocia
> tionHandler.handleRequest(AbstractSecurityContextAssocia
> tionHandler.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 io.undertow.server.handlers.PredicateHandler.handleRequest(
> PredicateHandler.java:43)
> 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: com.fasterxml.jackson.databind.JsonMappingException: Can not
> deserialize instance of java.util.ArrayList out of START_OBJECT token
>  at [Source: io.undertow.servlet.spec.ServletInputStreamImpl at 1454aeb7;
> line: 1, column: 189] (through reference chain:
> org.keycloak.representations.idm.ComponentRepresentation["
> config"]->org.keycloak.common.util.MultivaluedHashMap["cachePolicy"])
> at com.fasterxml.jackson.databind.JsonMappingException.
> from(JsonMappingException.java:148)
> at com.fasterxml.jackson.databind.DeserializationContext.mappingException(
> DeserializationContext.java:835)
> at com.fasterxml.jackson.databind.DeserializationContext.mappingException(
> DeserializationContext.java:831)
> at com.fasterxml.jackson.databind.deser.std.StringCollectionDeserializer.
> handleNonArray(StringCollectionDeserializer.java:240)
> at com.fasterxml.jackson.databind.deser.std.StringCollectionDeserializer.
> deserialize(StringCollectionDeserializer.java:171)
> at com.fasterxml.jackson.databind.deser.std.StringCollectionDeserializer.
> deserialize(StringCollectionDeserializer.java:161)
> at com.fasterxml.jackson.databind.deser.std.StringCollectionDeserializer.
> deserialize(StringCollectionDeserializer.java:19)
> at com.fasterxml.jackson.databind.deser.std.MapDeserializer._
> readAndBindStringMap(MapDeserializer.java:485)
> at com.fasterxml.jackson.databind.deser.std.MapDeserializer.deserialize(
> MapDeserializer.java:342)
> at com.fasterxml.jackson.databind.deser.std.MapDeserializer.deserialize(
> MapDeserializer.java:26)
> at com.fasterxml.jackson.databind.deser.SettableBeanProperty.deserialize(
> SettableBeanProperty.java:523)
> at com.fasterxml.jackson.databind.deser.impl.MethodProperty.
> deserializeAndSet(MethodProperty.java:95)
> at com.fasterxml.jackson.databind.deser.impl.BeanPropertyMap.
> findDeserializeAndSet(BeanPropertyMap.java:285)
> at com.fasterxml.jackson.databind.deser.BeanDeserializer.
> vanillaDeserialize(BeanDeserializer.java:248)
> at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(
> BeanDeserializer.java:136)
> at com.fasterxml.jackson.databind.ObjectReader._bind(
> ObjectReader.java:1410)
> at com.fasterxml.jackson.databind.ObjectReader.
> readValue(ObjectReader.java:860)
> at org.jboss.resteasy.plugins.providers.jackson.ResteasyJackson2Provider.
> readFrom(ResteasyJackson2Provider.java:121)
> at org.jboss.resteasy.core.interception.AbstractReaderInterceptorConte
> xt.readFrom(AbstractReaderInterceptorContext.java:61)
> at org.jboss.resteasy.core.interception.ServerReaderInterceptorContext
> .readFrom(ServerReaderInterceptorContext.java:60)
> at org.jboss.resteasy.core.interception.AbstractReaderInterceptorConte
> xt.proceed(AbstractReaderInterceptorContext.java:53)
> at org.jboss.resteasy.security.doseta.DigitalVerificationInterceptor
> .aroundReadFrom(DigitalVerificationInterceptor.java:34)
> at org.jboss.resteasy.core.interception.AbstractReaderInterceptorConte
> xt.proceed(AbstractReaderInterceptorContext.java:55)
> at org.jboss.resteasy.plugins.interceptors.encoding.
> GZIPDecodingInterceptor.aroundReadFrom(GZIPDecodingInterceptor.java:59)
> at org.jboss.resteasy.core.interception.AbstractReaderInterceptorConte
> xt.proceed(AbstractReaderInterceptorContext.java:55)
> at org.jboss.resteasy.core.MessageBodyParameterInjector.inject(
> MessageBodyParameterInjector.java:151)
> ... 48 more
>
>
>
> 2016-11-03 19:22 GMT+01:00 Thomas Darimont <thomas.darimont at googlemail.com
> >:
>
>> ... FYI this is with keycloak-2.3.0.Final
>>
>> 2016-11-03 19:18 GMT+01:00 Thomas Darimont <thomas.darimont at googlemail.co
>> m>:
>>
>>> Hello,
>>>
>>> I could reproduce this with the "user-storage-jpa-example" from
>>> examples/provider in the keycloak repository.
>>>
>>> I installed the provider via: mvn clean install wildfly:deploy
>>> Then I created a new provider instance for "example-user-storage-jpa" in
>>> the admin-console / User Federation
>>>
>>> In the create screen the "priority" field is populated with "0". After
>>> saving the priority field is empty.
>>> If one now tries to set a priority one sees an error message: *Error!* An
>>> unexpected server error has occurred
>>>
>>> The server console now shows the stacktrace mentioned by Niko.
>>>
>>> Cheers,
>>> Thomas
>>>
>>> 2016-11-03 18:21 GMT+01:00 Bill Burke <bburke at redhat.com>:
>>>
>>>> Ok, can you clarify how to reproduce this problem?  Are you creating
>>>> storage providers through the rest interface?  Or does this problem surface
>>>> through the admin console?
>>>>
>>>> On 11/3/16 11:49 AM, Thomas Darimont wrote:
>>>>
>>>> Hello,
>>>>
>>>> I'm facing the same problem - could you point me to the commit that
>>>> fixed this in master?
>>>>
>>>> Cheers,
>>>> Thomas
>>>>
>>>> 2016-11-01 15:17 GMT+01:00 Bill Burke <bburke at redhat.com>:
>>>>
>>>>> Its an admin console issue.  I think I fixed it in master, but I 'll
>>>>> double check.
>>>>>
>>>>>
>>>>> On 11/1/16 3:35 AM, Niko Köbler wrote:
>>>>> > Hi,
>>>>> >
>>>>> > I just tested and investigated a bit more…
>>>>> >
>>>>> > When saving a UserStorageProvider, the „priority“ value is sent
>>>>> within the config object:
>>>>> > {
>>>>> >    "id": "320db9e2-6c40-4eb5-868e-95717be36fce",
>>>>> >    "name": "my-user-storage",
>>>>> >    "providerId": "my-user-storage",
>>>>> >    "providerType": "org.keycloak.storage.UserStorageProvider",
>>>>> >    "parentId": "demo",
>>>>> >    "config": {
>>>>> >      "baseUrl": [
>>>>> >        "http://localhost:9000"
>>>>> >      ],
>>>>> >      "basicAuthUsername": [
>>>>> >        "admin"
>>>>> >      ],
>>>>> >      "basicAuthPassword": [
>>>>> >        "secret"
>>>>> >      ],
>>>>> >      "priority": {
>>>>> >        "0": "1"
>>>>> >      }
>>>>> >    }
>>>>> > }
>>>>> >
>>>>> > In contrast to a UserFederationProvider, where the „priority“ value
>>>>> is sent as part of the root object, not in the nested config object.
>>>>> >
>>>>> > When adding a „priority“ config property in my UserStorageProvider,
>>>>> it works, but it looks strange in the Admin console, as there are now 2
>>>>> priority fields… but it works.
>>>>> >
>>>>> > Additionally, this error with the priority value leads to some JS
>>>>> error messages in the browser console when working with the Admin console.
>>>>> These are also gone when using an own „priority“ config property.
>>>>> >
>>>>> > I’d appreciate any feedback on this, if this is an error or whatever…
>>>>> > Thanks!
>>>>> >
>>>>> > Regards,
>>>>> > - Niko
>>>>> >
>>>>> >
>>>>> >
>>>>> >> Am 31.10.2016 um 16:15 schrieb Niko Köbler <niko at n-k.de>:
>>>>> >>
>>>>> >> Hi,
>>>>> >>
>>>>> >> I just implemented the User Storage SPI as replacement for our User
>>>>> Federation SPI.
>>>>> >>
>>>>> >> Creating the User-Storage Provider works w/o errors, but not
>>>>> Priority value will be saved.
>>>>> >> When updating the Provider with a value for Priority, it will fail
>>>>> with an exception (see below), updating the Provider without setting a
>>>>> value for Priority works.
>>>>> >>
>>>>> >> Do I have to implement/configure something special to get it work?
>>>>> >> I based my implementation on the user-storage-jpa-example, provided
>>>>> with Keycloak.
>>>>> >> Or is it a general error? Should a create a Jira issue for it?
>>>>> >>
>>>>> >>
>>>>> >> The exception/stack trace:
>>>>> >> 16:03:14,392 ERROR [org.jboss.resteasy.resteasy_jaxrs.i18n]
>>>>> (default task-31) RESTEASY002005: Failed executing PUT
>>>>> /admin/realms/connect/components/320db9e2-6c40-4eb5-868e-95717be36fce:
>>>>> org.jboss.resteasy.spi.ReaderException: com.fasterxml.jackson.databind.JsonMappingException:
>>>>> Can not deserialize instance of java.util.ArrayList out of START_OBJECT
>>>>> token
>>>>> >> at [Source: io.undertow.servlet.spec.Servl
>>>>> etInputStreamImpl at 1a486a1f; line: 1, column: 387] (through reference
>>>>> chain: org.keycloak.representations.idm.ComponentRepresentation["co
>>>>> nfig"]->org.keycloak.common.util.MultivaluedHashMap["priority"])
>>>>> >>              at org.jboss.resteasy.core.Messag
>>>>> eBodyParameterInjector.inject(MessageBodyParameterInjector.java:184)
>>>>> >>              at org.jboss.resteasy.core.Method
>>>>> InjectorImpl.injectArguments(MethodInjectorImpl.java:91)
>>>>> >>              at org.jboss.resteasy.core.Method
>>>>> InjectorImpl.invoke(MethodInjectorImpl.java:114)
>>>>> >>              at org.jboss.resteasy.core.Resour
>>>>> ceMethodInvoker.invokeOnTarget(ResourceMethodInvoker.java:295)
>>>>> >>              at org.jboss.resteasy.core.Resour
>>>>> ceMethodInvoker.invoke(ResourceMethodInvoker.java:249)
>>>>> >>              at org.jboss.resteasy.core.Resour
>>>>> ceLocatorInvoker.invokeOnTargetObject(ResourceLocatorInvoker.java:138)
>>>>> >>              at org.jboss.resteasy.core.Resour
>>>>> ceLocatorInvoker.invoke(ResourceLocatorInvoker.java:107)
>>>>> >>              at org.jboss.resteasy.core.Resour
>>>>> ceLocatorInvoker.invokeOnTargetObject(ResourceLocatorInvoker.java:133)
>>>>> >>              at org.jboss.resteasy.core.Resour
>>>>> ceLocatorInvoker.invoke(ResourceLocatorInvoker.java:107)
>>>>> >>              at org.jboss.resteasy.core.Resour
>>>>> ceLocatorInvoker.invokeOnTargetObject(ResourceLocatorInvoker.java:133)
>>>>> >>              at org.jboss.resteasy.core.Resour
>>>>> ceLocatorInvoker.invoke(ResourceLocatorInvoker.java:101)
>>>>> >>              at org.jboss.resteasy.core.Synchr
>>>>> onousDispatcher.invoke(SynchronousDispatcher.java:395)
>>>>> >>              at org.jboss.resteasy.core.Synchr
>>>>> onousDispatcher.invoke(SynchronousDispatcher.java:202)
>>>>> >>              at org.jboss.resteasy.plugins.ser
>>>>> ver.servlet.ServletContainerDispatcher.service(ServletContai
>>>>> nerDispatcher.java:221)
>>>>> >>              at org.jboss.resteasy.plugins.ser
>>>>> ver.servlet.HttpServletDispatcher.service(HttpServletDispatc
>>>>> her.java:56)
>>>>> >>              at org.jboss.resteasy.plugins.ser
>>>>> ver.servlet.HttpServletDispatcher.service(HttpServletDispatc
>>>>> her.java:51)
>>>>> >>              at javax.servlet.http.HttpServlet
>>>>> .service(HttpServlet.java:790)
>>>>> >>              at io.undertow.servlet.handlers.S
>>>>> ervletHandler.handleRequest(ServletHandler.java:85)
>>>>> >>              at io.undertow.servlet.handlers.F
>>>>> ilterHandler$FilterChainImpl.doFilter(FilterHandler.java:129)
>>>>> >>              at org.keycloak.services.filters.
>>>>> KeycloakSessionServletFilter.doFilter(KeycloakSessionServlet
>>>>> Filter.java:90)
>>>>> >>              at io.undertow.servlet.core.Manag
>>>>> edFilter.doFilter(ManagedFilter.java:60)
>>>>> >>              at io.undertow.servlet.handlers.F
>>>>> ilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
>>>>> >>              at io.undertow.servlet.handlers.F
>>>>> ilterHandler.handleRequest(FilterHandler.java:84)
>>>>> >>              at io.undertow.servlet.handlers.s
>>>>> ecurity.ServletSecurityRoleHandler.handleRequest(ServletSecu
>>>>> rityRoleHandler.java:62)
>>>>> >>              at io.undertow.servlet.handlers.S
>>>>> ervletDispatchingHandler.handleRequest(ServletDispatchingHan
>>>>> dler.java:36)
>>>>> >>              at org.wildfly.extension.undertow
>>>>> .security.SecurityContextAssociationHandler.handleRequest(Se
>>>>> curityContextAssociationHandler.java:78)
>>>>> >>              at io.undertow.server.handlers.Pr
>>>>> edicateHandler.handleRequest(PredicateHandler.java:43)
>>>>> >>              at io.undertow.servlet.handlers.s
>>>>> ecurity.SSLInformationAssociationHandler.handleRequest(SSLIn
>>>>> formationAssociationHandler.java:131)
>>>>> >>              at io.undertow.servlet.handlers.s
>>>>> ecurity.ServletAuthenticationCallHandler.handleRequest(Servl
>>>>> etAuthenticationCallHandler.java:57)
>>>>> >>              at io.undertow.server.handlers.Pr
>>>>> edicateHandler.handleRequest(PredicateHandler.java:43)
>>>>> >>              at io.undertow.security.handlers.
>>>>> AbstractConfidentialityHandler.handleRequest(AbstractConfide
>>>>> ntialityHandler.java:46)
>>>>> >>              at io.undertow.servlet.handlers.s
>>>>> ecurity.ServletConfidentialityConstraintHandler.handleReques
>>>>> t(ServletConfidentialityConstraintHandler.java:64)
>>>>> >>              at io.undertow.security.handlers.
>>>>> AuthenticationMechanismsHandler.handleRequest(Authentication
>>>>> MechanismsHandler.java:60)
>>>>> >>              at io.undertow.servlet.handlers.s
>>>>> ecurity.CachedAuthenticatedSessionHandler.handleRequest(Cach
>>>>> edAuthenticatedSessionHandler.java:77)
>>>>> >>              at io.undertow.security.handlers.
>>>>> NotificationReceiverHandler.handleRequest(NotificationReceiv
>>>>> erHandler.java:50)
>>>>> >>              at io.undertow.security.handlers.
>>>>> AbstractSecurityContextAssociationHandler.handleRequest(Abst
>>>>> ractSecurityContextAssociationHandler.java:43)
>>>>> >>              at io.undertow.server.handlers.Pr
>>>>> edicateHandler.handleRequest(PredicateHandler.java:43)
>>>>> >>              at org.wildfly.extension.undertow
>>>>> .security.jacc.JACCContextIdHandler.handleRequest(JACCContex
>>>>> tIdHandler.java:61)
>>>>> >>              at io.undertow.server.handlers.Pr
>>>>> edicateHandler.handleRequest(PredicateHandler.java:43)
>>>>> >>              at io.undertow.server.handlers.Pr
>>>>> edicateHandler.handleRequest(PredicateHandler.java:43)
>>>>> >>              at io.undertow.servlet.handlers.S
>>>>> ervletInitialHandler.handleFirstRequest(ServletInitialHandle
>>>>> r.java:284)
>>>>> >>              at io.undertow.servlet.handlers.S
>>>>> ervletInitialHandler.dispatchRequest(ServletInitialHandler.java:263)
>>>>> >>              at io.undertow.servlet.handlers.S
>>>>> ervletInitialHandler.access$000(ServletInitialHandler.java:81)
>>>>> >>              at io.undertow.servlet.handlers.S
>>>>> ervletInitialHandler$1.handleRequest(ServletInitialHandler.java:174)
>>>>> >>              at io.undertow.server.Connectors.
>>>>> executeRootHandler(Connectors.java:202)
>>>>> >>              at io.undertow.server.HttpServerE
>>>>> xchange$1.run(HttpServerExchange.java:793)
>>>>> >>              at java.util.concurrent.ThreadPoo
>>>>> lExecutor.runWorker(ThreadPoolExecutor.java:1142)
>>>>> >>              at java.util.concurrent.ThreadPoo
>>>>> lExecutor$Worker.run(ThreadPoolExecutor.java:617)
>>>>> >>              at java.lang.Thread.run(Thread.java:745)
>>>>> >> Caused by: com.fasterxml.jackson.databind.JsonMappingException:
>>>>> Can not deserialize instance of java.util.ArrayList out of START_OBJECT
>>>>> token
>>>>> >> at [Source: io.undertow.servlet.spec.Servl
>>>>> etInputStreamImpl at 1a486a1f; line: 1, column: 387] (through reference
>>>>> chain: org.keycloak.representations.idm.ComponentRepresentation["co
>>>>> nfig"]->org.keycloak.common.util.MultivaluedHashMap["priority"])
>>>>> >>              at com.fasterxml.jackson.databind
>>>>> .JsonMappingException.from(JsonMappingException.java:148)
>>>>> >>              at com.fasterxml.jackson.databind
>>>>> .DeserializationContext.mappingException(DeserializationCont
>>>>> ext.java:835)
>>>>> >>              at com.fasterxml.jackson.databind
>>>>> .DeserializationContext.mappingException(DeserializationCont
>>>>> ext.java:831)
>>>>> >>              at com.fasterxml.jackson.databind
>>>>> .deser.std.StringCollectionDeserializer.handleNonArray(Strin
>>>>> gCollectionDeserializer.java:240)
>>>>> >>              at com.fasterxml.jackson.databind
>>>>> .deser.std.StringCollectionDeserializer.deserialize(StringCo
>>>>> llectionDeserializer.java:171)
>>>>> >>              at com.fasterxml.jackson.databind
>>>>> .deser.std.StringCollectionDeserializer.deserialize(StringCo
>>>>> llectionDeserializer.java:161)
>>>>> >>              at com.fasterxml.jackson.databind
>>>>> .deser.std.StringCollectionDeserializer.deserialize(StringCo
>>>>> llectionDeserializer.java:19)
>>>>> >>              at com.fasterxml.jackson.databind
>>>>> .deser.std.MapDeserializer._readAndBindStringMap(MapDeserial
>>>>> izer.java:485)
>>>>> >>              at com.fasterxml.jackson.databind
>>>>> .deser.std.MapDeserializer.deserialize(MapDeserializer.java:342)
>>>>> >>              at com.fasterxml.jackson.databind
>>>>> .deser.std.MapDeserializer.deserialize(MapDeserializer.java:26)
>>>>> >>              at com.fasterxml.jackson.databind.
>>>>> deser.SettableBeanProperty.deserialize(SettableBeanProperty.java:523)
>>>>> >>              at com.fasterxml.jackson.databind
>>>>> .deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:95)
>>>>> >>              at com.fasterxml.jackson.databind.
>>>>> deser.impl.BeanPropertyMap.findDeserializeAndSet(BeanProper
>>>>> tyMap.java:285)
>>>>> >>              at com.fasterxml.jackson.databind
>>>>> .deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:248)
>>>>> >>              at com.fasterxml.jackson.databind
>>>>> .deser.BeanDeserializer.deserialize(BeanDeserializer.java:136)
>>>>> >>              at com.fasterxml.jackson.databind
>>>>> .ObjectReader._bind(ObjectReader.java:1410)
>>>>> >>              at com.fasterxml.jackson.databind
>>>>> .ObjectReader.readValue(ObjectReader.java:860)
>>>>> >>              at org.jboss.resteasy.plugins.pro
>>>>> viders.jackson.ResteasyJackson2Provider.readFrom(ResteasyJac
>>>>> kson2Provider.java:121)
>>>>> >>              at org.jboss.resteasy.core.interc
>>>>> eption.AbstractReaderInterceptorContext.readFrom(AbstractRea
>>>>> derInterceptorContext.java:61)
>>>>> >>              at org.jboss.resteasy.core.interc
>>>>> eption.ServerReaderInterceptorContext.readFrom(ServerReaderI
>>>>> nterceptorContext.java:60)
>>>>> >>              at org.jboss.resteasy.core.interc
>>>>> eption.AbstractReaderInterceptorContext.proceed(AbstractRead
>>>>> erInterceptorContext.java:53)
>>>>> >>              at org.jboss.resteasy.security.do
>>>>> seta.DigitalVerificationInterceptor.aroundReadFrom(DigitalVe
>>>>> rificationInterceptor.java:34)
>>>>> >>              at org.jboss.resteasy.core.interc
>>>>> eption.AbstractReaderInterceptorContext.proceed(AbstractRead
>>>>> erInterceptorContext.java:55)
>>>>> >>              at org.jboss.resteasy.plugins.int
>>>>> erceptors.encoding.GZIPDecodingInterceptor.aroundReadFrom(GZ
>>>>> IPDecodingInterceptor.java:59)
>>>>> >>              at org.jboss.resteasy.core.interc
>>>>> eption.AbstractReaderInterceptorContext.proceed(AbstractRead
>>>>> erInterceptorContext.java:55)
>>>>> >>              at org.jboss.resteasy.core.Messag
>>>>> eBodyParameterInjector.inject(MessageBodyParameterInjector.java:151)
>>>>> >>              ... 48 more
>>>>> >>
>>>>> >>
>>>>> >> Regards,
>>>>> >> - Niko
>>>>> >>
>>>>> >>
>>>>> >> _______________________________________________
>>>>> >> keycloak-user mailing list
>>>>> >> keycloak-user at lists.jboss.org
>>>>> >> https://lists.jboss.org/mailman/listinfo/keycloak-user
>>>>> >
>>>>> > _______________________________________________
>>>>> > keycloak-user mailing list
>>>>> > keycloak-user at lists.jboss.org
>>>>> > https://lists.jboss.org/mailman/listinfo/keycloak-user
>>>>>
>>>>> _______________________________________________
>>>>> keycloak-user mailing list
>>>>> keycloak-user at lists.jboss.org
>>>>> https://lists.jboss.org/mailman/listinfo/keycloak-user
>>>>>
>>>>
>>>>
>>>>
>>>
>>
>


More information about the keycloak-user mailing list