-
Type:
Bug
-
Resolution: Unresolved
-
Priority:
Critical
-
Component/s: miniorange-saml-sp-plugin
-
Environment:*Plugin: miniOrange SAML SP (miniorange-saml-sp)
*Jenkins Core: 2.579+
*Java Version: 17 / 21
Description
As of Jenkins 2.579, Apache Commons Lang 2 (commons-lang:commons-lang:2.6) was removed from the Jenkins core classpath.
Because miniorange-saml-sp relies on org.apache.commons.lang.StringUtils inside MoSAMLAddIdp.java without bundling commons-lang-2.6.jar or declaring a plugin dependency on commons-lang-api / commons-lang3-api, class instantiation of MoSAMLAddIdp fails with ClassNotFoundException. This breaks both Jenkins Configuration as Code (JCasC) initialization and manual configuration saving via the web UI.
Steps to Reproduce
- Upgrade Jenkins core to version 2.579 or newer.
- Install the miniorange-saml-sp plugin.
- Apply a JCasC manifest defining securityRealm: moSAMLAddIdp or attempt to save SAML settings under Manage Jenkins > Security.
- Observe the initialization failure on server startup or UI submission.
Stack Trace
java.lang.ClassNotFoundException: org.apache.commons.lang.StringUtils
Caused: java.lang.NoClassDefFoundError: org/apache/commons/lang/StringUtils
at PluginClassLoader for miniorange-saml-sp//org.miniorange.saml.MoSAMLAddIdp.<init>(MoSAMLAddIdp.java:149)
at PluginClassLoader for miniorange-saml-sp//org.miniorange.saml.MoSAMLAddIdp$DescriptorImpl.newInstance(MoSAMLAddIdp.java:1261)
at hudson.model.Descriptor.newInstance(Descriptor.java:592)
at PluginClassLoader for configuration-as-code//io.jenkins.plugins.casc.BaseConfigurator.configure(BaseConfigurator.java:463)
Caused: io.jenkins.plugins.casc.ConfiguratorException: securityRealm: Failed to configure 'securityRealm': Failed to construct instance of class org.miniorange.saml.MoSAMLAddIdp.