foxysoft / idm-connector-bobj

SAP Identity Management connector for SAP BusinessObjects BI Platform
Apache License 2.0
5 stars 2 forks source link

Set BOBJ User Password fails on Sybase ASE #17

Closed boskamp closed 2 years ago

boskamp commented 5 years ago

The following exception occurs in job log SET_BOBJ_USER_PASSWORD.log:

java.io.FileNotFoundException: /usr/sap/I85/identitycenter/KEY/Keys.ini (No such file or directory)
/usr/sap/I85/identitycenter/KEY/Keys.ini (No such file or directory)
    java.io.FileInputStream.open0(Native Method)
    java.io.FileInputStream.open(FileInputStream.java:195)
    java.io.FileInputStream.<init>(FileInputStream.java:138)
    java.io.FileInputStream.<init>(FileInputStream.java:93)
    com.sap.idm.ic.Util.readFile(Util.java:1925)
    com.sap.idm.ic.IniFile.readFile(IniFile.java:158)
    com.sap.idm.ic.IniFile.getSectionValues(IniFile.java:360)
    com.sap.idm.ic.Config.decryptString(Config.java:2386)
    com.sap.idm.ic.ScriptGlobal.uDecrypt(ScriptGlobal.java:4399)
    inv4.invoke()
    org.mozilla.javascript.FunctionObject.doInvoke(FunctionObject.java:517)
    org.mozilla.javascript.FunctionObject.callVarargs(FunctionObject.java:532)
    org.mozilla.javascript.FunctionObject.call(FunctionObject.java:397)
    org.mozilla.javascript.ScriptRuntime.call(ScriptRuntime.java:1222)
    org.mozilla.javascript.gen.c27.call(fx_decrypt:23)
    com.sap.idm.ic.RunScript.execute(RunScript.java:175)
    com.sap.idm.ic.RunScript.runFunctionsInString(RunScript.java:395)
    com.sap.idm.ic.ToPass.processRules(ToPass.java:486)
    com.sap.idm.ic.ToPass.putNextEntry(ToPass.java:780)
    com.sap.idm.ic.ToGeneric.putNextEntry(ToGeneric.java:30)
    com.sap.idm.ic.DSERunTime.runToPass(DSERunTime.java:2542)
    com.sap.idm.ic.DSERunTime.runPass(DSERunTime.java:3137)
    com.sap.idm.ic.DSERunTime.runJob(DSERunTime.java:1264)
    com.sap.idm.ic.DSERunTime.loopJob(DSERunTime.java:667)
    com.sap.idm.ic.DSERunTime.doCommand(DSERunTime.java:1888)
    com.sap.idm.ic.DSERunTime.doCommand(DSERunTime.java:333)
    com.sap.idm.ic.DSERunTime.run(DSERunTime.java:3526)
    com.sap.idm.ic.DSERunTime.main(DSERunTime.java:3449)

The failing file lookup comes directly from the SAP Identity Management 8.0 SP5 code. It's not rooted in the connector.

IDM tries to open: /usr/sap/I85/identitycenter/KEY/Keys.ini

However, the correct path is: /usr/sap/I85/identitycenter/Key/Keys.ini

This issue would probably not hurt users on case-insensitive filesystems like NTFS on Windows, but on Linux and other UNIXes, the difference between directory name "Key" and "KEY" makes a difference.

boskamp commented 2 years ago

Needs to be fixed manually. Assuming Linux with dispatcher running as OS user idmadm and SAP IDM installed at /usr/sap/IDM/identitycenter, the required shell commands for user root are:

su - idmadm
ln -s /usr/sap/IDM/identitycenter/Key/ /usr/sap/IDM/identitycenter/KEY

This creates a symbolic link KEY (in uppercase) pointing to the correct, absolute path of the Key directory.