[keycloak-user] MongoDB - Model provider not found

Davide Ungari ungarida at gmail.com
Tue May 20 16:18:22 EDT 2014


Following your instruction he application startup is fine.
Now after login I have another exception that involves Mongo :

22:15:21,616 ERROR [io.undertow.request] (default task-3) UT005023:
Exception handling request to
/auth/realms/keycloak-admin/tokens/access/codes:
org.jboss.resteasy.spi.UnhandledException:
java.lang.IllegalArgumentException: Can't found converter for type class
org.keycloak.models.mongo.keycloak.entities.MongoClientUserSessionAssociationEntity
in registered appObjectMappers
at
org.jboss.resteasy.core.ExceptionHandler.handleApplicationException(ExceptionHandler.java:76)
[resteasy-jaxrs-3.0.6.Final.jar:]
at
org.jboss.resteasy.core.ExceptionHandler.handleException(ExceptionHandler.java:212)
[resteasy-jaxrs-3.0.6.Final.jar:]
at
org.jboss.resteasy.core.SynchronousDispatcher.writeException(SynchronousDispatcher.java:149)
[resteasy-jaxrs-3.0.6.Final.jar:]
at
org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:372)
[resteasy-jaxrs-3.0.6.Final.jar:]
at
org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:179)
[resteasy-jaxrs-3.0.6.Final.jar:]
at
org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:220)
[resteasy-jaxrs-3.0.6.Final.jar:]
at
org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:56)
[resteasy-jaxrs-3.0.6.Final.jar:]
at
org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:51)
[resteasy-jaxrs-3.0.6.Final.jar:]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
[jboss-servlet-api_3.1_spec-1.0.0.Final.jar:1.0.0.Final]
at
io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:85)
[undertow-servlet-1.0.0.Final.jar:1.0.0.Final]
at
io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:130)
[undertow-servlet-1.0.0.Final.jar:1.0.0.Final]
at
org.keycloak.services.filters.ClientConnectionFilter.doFilter(ClientConnectionFilter.java:41)
[keycloak-services-1.0-beta-1-SNAPSHOT.jar:]
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:56)
[undertow-servlet-1.0.0.Final.jar:1.0.0.Final]
at
io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:132)
[undertow-servlet-1.0.0.Final.jar:1.0.0.Final]
at
org.keycloak.services.filters.KeycloakSessionServletFilter.doFilter(KeycloakSessionServletFilter.java:41)
[keycloak-services-1.0-beta-1-SNAPSHOT.jar:]
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:56)
[undertow-servlet-1.0.0.Final.jar:1.0.0.Final]
at
io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:132)
[undertow-servlet-1.0.0.Final.jar:1.0.0.Final]
at
io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:85)
[undertow-servlet-1.0.0.Final.jar:1.0.0.Final]
at
io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:61)
[undertow-servlet-1.0.0.Final.jar:1.0.0.Final]
at
io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
[undertow-servlet-1.0.0.Final.jar:1.0.0.Final]
at
org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:78)
at
io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:25)
[undertow-core-1.0.0.Final.jar:1.0.0.Final]
at
io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:113)
[undertow-servlet-1.0.0.Final.jar:1.0.0.Final]
at
io.undertow.security.handlers.AuthenticationCallHandler.handleRequest(AuthenticationCallHandler.java:52)
[undertow-core-1.0.0.Final.jar:1.0.0.Final]
at
io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:45)
[undertow-core-1.0.0.Final.jar:1.0.0.Final]
at
io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:61)
[undertow-servlet-1.0.0.Final.jar:1.0.0.Final]
at
io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:70)
[undertow-servlet-1.0.0.Final.jar:1.0.0.Final]
at
io.undertow.security.handlers.SecurityInitialHandler.handleRequest(SecurityInitialHandler.java:76)
[undertow-core-1.0.0.Final.jar:1.0.0.Final]
at
io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:25)
[undertow-core-1.0.0.Final.jar:1.0.0.Final]
at
org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61)
at
io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:25)
[undertow-core-1.0.0.Final.jar:1.0.0.Final]
at
io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:25)
[undertow-core-1.0.0.Final.jar:1.0.0.Final]
at
io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:240)
[undertow-servlet-1.0.0.Final.jar:1.0.0.Final]
at
io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:227)
[undertow-servlet-1.0.0.Final.jar:1.0.0.Final]
at
io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:73)
[undertow-servlet-1.0.0.Final.jar:1.0.0.Final]
at
io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:146)
[undertow-servlet-1.0.0.Final.jar:1.0.0.Final]
at io.undertow.server.Connectors.executeRootHandler(Connectors.java:168)
[undertow-core-1.0.0.Final.jar:1.0.0.Final]
at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:687)
[undertow-core-1.0.0.Final.jar:1.0.0.Final]
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
[rt.jar:1.7.0_51]
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
[rt.jar:1.7.0_51]
at java.lang.Thread.run(Thread.java:744) [rt.jar:1.7.0_51]
Caused by: java.lang.IllegalArgumentException: Can't found converter for
type class
org.keycloak.models.mongo.keycloak.entities.MongoClientUserSessionAssociationEntity
in registered appObjectMappers
at
org.keycloak.models.mongo.api.types.MapperRegistry.convertApplicationObjectToDBObject(MapperRegistry.java:80)
[keycloak-model-mongo-1.0-beta-1-SNAPSHOT.jar:]
at
org.keycloak.models.mongo.impl.MongoStoreImpl.insertEntity(MongoStoreImpl.java:171)
[keycloak-model-mongo-1.0-beta-1-SNAPSHOT.jar:]
at
org.keycloak.models.mongo.keycloak.adapters.UserSessionAdapter.associateClient(UserSessionAdapter.java:102)
[keycloak-model-mongo-1.0-beta-1-SNAPSHOT.jar:]
at
org.keycloak.services.resources.TokenService.accessCodeToToken(TokenService.java:656)
[keycloak-services-1.0-beta-1-SNAPSHOT.jar:]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[rt.jar:1.7.0_51]
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
[rt.jar:1.7.0_51]
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[rt.jar:1.7.0_51]
at java.lang.reflect.Method.invoke(Method.java:606) [rt.jar:1.7.0_51]
at
org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:137)
[resteasy-jaxrs-3.0.6.Final.jar:]
at
org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTarget(ResourceMethodInvoker.java:280)
[resteasy-jaxrs-3.0.6.Final.jar:]
at
org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:234)
[resteasy-jaxrs-3.0.6.Final.jar:]
at
org.jboss.resteasy.core.ResourceLocatorInvoker.invokeOnTargetObject(ResourceLocatorInvoker.java:140)
[resteasy-jaxrs-3.0.6.Final.jar:]
at
org.jboss.resteasy.core.ResourceLocatorInvoker.invoke(ResourceLocatorInvoker.java:103)
[resteasy-jaxrs-3.0.6.Final.jar:]
at
org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:356)
[resteasy-jaxrs-3.0.6.Final.jar:]
... 37 more


--
Davide


On Tue, May 20, 2014 at 11:52 AM, Stian Thorgersen <stian at redhat.com> wrote:

> You need to edit:
>
>
> standalone/deployments/auth-server.war/WEB-INF/classes/META-INF/keycloak-server.json
>
> For mongo replace "model" and "audit" with:
>
>     "audit": {
>         "provider": "mongo",
>         "mongo": {
>             "host": "<hostname>",
>             "port": <port>,
>             "user": <user>,
>             "password": <password>
>         }
>     },
>
>     "model": {
>         "provider": "mongo"
>         "mongo": {
>             "host": "<hostname>",
>             "port": <port>,
>             "user": <user>,
>             "password": <password>
>         }
>     }
>
> "host" and "port" are optional if not specified "localhost" and 27017 will
> be used. "user" and "password" are optional as well, these are only
> required if you've enabled authentication for your mongo db. You can also
> change the db name by adding "db".
>
> ----- Original Message -----
> > From: "Davide Ungari" <ungarida at gmail.com>
> > To: "Stian Thorgersen" <stian at redhat.com>
> > Cc: "Marek Posolda" <mposolda at redhat.com>, keycloak-user at lists.jboss.org
> > Sent: Tuesday, 20 May, 2014 10:38:41 AM
> > Subject: Re: [keycloak-user] MongoDB - Model provider not found
> >
> > Hi Stian,
> > I'm aligned to master.
> > Could you show me the class I must read to understand how to configure
> it?
> >
> > --
> > Davide
> >
> >
> > On Tue, May 20, 2014 at 10:45 AM, Stian Thorgersen <stian at redhat.com>
> wrote:
> >
> > > In master this has recently changed and is now configured in a config
> file
> > > instead of through system properties. The documentation will be
> updated in
> > > due time.
> > >
> > > ----- Original Message -----
> > > > From: "Davide Ungari" <ungarida at gmail.com>
> > > > To: "Marek Posolda" <mposolda at redhat.com>
> > > > Cc: "Stian Thorgersen" <stian at redhat.com>,
> keycloak-user at lists.jboss.org
> > > > Sent: Tuesday, 20 May, 2014 8:17:52 AM
> > > > Subject: Re: [keycloak-user] MongoDB - Model provider not found
> > > >
> > > > Hi Marek,
> > > > thanks for your answer.
> > > >
> > > > You could add a paragraph in documentation page
> > > >
> > >
> http://docs.jboss.org/keycloak/docs/1.0-alpha-3/userguide/html_single/index.html#d4e167
> > > > about
> > > > this.
> > > >
> > > >
> > > > --
> > > > Davide
> > > >
> > > >
> > > > On Mon, May 19, 2014 at 10:38 PM, Marek Posolda <mposolda at redhat.com
> >
> > > wrote:
> > > >
> > > > >  Hi,
> > > > >
> > > > > I guess you removed persistence.xml from auth-server.war right? In
> > > newest
> > > > > version, persistence.xml contains configuration of model-api, but
> also
> > > for
> > > > > audit-api . Default implementation of audit-api is based on JPA and
> > > needs
> > > > > persistence.xml .
> > > > >
> > > > > Thing is that default implementation of audit-api is always based
> on
> > > JPA
> > > > > even if you changed your model implementation to "mongo". My
> opinion
> > > is,
> > > > > that we should change this behaviour. So default implementation of
> > > > > audit-api will be same like the chosen implementation of
> model-api. So
> > > if
> > > > > someone (like you) changed the implementation of model to be based
> on
> > > > > mongo, the audit-api will automatically use mongo as well. I will
> > > discuss
> > > > > with guys about this tomorrow.
> > > > >
> > > > > Until this is done, I think that easiest solution for you is to
> > > manually
> > > > > switch audit-api to use mongo as well. So in addition to property
> > > > > "-Dkeycloak.model=mongo" you also need to add property
> > > > > "-Dkeycloak.audit=mongo" .
> > > > >
> > > > > Marek
> > > > >
> > > > >
> > > > > On 16.5.2014 22:20, Davide Ungari wrote:
> > > > >
> > > > > Hi Stian,
> > > > > I think the problem was that I was running "mvn package" inside
> > > > > /keycloak/distribuition instead it works if your run it from root
> > > > > directory.
> > > > >
> > > > >  I have all the jars, model-mongo included, but the application
> fails
> > > at
> > > > > startup with error message "No Persistence provider for
> EntityManager
> > > named
> > > > > jpa-keycloak-audit-store\". What am I doing wrong this time?
> > > > >
> > > > >  If you need I'm free to test the import process as you do it.
> > > > >
> > > > >  Thanks.
> > > > >
> > > > >  --
> > > > > Davide
> > > > >
> > > > >
> > > > > On Thu, May 15, 2014 at 10:31 AM, Stian Thorgersen <
> stian at redhat.com
> > > >wrote:
> > > > >
> > > > >> I'm not sure why the mongo model has been removed from the WAR,
> I'll
> > > look
> > > > >> into that.
> > > > >> "jpa-keycloak-identity-store"
> > > > >>
> > > > >> We don't yet have support for upgrading the database when
> upgrading
> > > > >> Keycloak. This will be added soon. The plan is to provide a
> mechanism
> > > to
> > > > >> export the database to a json file, and after installing a new
> > > version of
> > > > >> Keycloak you import this json file again. We'll make this import
> > > backwards
> > > > >> compatible so you can import a json file from any older versions
> of
> > > > >> Keycloak.
> > > > >>
> > > > >> ----- Original Message -----
> > > > >> > From: "Davide Ungari" <ungarida at gmail.com>
> > > > >> > To: keycloak-user at lists.jboss.org
> > > > >> > Sent: Monday, 12 May, 2014 7:13:53 PM
> > > > >> > Subject: Re: [keycloak-user] MongoDB - Model provider not found
> > > > >> >
> > > > >> > I found out that:
> > > > >> > 1- the command "mvn package" does not include mongo module and
> > > driver
> > > > >> > 2- there is a regression on data model, updating source of
> keycloak
> > > I
> > > > >> must
> > > > >> > drop database in order to see the admin console works again
> > > > >> > --
> > > > >> > Davide
> > > > >> >
> > > > >>  > _______________________________________________
> > > > >> > keycloak-user mailing list
> > > > >> > keycloak-user at lists.jboss.org
> > > > >> > https://lists.jboss.org/mailman/listinfo/keycloak-user
> > > > >>
> > > > >
> > > > >
> > > > >
> > > > > _______________________________________________
> > > > > keycloak-user mailing
> > > > > listkeycloak-user at lists.jboss.orghttps://
> > > lists.jboss.org/mailman/listinfo/keycloak-user
> > > > >
> > > > >
> > > > >
> > > >
> > >
> >
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/keycloak-user/attachments/20140520/4fc70c34/attachment-0001.html 


More information about the keycloak-user mailing list