Hi Nathan,

I assume that you are using Turbine 2.3.x.

I may be wrong and I don't have the code to hand at the moment, but I suspect that you might need to look at the SessionValidator which is called before you get to the login page.

The SessionValidator is pluggable if you need to modify it.

I hope that this helps.

Regards,

Peter

Shaw, Nathan (HQ-LD070)[InDyne, Inc] wrote:
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);
            }
}
  }

}

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to