Hi all,
I am writing my own login action and need to be able to check to see if a user
is already logged in when the action is called. If they are, I want to skip the
login stuff to preserve their session. However, every single time that the
login action is called, the User object is coming back NULL.
Here is a code snippet. Does anyone have any idea WHY the user is coming back
NULL? I assume something is happening in Turbine somewhere that wipes the User
on a login attempt or something?
public class OutageCalLoginUser extends LoginUser {
public void doPerform( RunData data, Context context) throws Exception {
String uname ;
String passwd ;
System.out.println("doPerform(data, context)");
if ( data.getUserFromSession() == null ){
System.out.println("user from session is null");
}else{
System.out.println("user from session is NOT null");
}
if(data.getUser() == null){
System.out.println("user is null");
}else{
System.out.println("user is NOT null");
if(data.getUser().hasLoggedIn()){
System.out.println("user is logged in");
}else{
System.out.println("user is NOT logged in");
}
}
if((data.getUser() == null) || (data.getUser() != null &&
data.getUser().hasLoggedIn() == false)){
try {
SymEncDec enc = SymEncDec.getInstance();
// Username/password = username/pswd coming through front door.
// User coming from elsewhere will have neither username nor pswd.
String username = data.getParameters().get("username");
String pswd = data.getParameters().get("password");
// If username exists, user came in the front door.
if (username != null && username.length()>0) {
uname = username;
passwd = pswd;
}else {
uname = "guest";
String encryptedPasswd =
TurbineResources.getString("guest.credential");
passwd = encryptedPasswd;
//enc.decodeBase64Decrypt(encryptedPasswd);
}
// Log the user in
doLogin(data, uname, passwd);
try {
Utils.getUserID(data);
}
catch (NullPointerException npe) {
throw new TurbineSecurityException("Bad username or password, I
say!");
}
}
catch ( TurbineSecurityException se ) {
badUserOrPassword(se, data);
}
catch (Exception e) {
throw new PortalVelocityException(e.getMessage()==null?":
"+e.getMessage():e.getMessage(),
e.getCause()==null?e:e.getCause(), data);
}
}
}
}