I am trying to connect to a
j2EE security enabled system using Programmatic login using the userId and Password but the subject object returned from lc.getSubject() is just
Subject: . it is not even null though. My login is successful, but for subject object it is returning Subject: and when i go to next line i.e. WSSubject.setRunAsSubject() it is throwing me a null pointer exception.
Why is this happening. I am using JDK1.3 and is it because the JAAS is not compatible with JDK1.3 version. If it is so, how should i be able to establish a connection to j2EE secured application.
Any help is appreciated . Thanks in advance!
LoginContext lc = new LoginContext("WSLogin", new WSCallbackHandlerImpl(username, "realm", password));
lc.login();
log.info("Login done successfully " );
log.info("about to get subject");
Subject sub = lc.getSubject();
System.out.println("subject is:sub" );
WSSubject.setRunAsSubject(sub);
Here is the message is am receiving when i try to establish a connection:
[7/6/09 12:32:22:334 EDT] 0000002e SystemOut O Login done successfully
[7/6/09 12:32:22:334 EDT] 0000002e SystemOut O about to get subject
[7/6/09 12:32:22:334 EDT] 0000002e SystemOut O subject is:Subject:
[7/6/09 12:32:22:350 EDT] 0000002e ExceptionUtil E CNTR0020E: EJB threw an unexpected (non-declared) exception during invocation of method. Exception data: java.lang.NullPointerException
at com.ibm.ws.security.auth.distContextManagerImpl.isWSSubject(distContextManagerImpl.java:605)
at com.ibm.ws.security.auth.distContextManagerImpl.addWSSubjectToCache(distContextManagerImpl.java:2450)
at com.ibm.websphere.security.auth.WSSubject$3.run(WSSubject.java:448)
at com.ibm.ws.security.util.AccessController.doPrivileged(AccessController.java(Compiled Code))
at com.ibm.websphere.security.auth.WSSubject.setRunAsSubject(WSSubject.java:444)
.....................