mwoi1
(Martin Woit)
September 30, 2021, 10:57am
1
Hi,
I was setting up a library plugin to get the possibility to install custom java code “on-the-fly” without any regular deployment.
The plugin installation is successful and the packages are marked as “scriptPackages” in the manifest.xml.
When I run a regular test rule with references to the plugins java code from the debug page the code can be found and processed.
But when I use the same code inside a before provisioning rule inside a web services connector, the provisioning is failing:
2021-09-30T06:54:14,511 ERROR https-openssl-nio-8443-exec-7 sailpoint.provisioning.PlanEvaluator:2011 - BeanShell script error: bsh.EvalError: Sourced file: inline evaluation of: `` import de.dhh.iam.beforeprovisioning.Test; import de.dhh.iam.beforeprovis . . . '' : Typed variable declaration : Class: Test not found in namespace : at Line: 6 : in file: inline evaluation of: `` import de.dhh.iam.beforeprovisioning.Test; import de.dhh.iam.beforeprovis . . . '' : Test
Is this an expected behaviour or a bug in IIQ?
Best,
Martin
mwoi1
(Martin Woit)
October 1, 2021, 10:42am
2
It’s a BUG. When I updated the name of the rule the java code from the plugin was accessible within the before provisioning rule.
kcwong
(KC Wong)
October 5, 2021, 1:33am
3
Do you have multiple servers? From my experience I found that the plugin deployment process is somewhat buggy, sometimes it will not update all SailPoint servers. After updating a plugin, some servers will be running the latest version, while the others would still be running the old one.
Next time you see this happen, try stopping and restarting your plugin.
I have the same issue with the customization rule.
I tried the following to fix the issue;
I changed the customization rule name.
I upload the plugin several times.
I restarted the tomcat after uploading the plugin.
I changed the java class name.
Still, I’m getting the no class found issue when I trigger an aggregation task.
Is there a limitation for different types of BeanShell? Such as the Plugin class cannot be used in Customization rule etc.
Caused by: org.apache.bsf.BSFException: BeanShell script error: bsh.EvalError: Sourced file: inline evaluation of: `` import java.lang.IllegalArgumentException; import java.lang.Sys . . . '' : Typed variable declaration : Class: MailService not found in namespace : at Line: 47 : in file: inline evaluation of: `` import java.lang.IllegalArgumentException; import java.lang.Sys . . . '' : MailService
BSF info: library-dhh at line: 0 column: columnNo
at bsh.util.BeanShellBSFEngine.eval(BeanShellBSFEngine.java:202) ~[bsh-2.1.8.jar:2.1.8 2018-10-02 08:36:04]
at org.apache.bsf.BSFManager$5.run(BSFManager.java:445) ~[bsf.jar:?]
at java.security.AccessController.doPrivileged(Native Method) ~[?:1.8.0_151]
at org.apache.bsf.BSFManager.eval(BSFManager.java:442) ~[bsf.jar:?]
at sailpoint.server.BSFRuleRunner.eval(BSFRuleRunner.java:233) ~[identityiq.jar:8.1p4 Build 8db8c87b938-20211220-115258]
at sailpoint.server.BSFRuleRunner.runRule(BSFRuleRunner.java:190) ~[identityiq.jar:8.1p4 Build 8db8c87b938-20211220-115258]
... 10 more