In IDM 14.5.1 with WebLogic version 12.2.1.4.0. using OIDC authentication is failing with a Weblogic Error
<2024-10-16T04:47:20.768 PST> <Error> <HTTP> <BEA-101020> <[ServletContext@51793559[app:iam_im module:/iam/im path:null spec-version:3.1]] Servlet failed with an Exception
java.lang.NoSuchMethodError: com.nimbusds.jwt.proc.DefaultJWTClaimsVerifier.verify(Lcom/nimbusds/jwt/JWTClaimsSet;)V
at com.netegrity.webapp.authentication.openid.OpenIDRPHandler.getIDTokenClaims(OpenIDRPHandler.java:312)
at com.netegrity.webapp.authentication.openid.OpenIDRPHandler.handleCallBack(OpenIDRPHandler.java:197)
at com.netegrity.webapp.authentication.openid.OpenIDRPHandler.handle(OpenIDRPHandler.java:71)
at com.netegrity.webapp.authentication.openid.OpenIDAuthenticationModule.disambiguateUser(OpenIDAuthenticationModule.java:69)
at com.netegrity.webapp.authentication.FrameworkLoginFilter.disambiguateUser(FrameworkLoginFilter.java:701)
IDM 14.5.1 with WebLogic 12.2.1.4.0
The WebLogic server uses the same library com.nimbusds.jwt, but a different version. The IDM uses 7.9 and WebLogic is using 9.37.3. Method verify is different in those versions so that's the reason why it's not working.
Workaround :
Use weblogic.xml if you prefer using the local library (/iam_im.ear/user_console.war/WEB-INF/weblogic.xml), add the highlighted line as below:
<container-descriptor>
<prefer-web-inf-classes>false</prefer-web-inf-classes>
<prefer-application-packages>
<package-name>com.sun.jersey.*</package-name>
<package-name>org.glassfish.jersey.*</package-name>
<package-name>org.glassfish.hk2.*</package-name>
<package-name>org.jvnet.hk2.*</package-name>
<package-name>javax.ws.rs.*</package-name>
<package-name>org.eclipse.persistence.jaxb.rs.*</package-name>
<package-name>jersey.repackaged.org.objectweb.asm.*</package-name>
<package-name>org.codehaus.jackson.*</package-name>
<package-name>net.minidev.json.*</package-name>
<package-name>com.nimbusds.jwt.*</package-name>
</prefer-application-packages>