There is 1 update.
 
 
OpenId Connect / cid:jira-generated-image-avatar-3e1e443b-1fa6-4357-b876-adc159dc3705 OIDC-251 Open

OIDC Authenticator 2.19 doesn't load due to a missing class in Xwiki 17.6.0

 
View issue   ยท   Add comment
 

1 update

 
cid:jira-generated-image-avatar-b635fe6d-4bdd-4f2e-92e5-a067df77a95a Changes by Thomas G on 31/Jul/25 03:57
 
Description: {*}TL;DR{*}: OIDC Connector Authenticator 2.19.0 cannot find a java class with xwiki 17.6.0 but it works with xwiki 17.4.2

*Description*

A fresh docker compose install of 17.6.0 with OIDC Connector Authenticator 2.19.0 will trigger the following on boot making it impossible to use OIDC. Interestingly `{{{}commons-lang3.jar{}}}` is available in WEB-INF/classes

Stack trace on boot
{code:java}
2025-07-31 01:23:55,798 [http-nio-8080-exec-3 - http://xwiki.domain.tld/bin/view/Main/] WARN  c.x.x.XWiki                    - Failed to initialize the AuthService from class [org.xwiki.contrib.oidc.auth.OIDCAuthServiceImpl], fallbacking on standard authenticator 
java.lang.RuntimeException: Failed to load component for type [class org.xwiki.contrib.oidc.provider.internal.OIDCManager] for hint [default]
    at com.xpn.xwiki.web.Utils.getComponent(Utils.java:746)
    at com.xpn.xwiki.web.Utils.getComponent(Utils.java:769)
    at com.xpn.xwiki.web.Utils.getComponent(Utils.java:722)
    at org.xwiki.contrib.oidc.auth.OIDCAuthServiceImpl.<init>(OIDCAuthServiceImpl.java:67)
    at java.base/jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(Unknown Source)
    at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Unknown Source)
    at java.base/java.lang.reflect.ReflectAccess.newInstance(Unknown Source)
    at java.base/jdk.internal.reflect.ReflectionFactory.newInstance(Unknown Source)
    at java.base/java.lang.Class.newInstance(Unknown Source)
    at com.xpn.xwiki.XWiki.setAuthService(XWiki.java:6087)
    at com.xpn.xwiki.XWiki.getAuthService(XWiki.java:6050)
    at com.xpn.xwiki.XWiki.checkAuth(XWiki.java:4400)
    at org.xwiki.security.authorization.internal.XWikiCachingRightService.authenticateUser(XWikiCachingRightService.java:238)
    at org.xwiki.security.authorization.internal.XWikiCachingRightService.checkAccess(XWikiCachingRightService.java:268)
    at com.xpn.xwiki.XWiki.checkAccess(XWiki.java:4423)
    at com.xpn.xwiki.XWiki.prepareDocuments(XWiki.java:5833)
    at com.xpn.xwiki.web.XWikiAction.execute(XWikiAction.java:547)
    at com.xpn.xwiki.web.XWikiAction.execute(XWikiAction.java:338)
    at com.xpn.xwiki.web.LegacyActionServlet.service(LegacyActionServlet.java:111)
    at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:195)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)
    at com.xpn.xwiki.web.ActionFilter.doFilter(ActionFilter.java:123)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)
    at org.xwiki.wysiwyg.filter.ConversionFilter.doFilter(ConversionFilter.java:71)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)
    at org.xwiki.container.servlet.filters.internal.SetHTTPHeaderFilter.doFilter(SetHTTPHeaderFilter.java:66)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)
    at org.xwiki.resource.servlet.RoutingFilter.doFilter(RoutingFilter.java:135)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)
    at org.xwiki.container.servlet.filters.internal.SavedRequestRestorerFilter.doFilter(SavedRequestRestorerFilter.java:211)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)
    at org.xwiki.container.servlet.filters.internal.SafeRedirectFilter.doFilter(SafeRedirectFilter.java:106)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)
    at org.xwiki.container.servlet.filters.internal.ResolveRelativeRedirectFilter.doFilter(ResolveRelativeRedirectFilter.java:129)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)
    at org.xwiki.container.servlet.filters.internal.SourceURLResolverFilter.doFilter(SourceURLResolverFilter.java:177)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)
    at org.xwiki.container.servlet.filters.internal.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:120)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:483)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:116)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)
    at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:666)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:344)
    at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:398)
    at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
    at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:903)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1769)
    at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
    at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1189)
    at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:658)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63)
    at java.base/java.lang.Thread.run(Unknown Source)
Caused by: org.xwiki.component.manager.ComponentLookupException: Failed to lookup component [org.xwiki.contrib.oidc.provider.internal.OIDCManager] identified by type [class org.xwiki.contrib.oidc.provider.internal.OIDCManager] and hint [default]
    at org.xwiki.component.embed.EmbeddableComponentManager.getInstance(EmbeddableComponentManager.java:341)
    at org.xwiki.component.embed.EmbeddableComponentManager.getInstance(EmbeddableComponentManager.java:329)
    at org.xwiki.component.embed.EmbeddableComponentManager.getInstance(EmbeddableComponentManager.java:311)
    at org.xwiki.component.internal.multi.DelegateComponentManager.getInstance(DelegateComponentManager.java:83)
    at org.xwiki.component.internal.multi.DelegateComponentManager.getInstance(DelegateComponentManager.java:83)
    at org.xwiki.component.internal.multi.DelegateComponentManager.getInstance(DelegateComponentManager.java:83)
    at org.xwiki.component.internal.multi.DelegateComponentManager.getInstance(DelegateComponentManager.java:83)
    at org.xwiki.component.internal.multi.DelegateComponentManager.getInstance(DelegateComponentManager.java:83)
    at com.xpn.xwiki.web.Utils.getComponent(Utils.java:744)
    ... 68 common frames omitted
Caused by: java.lang.NoClassDefFoundError: org/apache/commons/lang/RandomStringUtils
    at org.xwiki.contrib.oidc.provider.internal.OIDCManager.generateKeys(OIDCManager.java:217)
    at org.xwiki.contrib.oidc.provider.internal.OIDCManager.initialize(OIDCManager.java:174)
    at org.xwiki.component.embed.InitializableLifecycleHandler.handle(InitializableLifecycleHandler.java:39)
    at org.xwiki.component.embed.EmbeddableComponentManager.createInstance(EmbeddableComponentManager.java:612)
    at org.xwiki.component.embed.EmbeddableComponentManager.getComponentInstance(EmbeddableComponentManager.java:719)
    at org.xwiki.component.embed.EmbeddableComponentManager.getInstance(EmbeddableComponentManager.java:338)
    ... 76 common frames omitted
Caused by: java.lang.ClassNotFoundException: org.apache.commons.lang.RandomStringUtils
    at java.base/java.net.URLClassLoader.findClass(Unknown Source)
    at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
    at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
    ... 82 common frames omitted{code}
 

Docker libs
{code:java}
root@4f06285fbcf9:/usr/local/tomcat/webapps/ROOT/WEB-INF/lib# ls commons-lang3 -l
rw-rr- 1 root root 702952 Jul  6 19:43 commons-lang3-3.18.0.jar
rw-rr- 1 root root   9727 Jul 28 13:11 commons-lang3-3.18.0.xed{code}
 

*How to reproduce*
* Use docker-compose.yml
at  from [https://github.com/xwiki/xwiki-docker/blob/master/17/postgres-tomcat/docker-compose.yml] with XWIKI_VERSION=17.6.0
* docker compose up -d
* Go through bootstrap process
* Install 17.6.0 flavour
* Go to Extension Manager
* Install OpenID Connect Authenticator 2.19.0
*
Restart with : docker compose down && docker compose up
*
check the Check docker boot logs (you'll get find the issue, just right after the MailPlugin issue:)

*Environment*
* Docker
* Xwiki 17.6.0 (Stable as of 20025-07-31)
* OpenID Connect Authenticator 2.19.0
* Postgresql 17
* Linux Debian (irrelevant due to docker but for completeness)

*Workaround*

Use XWiki 17.4.2 (Intermediate Long Term Support) with OpenID Connect Authenticator 2.19.0