Wednesday 30 December 2015

JBO-25058: Definition MyUDF__c of type Attribute is not found in UserVO

Sign-out after adding/updating UDF

You must sign-out from Identity Self-Service or Identity System Administration after adding new or updating existing UDF. This is to avoid known caching issue in ADF layer wherein older version of the VO is being cached and new changes are not being picked up.

If you forget to sign-out and go directly to the page where the VO is being used, you will see an error similar to JBO-25058: Definition MyUDF__c of type Attribute is not found in UserVO, or you will not be able to select the UDF in WebCenter Composer catalog while adding the UDF to the page.

Workaround:

1. Login to Enterprise Manager
2. In Application Deployments select oracle.iam.console.identity.self-service.ear link
3. In the top left of the UI choose Application Deployment | MDS Configuration (from the drop-down)
4. At the bottom of the screen choose “Runtime MBean Browser” (under the Advanced Configuration section)
5. The right side of the screen should refresh and then click on the “Operations” tab.
6. Scroll down and identify the MBean operation “listMetadataLabels” (choose the one that takes no parameters / the first one).
7. Click the Invoke Button
8. Find the sandbox that b0rked up and copy the Creation one to your clipboard (the line of text). For example the value you might copy might look something like – Creation_IdM_test_09:25:00
9. Now go back to Operations by clicking Return.
10. Find the MBean operation “promoteMetadataLabel” (the first one in the list with 1 parameter)
11. Paste the Creation sandbox text into the Lebel field and click the Invoke button
12. Restart OIM.

DBATGenerator.cmd throws "groovy.lang.GroovyRuntimeException: Could not find matching constructor for: org.identityconnectors.common.security.GuardedString(java.lang.String)"

Issue: 
INFO DBATGenerator: Configure the connector
Exception in thread "main" groovy.lang.GroovyRuntimeException: Could not find matching constructor for: org.identityconnectors.common.security.GuardedString(java.lang.String)
        at groovy.lang.MetaClassImpl.invokeConstructor(MetaClassImpl.java:1472)
        at groovy.lang.MetaClassImpl.invokeConstructor(MetaClassImpl.java:1388)
        at org.codehaus.groovy.runtime.callsite.MetaClassConstructorSite.callConstructor(MetaClassConstructorSite.java:46)
        at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallConstructor(CallSiteArray.java:52)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:192)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:200)
        at org.identityconnectors.databasetable.generator.DBATGenerator.setProperty(DBATGenerator.groovy:347)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:86)
        at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:234)
        at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:361)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:880)
        at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:66)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:155)
        at org.identityconnectors.databasetable.generator.DBATGenerator$_configure_closure1.doCall(DBATGenerator.groovy:145)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:86)
        at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:234)
        at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:272)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:880)
        at groovy.lang.Closure.call(Closure.java:279)
        at groovy.lang.Closure.call(Closure.java:292)
        at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:1166)
        at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:1142)
        at org.codehaus.groovy.runtime.dgm$99.invoke(Unknown Source)
        at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoMetaMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:270)
        at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:52)
        at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:40)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:117)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125)
        at org.identityconnectors.databasetable.generator.DBATGenerator.configure(DBATGenerator.groovy:141)
        at org.identityconnectors.databasetable.generator.DBATGenerator$configure.call(Unknown Source)
        at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:40)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:117)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125)
        at org.identityconnectors.databasetable.generator.DBATGenerator.main(DBATGenerator.groovy:60)

Cause: 
In DBATConfiguration.groovy file password field is not commented.

      'password' : 'ABCD1234',// never provide passwords to generator

Solution:

Comment password and try to generate the connector package. You should be prompted to enter the password for the database user account.
 
// 'password' : 'ABCD1234', never provide passwords to generator

Tuesday 3 March 2015

Unable to open OIM Deployment Manager in Java 7 and Java 8

Issue:

Pop-up Error "Your security settings have blocked an application from running due to missing a "Permissions" manifest attribute in the main jar"

Cause:

Note: This attribute check was added into the Java 7 branch starting with 1.7.0_45 and the Java 8 branch starting with 1.8.0_20 for preventing an attacker to exploit a user by re-deploying an application that is signed with original certificate and running the application at a different privilege level. Detail about this new check can be referenced in the following Java documentation: https://www.java.com/en/download/help/java_blocked.xml 

Solution:


For low level steps to add Web Access to the URL exception list:
 1. Browse to the $JRE_Home\bin directory (example: C:\Program Files (x86)\Java\jre1.xxxxx\bin)
 2. Double-click javacpl.exe to open the Java Control Panel
 3. Select the security tab within the Java Control Panel
 4. Select the 'Edit Site List' button
 5. Select Add to add the Web Access URL
 6. In the new field added, enter the Web Access URL in the following format: 
      - If using HTTP protocol: http://server:port/xlWebApp/ 
      - If using HTTPS protocol: https://server:port/xlWebApp/
      - Note: You *must* add the preceding "/" at the end of the "xlWebApp" context
 7. Select OK to close the exception list
 8. Select OK to close the Java Control Panel
 9. Reload the browser for changes to take effect