When running Policy Server, whenever it receives any SAML request,
Policy Server generates below error and journey fails :
[24020/140648300672768][Mon Dec 20 2021 11:28:16][AssertionGenerator.java]
[ERROR][sm-FedServer-00120]
postProcess() throws exception: njava.lang.NoClassDefFoundError:
org/apache/logging/log4j/LogManager
at com.netegrity.smkeydatabase.api.XMLDocumentOpsFactory.<clinit>(XMLDocumentOpsFactory.java:44)
at com.netegrity.SAML2Security.SAML2EncryptDecrypt.initialize(Unknown Source)
at com.netegrity.SAML2Security.SAML2EncryptDecrypt.<clinit>(Unknown Source)
at com.netegrity.assertiongenerator.saml2.ProtocolBase.signOrEncryptAssertion(Unknown Source)
at com.netegrity.assertiongenerator.saml2.AuthnRequestProtocol.closeupProcess(Unknown Source)
at com.netegrity.assertiongenerator.saml2.AssertionHandlerSAML20.postProcess(Unknown Source)
at com.netegrity.assertiongenerator.AssertionGenerator.invoke(Unknown Source)
at com.netegrity.policyserver.smapi.ActiveExpressionContext.invoke(ActiveExpressionContext.java:282)
Caused by: java.lang.ClassNotFoundException: org.apache.logging.log4j.LogManager
at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:352)
at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
... 8 more
[24020/140648283887360][Mon Dec 20 2021 11:28:31][AssertionGenerator.java]
[ERROR][sm-FedServer-00120]
postProcess() throws exception: njava.lang.NoClassDefFoundError: Could
not initialize class com.netegrity.SAML2Security.SAML2EncryptDecrypt
Policy Server 12.8SP3 on RedHat 7;
The out of the box files has the following configuration :
-Djava.class.path= [...] /opt/CA/siteminder/bin/thirdparty/log4j-api-2.10.0.jar:/opt/CA/siteminder/bin/thirdparty/log4j-core-2.10.0.jar:/opt/CA/siteminder/bin/thirdparty/log4j-slf4j-impl-2.10.0.jar
When updating the JVMOptions.txt log4j version, all log4j references
should be updated and be defined in this file.
To resolve this issue, add references of log4j files in JVMOptions.txt
file and / or update the files name if needed.