Uploaded image for project: 'OpenId Connect'
  1. OpenId Connect
  2. OIDC-251

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

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • Blocker
    • 2.19.1
    • 2.19.0
    • Authenticator
    • None
    • Docker
      Xwiki 17.6.0 (Stable as of 20025-07-31)
      OpenID Connect Authenticator 2.19.0
      Postgresql 17
      Linux Debian
    • Unknown

    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

      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

       

      Docker libs

      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

       

      How to reproduce

      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

      Attachments

        Activity

          People

            tmortagne Thomas Mortagne
            TomHome Thomas G
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: