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));
log.info("Login done successfully " );
log.info("about to get subject");
Subject sub = lc.getSubject(); System.out.println("subject is: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.util.AccessController.doPrivileged(AccessController.java(Compiled Code))
Assuming that you are testing in RAD and that you are connecting to an EJB instance :
Is you application server enabled for global security ?
If your app server is not enabled with Global security , you see null subject. So either you have to enable Global Security on local env or you should be using WebService instance of the service(if available)..