suchorski / springboot-keycloak-server

Embeded Keycloak on Spring Boot Server
Apache License 2.0
26 stars 12 forks source link

Got problem with try with version 19 #1

Closed tuanloc1105 closed 1 year ago

tuanloc1105 commented 1 year ago

Hi suchorski,

Just find out your repository work with newer Keycloak version. But I got some problem when I try configuring the Keycloak version 19.0.0.

Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
2022-11-21 10:41:59.284 ERROR 21708 --- [           main] o.s.boot.SpringApplication               : Application run failed

org.springframework.context.ApplicationContextException: Failed to start bean 'webServerStartStop'; nested exception is org.springframework.boot.web.server.WebServerException: Unable to start embedded Tomcat server
    at org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:181) ~[spring-context-5.3.23.jar:5.3.23]
    at org.springframework.context.support.DefaultLifecycleProcessor.access$200(DefaultLifecycleProcessor.java:54) ~[spring-context-5.3.23.jar:5.3.23]
    at org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup.start(DefaultLifecycleProcessor.java:356) ~[spring-context-5.3.23.jar:5.3.23]
    at java.base/java.lang.Iterable.forEach(Iterable.java:75) ~[na:na]
    at org.springframework.context.support.DefaultLifecycleProcessor.startBeans(DefaultLifecycleProcessor.java:155) ~[spring-context-5.3.23.jar:5.3.23]
    at org.springframework.context.support.DefaultLifecycleProcessor.onRefresh(DefaultLifecycleProcessor.java:123) ~[spring-context-5.3.23.jar:5.3.23]
    at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:935) ~[spring-context-5.3.23.jar:5.3.23]
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:586) ~[spring-context-5.3.23.jar:5.3.23]
    at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:147) ~[spring-boot-2.7.5.jar:2.7.5]
    at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:734) ~[spring-boot-2.7.5.jar:2.7.5]
    at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:408) ~[spring-boot-2.7.5.jar:2.7.5]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:308) ~[spring-boot-2.7.5.jar:2.7.5]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1306) ~[spring-boot-2.7.5.jar:2.7.5]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1295) ~[spring-boot-2.7.5.jar:2.7.5]
    at com.suchorski.server.SpringbootKeycloakServerApplication.main(SpringbootKeycloakServerApplication.java:27) ~[classes/:na]
Caused by: org.springframework.boot.web.server.WebServerException: Unable to start embedded Tomcat server
    at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.start(TomcatWebServer.java:229) ~[spring-boot-2.7.5.jar:2.7.5]
    at org.springframework.boot.web.servlet.context.WebServerStartStopLifecycle.start(WebServerStartStopLifecycle.java:43) ~[spring-boot-2.7.5.jar:2.7.5]
    at org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:178) ~[spring-context-5.3.23.jar:5.3.23]
    ... 14 common frames omitted
Caused by: org.springframework.boot.web.server.WebServerException: Servlet [httpServlet30Dispatcher] in web application [] threw load() exception
    at org.springframework.boot.web.embedded.tomcat.TomcatEmbeddedContext.load(TomcatEmbeddedContext.java:86) ~[spring-boot-2.7.5.jar:2.7.5]
    at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183) ~[na:na]
    at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625) ~[na:na]
    at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762) ~[na:na]
    at java.base/java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:276) ~[na:na]
    at java.base/java.util.TreeMap$ValueSpliterator.forEachRemaining(TreeMap.java:3215) ~[na:na]
    at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) ~[na:na]
    at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) ~[na:na]
    at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150) ~[na:na]
    at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173) ~[na:na]
    at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[na:na]
    at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596) ~[na:na]
    at org.springframework.boot.web.embedded.tomcat.TomcatEmbeddedContext.lambda$deferredLoadOnStartup$0(TomcatEmbeddedContext.java:64) ~[spring-boot-2.7.5.jar:2.7.5]
    at org.springframework.boot.web.embedded.tomcat.TomcatEmbeddedContext.doWithThreadContextClassLoader(TomcatEmbeddedContext.java:105) ~[spring-boot-2.7.5.jar:2.7.5]
    at org.springframework.boot.web.embedded.tomcat.TomcatEmbeddedContext.deferredLoadOnStartup(TomcatEmbeddedContext.java:63) ~[spring-boot-2.7.5.jar:2.7.5]
    at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.performDeferredLoadOnStartup(TomcatWebServer.java:305) ~[spring-boot-2.7.5.jar:2.7.5]
    at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.start(TomcatWebServer.java:216) ~[spring-boot-2.7.5.jar:2.7.5]
    ... 16 common frames omitted
Caused by: javax.servlet.ServletException: Servlet.init() for servlet [httpServlet30Dispatcher] threw exception
    at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1181) ~[tomcat-embed-core-9.0.68.jar:9.0.68]
    at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1013) ~[tomcat-embed-core-9.0.68.jar:9.0.68]
    at org.springframework.boot.web.embedded.tomcat.TomcatEmbeddedContext.load(TomcatEmbeddedContext.java:81) ~[spring-boot-2.7.5.jar:2.7.5]
    ... 32 common frames omitted
Caused by: java.lang.RuntimeException: RESTEASY003325: Failed to construct public com.suchorski.server.keycloak.App()
    at org.jboss.resteasy.core.ConstructorInjectorImpl.constructOutsideRequest(ConstructorInjectorImpl.java:250) ~[resteasy-core-4.7.4.Final.jar:4.7.4.Final]
    at org.jboss.resteasy.core.ConstructorInjectorImpl.construct(ConstructorInjectorImpl.java:209) ~[resteasy-core-4.7.4.Final.jar:4.7.4.Final]
    at org.jboss.resteasy.core.providerfactory.Utils.createProviderInstance(Utils.java:102) ~[resteasy-core-4.7.4.Final.jar:4.7.4.Final]
    at org.jboss.resteasy.core.providerfactory.ResteasyProviderFactoryImpl.createProviderInstance(ResteasyProviderFactoryImpl.java:1385) ~[resteasy-core-4.7.4.Final.jar:4.7.4.Final]
    at org.jboss.resteasy.core.ResteasyDeploymentImpl.createApplication(ResteasyDeploymentImpl.java:418) ~[resteasy-core-4.7.4.Final.jar:4.7.4.Final]
    at org.jboss.resteasy.core.ResteasyDeploymentImpl.initializeObjects(ResteasyDeploymentImpl.java:265) ~[resteasy-core-4.7.4.Final.jar:4.7.4.Final]
    at org.jboss.resteasy.core.ResteasyDeploymentImpl.startInternal(ResteasyDeploymentImpl.java:137) ~[resteasy-core-4.7.4.Final.jar:4.7.4.Final]
    at org.jboss.resteasy.core.ResteasyDeploymentImpl.start(ResteasyDeploymentImpl.java:121) ~[resteasy-core-4.7.4.Final.jar:4.7.4.Final]
    at org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.init(ServletContainerDispatcher.java:144) ~[resteasy-core-4.7.4.Final.jar:4.7.4.Final]
    at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.init(HttpServletDispatcher.java:42) ~[resteasy-core-4.7.4.Final.jar:4.7.4.Final]
    at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1164) ~[tomcat-embed-core-9.0.68.jar:9.0.68]
    ... 34 common frames omitted
Caused by: java.lang.RuntimeException: java.util.ServiceConfigurationError: org.keycloak.authentication.FormActionFactory: org.keycloak.authentication.forms.RegistrationRecaptcha Unable to get public no-arg constructor
    at com.suchorski.server.keycloak.providers.SimplePlatformProvider.exit(SimplePlatformProvider.java:27) ~[classes/:na]
    at org.keycloak.services.resources.KeycloakApplication.<init>(KeycloakApplication.java:119) ~[keycloak-services-19.0.0.jar:19.0.0]
    at com.suchorski.server.keycloak.App.<init>(App.java:17) ~[classes/:na]
    at java.base/jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:67) ~[na:na]
    at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:500) ~[na:na]
    at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:484) ~[na:na]
    at org.jboss.resteasy.core.ConstructorInjectorImpl.constructOutsideRequest(ConstructorInjectorImpl.java:225) ~[resteasy-core-4.7.4.Final.jar:4.7.4.Final]
    ... 44 common frames omitted
Caused by: java.util.ServiceConfigurationError: org.keycloak.authentication.FormActionFactory: org.keycloak.authentication.forms.RegistrationRecaptcha Unable to get public no-arg constructor
    at java.base/java.util.ServiceLoader.fail(ServiceLoader.java:586) ~[na:na]
    at java.base/java.util.ServiceLoader.getConstructor(ServiceLoader.java:679) ~[na:na]
    at java.base/java.util.ServiceLoader$LazyClassPathLookupIterator.hasNextService(ServiceLoader.java:1240) ~[na:na]
    at java.base/java.util.ServiceLoader$LazyClassPathLookupIterator.hasNext(ServiceLoader.java:1273) ~[na:na]
    at java.base/java.util.ServiceLoader$2.hasNext(ServiceLoader.java:1309) ~[na:na]
    at java.base/java.util.ServiceLoader$3.hasNext(ServiceLoader.java:1393) ~[na:na]
    at org.keycloak.provider.DefaultProviderLoader.load(DefaultProviderLoader.java:60) ~[keycloak-services-19.0.0.jar:19.0.0]
    at org.keycloak.provider.ProviderManager.load(ProviderManager.java:94) ~[keycloak-services-19.0.0.jar:19.0.0]
    at org.keycloak.services.DefaultKeycloakSessionFactory.loadFactories(DefaultKeycloakSessionFactory.java:294) ~[keycloak-services-19.0.0.jar:19.0.0]
    at org.keycloak.services.DefaultKeycloakSessionFactory.init(DefaultKeycloakSessionFactory.java:106) ~[keycloak-services-19.0.0.jar:19.0.0]
    at org.keycloak.services.resources.KeycloakApplication.createSessionFactory(KeycloakApplication.java:232) ~[keycloak-services-19.0.0.jar:19.0.0]
    at org.keycloak.services.resources.KeycloakApplication.startup(KeycloakApplication.java:125) ~[keycloak-services-19.0.0.jar:19.0.0]
    at com.suchorski.server.keycloak.providers.SimplePlatformProvider.onStartup(SimplePlatformProvider.java:19) ~[classes/:na]
    at org.keycloak.services.resources.KeycloakApplication.<init>(KeycloakApplication.java:115) ~[keycloak-services-19.0.0.jar:19.0.0]
    ... 49 common frames omitted
Caused by: java.lang.NoClassDefFoundError: org/apache/http/HttpEntity
    at java.base/java.lang.Class.getDeclaredConstructors0(Native Method) ~[na:na]
    at java.base/java.lang.Class.privateGetDeclaredConstructors(Class.java:3429) ~[na:na]
    at java.base/java.lang.Class.getConstructor0(Class.java:3634) ~[na:na]
    at java.base/java.lang.Class.getConstructor(Class.java:2324) ~[na:na]
    at java.base/java.util.ServiceLoader$1.run(ServiceLoader.java:666) ~[na:na]
    at java.base/java.util.ServiceLoader$1.run(ServiceLoader.java:663) ~[na:na]
    at java.base/java.security.AccessController.doPrivileged(AccessController.java:569) ~[na:na]
    at java.base/java.util.ServiceLoader.getConstructor(ServiceLoader.java:674) ~[na:na]
    ... 61 common frames omitted
Caused by: java.lang.ClassNotFoundException: org.apache.http.HttpEntity
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641) ~[na:na]
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188) ~[na:na]
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521) ~[na:na]
    ... 69 common frames omitted

Process finished with exit code 1

Do you have any idea about this problem?

suchorski commented 1 year ago

Hello,

I had this same issue when trying to use this version. Why not to use the keycloak 20?

Perhaps trying to add to Maven this dependency

<dependency>
    <groupId>org.apache.httpcomponents</groupId>
    <artifactId>httpclient</artifactId>
    <version>4.3.4</version>
</dependency>
suchorski commented 1 year ago

This 19 version has vulnerabilities on jackson libs. I do recommend to update do Keycloak version 20

tuanloc1105 commented 1 year ago

I understand. So I will use version 20 instead of 19. Thank you very much.