Re: user is nulled out on login attempt
Peter Courcoux <[email protected]>
| Newsgroups | gmane.comp.jakarta.turbine.user |
|---|---|
| Message-ID | <[email protected]> |
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);
> }
>
> }
> }
>
> }
>