[keycloak-user] MongoDB - Model provider not found
Marek Posolda
mposolda at redhat.com
Tue May 20 18:14:58 EDT 2014
i've looked at this one and have it fixed in branch
https://github.com/mposolda/keycloak/ . Feel free to give it try if you
are impatient, but still it seems that there are some more issues with
mongo model (few integration tests are still failing). I will send PR to
master tomorrow morning with mongo model fully working.
Marek
On 20.5.2014 22:18, Davide Ungari wrote:
> 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
> <mailto: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
> <mailto:ungarida at gmail.com>>
> > To: "Stian Thorgersen" <stian at redhat.com <mailto:stian at redhat.com>>
> > Cc: "Marek Posolda" <mposolda at redhat.com
> <mailto:mposolda at redhat.com>>, keycloak-user at lists.jboss.org
> <mailto: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 <mailto: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
> <mailto:ungarida at gmail.com>>
> > > > To: "Marek Posolda" <mposolda at redhat.com
> <mailto:mposolda at redhat.com>>
> > > > Cc: "Stian Thorgersen" <stian at redhat.com
> <mailto:stian at redhat.com>>, keycloak-user at lists.jboss.org
> <mailto: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 <mailto: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 <mailto: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
> <mailto:ungarida at gmail.com>>
> > > > >> > To: keycloak-user at lists.jboss.org
> <mailto: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
> <mailto: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
> <http://lists.jboss.org/mailman/listinfo/keycloak-user>
> > > > >
> > > > >
> > > > >
> > > >
> > >
> >
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/keycloak-user/attachments/20140521/a26de59f/attachment-0001.html
More information about the keycloak-user
mailing list