Monday, June 2, 2008

Running OIM Design Console from Linux / Unix

Here are a few scripts you can use to run OIM Design Console from *nux flavors.
You would need to download and setup xming ( http://sourceforge.net/projects/xming ) or cygwin/x.

[root@oim ~]# cd /opt/oracle/xlclient/xlclient/

Create the following 2 script files using vi.

[root@oim xlclient]# vi classpath.sh
CLASSPATH=.:./lib/XellerateClient.jar:./lib/XellerateServer.jar:./ext/jakarta-oro-2.0.8.jar:./ext/bsh.jar:./ext/jhall.jar:./ext/mail.jar:./ext/log4j-1.2.8.jar:./ext/jboss-j2ee.jar:./ext/jboss-jaas.jar:./ext/jbosssx.jar:./ext/jts.jar:./ext/jbossall-client.jar:./ext/concurrent.jar:./ext/getopt.jar:./ext/gnu-regexp.jar:./ext/jacorb.jar:./ext/jboss-client.jar:./ext/jboss-common-client.jar:./ext/jbosscx-client.jar:./ext/jbossha-client.jar:./ext/jboss-iiop-client.jar:./ext/jbossjmx-ant.jar:./ext/jboss-jsr77-client.jar:./ext/jbossmq-client.jar:./ext/jboss-net-client.jar:./ext/jbosssx-client.jar:./ext/jboss-system-client.jar:./ext/jboss-transaction-client.jar:./ext/jcert.jar:./ext/jmx-connector-client-factory.jar:./ext/jmx-ejb-connector-client.jar:./ext/xdoclet-module-jboss-net.jar:./ext/jsse.jar:./ext/jnet.jar:./ext/jmx-rmi-connector-client.jar:./ext/jmx-invoker-adapter-client.jar:./ext/jnp-client.jar:./ext/log4j.jar:./ext/jocache.jar:./lib/xlAPI.jar:./lib/xlLogger.jar:./lib/xlVO.jar:./lib/xlUtils.jar:./lib/xlCrypto.jar:./lib/xlAuthentication.jar:./lib/xlDataObjectBeans.jar:./ext/weblogic.jar:./lib/xlCopyUtil.jar:./ext/xalan.jar:./ext/xerces.jar:./ext/xercesImpl.jar:./ext/oc4jclient.jar:./ext/ejb.jar
export $CLASSPATH

[root@oim xlclient]# vi xlclient.sh
. ./classpath.sh

#export DEBUG_OPTS="-classic -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5001 -DXL.RedirectSysOutErrToFile=TRUE -DXL.SysOutErrLogFile=./logs/Client.System.Out.Err.log"

export DEBUG_OPTS="-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5001 -DXL.RedirectSysOutErrToFile=TRUE -DXL.SysOutErrLogFile=./logs/Client.System.Out.Err.log"

export DEBUG_OPTS

#Make sure to remove java.naming.provider.url and read it from the configuration
#once the JNDI Profiles are implemented.
#make sure you are using j2sdk1.4.2_04

/opt/j2sdk1.4.2_16/jre/bin/java $DEBUG_OPTS -DXL.ExtendedErrorOptions=TRUE \
-DXL.HomeDir=. -Djava.security.policy=config/xl.policy \
-Djava.security.manager -Djava.security.auth.login.config=config/auth.conf \
-Dlog4j.configuration=config/log.properties \
-cp $CLASSPATH com.thortech.xl.client.base.tcAppWindow -server server &

[root@oim xlclient]# chmod +x xlclient.sh

[root@oim xlclient]# chmod +x classpath.sh

[root@oim ~]# cd ~

[root@oim ~]# vi launchclient.sh
#!/bin/bash
cd /opt/oracle/xlclient/xlclient
./xlclient.sh &

[root@oim ~]# chmod +x launchclient.sh

[root@oim ~]# ./launchclient.sh

1 comment:

kamal said...

Hi Rajnish,

I am very new to Oracle OIM. Just starting to work on it. The information you have posted in this blog is very helpful. Thank you very much for sharing your wisdom.

I am hoping you can share your thoughts on question. I was wondering if there is a way to configure OIM so that the users will be authenticated against AD using Krb5LoginModule. I have been working with SUN's IDM product for a while now and with that there is the concept called pass through authentication. Looks like there is none like that with OIM.

I am using JBOSS as application server. Based on my very limited knowledge with OIM sofar , I have tried configuring kerberos login module in jboss login-config.xml file and then updated the xellerate\config\auth.conf file by stacking the out of box login module and kerberos login module (first kerberos).

Whenever I try to login, I can see that the kerberos framework is hitting my AD. However when I try to login, I get the following error.

14:47:21,921 ERROR [WEBAPP] Class/Method: tcLogonAction/execute encounter some problems: {1}
java.lang.NullPointerException
at Thor.API.Operations.tcUserOperationsClient.isChallengeQuestionsSetForSelf(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)

Any suggestions would be really helpful.

Thank you
-Kamal