zonaut / keycloak-extensions Goto Github PK
View Code? Open in Web Editor NEWKeycloak extensions
Keycloak extensions
I've generated the spi_event_listener with keycloak v12.0.1. and i couldn't find the "pl_event_listener" in the config option when added it to another keycloak instance that i have (keycloak v12.0.1).
Do i need to add anything to the standalone-ha.xml file?
I followed the steps to use the registration validation, but I got this error when the register page attempts to load:
keycloak_1 | 03:49:10,417 ERROR [org.keycloak.services.error.KeycloakErrorHandler] (default task-15) Uncaught server error: java.lang.NoClassDefFoundError: org/keycloak/services/validation/Validation
keycloak_1 | at deployment.spi-registration-profile.jar//com.zonaut.keycloak.extensions.actions.forms.PlaceholderRegistrationProfile.validate(PlaceholderRegistrationProfile.java:57)
keycloak_1 | at [email protected]//org.keycloak.authentication.FormAuthenticationFlow.processAction(FormAuthenticationFlow.java:213)
keycloak_1 | at [email protected]//org.keycloak.authentication.DefaultAuthenticationFlow.processAction(DefaultAuthenticationFlow.java:138)
keycloak_1 | at [email protected]//org.keycloak.authentication.AuthenticationProcessor.authenticationAction(AuthenticationProcessor.java:936)
keycloak_1 | at [email protected]//org.keycloak.services.resources.LoginActionsService.processFlow(LoginActionsService.java:311)
keycloak_1 | at [email protected]//org.keycloak.services.resources.LoginActionsService.processRegistration(LoginActionsService.java:649)
keycloak_1 | at [email protected]//org.keycloak.services.resources.LoginActionsService.registerRequest(LoginActionsService.java:705)
keycloak_1 | at [email protected]//org.keycloak.services.resources.LoginActionsService.processRegister(LoginActionsService.java:683)
keycloak_1 | at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
keycloak_1 | at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
keycloak_1 | at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
keycloak_1 | at java.base/java.lang.reflect.Method.invoke(Method.java:566)
keycloak_1 | at [email protected]//org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:138)
keycloak_1 | at [email protected]//org.jboss.resteasy.core.ResourceMethodInvoker.internalInvokeOnTarget(ResourceMethodInvoker.java:526)
keycloak_1 | at [email protected]//org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTargetAfterFilter(ResourceMethodInvoker.java:415)
keycloak_1 | at [email protected]//org.jboss.resteasy.core.ResourceMethodInvoker.lambda$invokeOnTarget$0(ResourceMethodInvoker.java:376)
keycloak_1 | at [email protected]//org.jboss.resteasy.core.interception.PreMatchContainerRequestContext.filter(PreMatchContainerRequestContext.java:356)
keycloak_1 | at [email protected]//org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTarget(ResourceMethodInvoker.java:378)
keycloak_1 | at [email protected]//org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:347)
keycloak_1 | at [email protected]//org.jboss.resteasy.core.ResourceLocatorInvoker.invokeOnTargetObject(ResourceLocatorInvoker.java:150)
keycloak_1 | at [email protected]//org.jboss.resteasy.core.ResourceLocatorInvoker.invoke(ResourceLocatorInvoker.java:104)
keycloak_1 | at [email protected]//org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:440)
keycloak_1 | at [email protected]//org.jboss.resteasy.core.SynchronousDispatcher.lambda$invoke$4(SynchronousDispatcher.java:229)
keycloak_1 | at [email protected]//org.jboss.resteasy.core.SynchronousDispatcher.lambda$preprocess$0(SynchronousDispatcher.java:135)
keycloak_1 | at [email protected]//org.jboss.resteasy.core.interception.PreMatchContainerRequestContext.filter(PreMatchContainerRequestContext.java:356)
keycloak_1 | at [email protected]//org.jboss.resteasy.core.SynchronousDispatcher.preprocess(SynchronousDispatcher.java:138)
keycloak_1 | at [email protected]//org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:215)
keycloak_1 | at [email protected]//org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:227)
keycloak_1 | at [email protected]//org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:56)
keycloak_1 | at [email protected]//org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:51)
keycloak_1 | at [email protected]//javax.servlet.http.HttpServlet.service(HttpServlet.java:590)
keycloak_1 | at [email protected]//io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:74)
keycloak_1 | at [email protected]//io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:129)
keycloak_1 | at [email protected]//org.keycloak.services.filters.KeycloakSessionServletFilter.doFilter(KeycloakSessionServletFilter.java:91)
keycloak_1 | at [email protected]//io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
keycloak_1 | at [email protected]//io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
keycloak_1 | at [email protected]//io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:84)
keycloak_1 | at [email protected]//io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)
keycloak_1 | at [email protected]//io.undertow.servlet.handlers.ServletChain$1.handleRequest(ServletChain.java:68)
keycloak_1 | at [email protected]//io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
keycloak_1 | at [email protected]//org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:78)
keycloak_1 | at [email protected]//io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
keycloak_1 | at [email protected]//io.undertow.servlet.handlers.RedirectDirHandler.handleRequest(RedirectDirHandler.java:68)
keycloak_1 | at [email protected]//io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:132)
keycloak_1 | at [email protected]//io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)
keycloak_1 | at [email protected]//io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
keycloak_1 | at [email protected]//io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)
keycloak_1 | at [email protected]//io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64)
keycloak_1 | at [email protected]//io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60)
keycloak_1 | at [email protected]//io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77)
keycloak_1 | at [email protected]//io.undertow.security.handlers.NotificationReceiverHandler.handleRequest(NotificationReceiverHandler.java:50)
keycloak_1 | at [email protected]//io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43)
keycloak_1 | at [email protected]//io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
keycloak_1 | at [email protected]//org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61)
keycloak_1 | at [email protected]//io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
keycloak_1 | at [email protected]//org.wildfly.extension.undertow.deployment.GlobalRequestControllerHandler.handleRequest(GlobalRequestControllerHandler.java:68)
keycloak_1 | at [email protected]//io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
keycloak_1 | at [email protected]//io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:269)
keycloak_1 | at [email protected]//io.undertow.servlet.handlers.ServletInitialHandler.access$100(ServletInitialHandler.java:78)
keycloak_1 | at [email protected]//io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:133)
keycloak_1 | at [email protected]//io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:130)
keycloak_1 | at [email protected]//io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48)
keycloak_1 | at [email protected]//io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43)
keycloak_1 | at [email protected]//org.wildfly.extension.undertow.security.SecurityContextThreadSetupAction.lambda$create$0(SecurityContextThreadSetupAction.java:105)
keycloak_1 | at [email protected]//org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1541)
keycloak_1 | at [email protected]//org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1541)
keycloak_1 | at [email protected]//org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1541)
keycloak_1 | at [email protected]//org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1541)
keycloak_1 | at [email protected]//io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:249)
keycloak_1 | at [email protected]//io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:78)
keycloak_1 | at [email protected]//io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:99)
keycloak_1 | at [email protected]//io.undertow.server.Connectors.executeRootHandler(Connectors.java:376)
keycloak_1 | at [email protected]//io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:830)
keycloak_1 | at [email protected]//org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35)
keycloak_1 | at [email protected]//org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:1982)
keycloak_1 | at [email protected]//org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1486)
keycloak_1 | at [email protected]//org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1377)
keycloak_1 | at java.base/java.lang.Thread.run(Thread.java:834)
keycloak_1 | Caused by: java.lang.ClassNotFoundException: org.keycloak.services.validation.Validation from [Module "deployment.spi-registration-profile.jar" from Service Module Loader]
keycloak_1 | at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:255)
keycloak_1 | at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:410)
keycloak_1 | at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398)
keycloak_1 | at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:116)
keycloak_1 | ... 78 more
keycloak_1 |
This is my Dockerfile
FROM jboss/keycloak:10.0.0
COPY ./themes /opt/jboss/keycloak/themes
COPY ./spi/spi-registration-profile-0.0.1.jar /opt/jboss/keycloak/standalone/deployments/spi-registration-profile.jar
Hello,
I've been trying to add Apache Commons Configuration to spi-events-listener
, but I keep getting ClassNotFoundException
. I've tried many many many things I found online but so far none has worked. This seems to be a common pain point, based on the many questions/posts I read about this topic. Would you please consider updating the spi-events-listener
project to include a third-party library? (e.g., Apache Commons Configuration).
I added three branches to my fork of this repository. I tried using Maven's shade plugin, creating a module and creating an EAR file. This is the first time I work with Jboss/Wildfly.
https://github.com/jachinte/keycloak-extensions
Caused by: java.lang.ClassNotFoundException: org.apache.commons.configuration2.PropertiesConfiguration from [Module "deployment.keycloak-server.war" from Service Module Loader]
keycloak | at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:255)
keycloak | at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:410)
keycloak | at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398)
keycloak | at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:116)
keycloak | at java.base/java.lang.Class.forName0(Native Method)
keycloak | at java.base/java.lang.Class.forName(Class.java:398)
keycloak | at deployment.spi-event-listener-ear-0.0.1-SNAPSHOT.ear.spi-event-listener-module.jar//org.apache.commons.lang3.ClassUtils.getClass(ClassUtils.java:993)
keycloak | at deployment.spi-event-listener-ear-0.0.1-SNAPSHOT.ear.spi-event-listener-module.jar//org.apache.commons.lang3.ClassUtils.getClass(ClassUtils.java:1059)
keycloak | at deployment.spi-event-listener-ear-0.0.1-SNAPSHOT.ear.spi-event-listener-module.jar//org.apache.commons.lang3.ClassUtils.getClass(ClassUtils.java:1042)
keycloak | at deployment.spi-event-listener-ear-0.0.1-SNAPSHOT.ear.spi-event-listener-module.jar//org.apache.commons.configuration2.beanutils.BeanHelper.loadClass(BeanHelper.java:508)
keycloak | at deployment.spi-event-listener-ear-0.0.1-SNAPSHOT.ear.spi-event-listener-module.jar//org.apache.commons.configuration2.beanutils.BeanHelper.fetchBeanClass(BeanHelper.java:546)
keycloak | ... 99 more
Thank you,
Miguel
It's nearly impossible to use a new domain following this example. KC registers JPA... but it's unusable (no table created, no entity scanned). Tested with 11.0.3 (example version), 15.0.2 and 16.1.0
This error comes during deployment:
FATAL [org.keycloak.services] (ServerService Thread Pool -- 69) java.lang.NoClassDefFoundError: org/keycloak/theme/FreeMarkerUtil
I'm using Keycloak 17.0.1 and I successfully deployed the spi-event-listener on my testing server. Unfortunately, if I artificially put an error in the URI (so response return 404), The user is getting a white page instead having a proper error.
Sorry, I'm newbie in Java, I'm spend few hours already but don't understand how I can fix this issue.
Thanks
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.