[keycloak-user] MongoDB - Model provider not found
Marek Posolda
mposolda at redhat.com
Wed May 21 05:54:46 EDT 2014
Hi Davide,
Right now, mongo model should be fixed and work without issues on KC master.
Marek
On 21.5.2014 00:14, Marek Posolda wrote:
> 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>
>> > > > >
>> > > > >
>> > > > >
>> > > >
>> > >
>> >
>>
>>
>
>
>
> _______________________________________________
> keycloak-user mailing list
> keycloak-user at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/keycloak-user
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/keycloak-user/attachments/20140521/9801a21a/attachment-0001.html
More information about the keycloak-user
mailing list