You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jetspeed-user@portals.apache.org by lu...@sorma.com on 2003/05/12 18:25:16 UTC

Resolved Bug in org.apache.jetspeed.modules.actions.ChangePassword.java

Hi all!!

There is a bug in org.apache.jetspeed.modules.actions.ChangePassword.java :
1) it tries to login twice;
2) Localization doesn't work correctly.

Here there is a proposal fix :

///////////////////////// start of code
     /**
      * @see org.apache.turbine.modules.Action#doPerform(RunData)
      */
     public void doPerform(RunData rundata) throws Exception {
        String cancelBtn = rundata.getParameters
().getString(Localization.getString("PASSWORDFORM_CANCEL"
,rundata.getRequest().getLocale()));
        String username  = rundata.getParameters().getString("username" ,
"");
        String oldPassword  =
JetspeedSecurity.convertPassword(rundata.getParameters().getString(
"old_password" , ""));
        String password  =
JetspeedSecurity.convertPassword(rundata.getParameters().getString(
"password", ""));
        String password2 =
JetspeedSecurity.convertPassword(rundata.getParameters().getString(
"password_confirm", ""));

        // CANCEL BUTTON
        //
        // check to see if the Cancel button was pressed.
        // if so, return to default portal page
        if (cancelBtn != null &&
cancelBtn.equalsIgnoreCase(Localization.getString("PASSWORDFORM_CANCEL"
,rundata.getRequest().getLocale())))
        {
            return;
        }

        String returnTemplate =
JetspeedResources.getString(JetspeedResources.CHANGE_PASSWORD_TEMPLATE,
"ChangePassword");

        try
        {

            JetspeedUser user = JetspeedSecurity.getUser(username);

            if (!password.equals(password2))
            {
                rundata.setMessage(Localization.getString(
"UPDATEACCOUNT_PWNOTMATCH",rundata.getRequest().getLocale()));
                rundata.setScreenTemplate(returnTemplate);
                return;
            }

            if (password.equals(oldPassword))
            {
                rundata.setMessage(Localization.getString(
"PASSWORDFORM_THESAME_MSG",rundata.getRequest().getLocale()));
                rundata.setScreenTemplate(returnTemplate);
                return;
            }

            // Change the password
            JetspeedSecurity.changePassword(user, oldPassword, password);
            rundata.setMessage(Localization.getString("PASSWORDFORM_DONE"
,rundata.getRequest().getLocale()));

//            // Login again
//            rundata.getParameters().setString("username", username);
//            rundata.getParameters().setString("password", password);
//            String userRequestsRememberMe = rundata.getParameters
().getString("rememberme");
//            rundata.getParameters().setString("rememberme",
userRequestsRememberMe);
//            ActionLoader.getInstance().getInstance(
//
JetspeedResources.getString(TurbineConstants.ACTION_LOGIN)
//                ).doPerform(rundata);
//
//
//            // Update the profile in rundata - not sure why this is not
happening automatically?
//            JetspeedRunData jdata = (JetspeedRunData) rundata;
//            ProfileLocator locator = Profiler.createLocator();
//            locator.setUser(user);
//            locator.setLanguage(rundata.getRequest().getLocale
().getLanguage());
//            Profile profile = Profiler.getProfile(locator);
//            jdata.setProfile(profile);

        }
        catch (Exception e)
        {
            Log.error(e);
            rundata.setMessage(e.getMessage() != null ? e.getMessage() :
e.toString());
            rundata.setScreenTemplate(returnTemplate);
        }
    }

///////////////////////// end of code

Thanx to all of you for your activities!!!


Ing. Luca Forni

SORMA S.p.a.
Corso Vinzaglio, 4 - 10121
TORINO (ITALY)
Tel. +39 011 53 33 22
http://www.sorma.com


---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jetspeed-user-help@jakarta.apache.org


RE: Resolved Bug in org.apache.jetspeed.modules.actions.ChangePassword.java

Posted by Mark Orciuch <ma...@ngsltd.com>.
Luca,

Thanks for the fix. It will be best to log this into Bugzilla and attach a
patch (rather than a complete module).

Best regards,

Mark Orciuch - morciuch@apache.org
Jakarta Jetspeed - Enterprise Portal in Java
http://jakarta.apache.org/jetspeed/

> -----Original Message-----
> From: luca.forni@sorma.com [mailto:luca.forni@sorma.com]
> Sent: Monday, May 12, 2003 11:25 AM
> To: Jetspeed Users List
> Subject: Resolved Bug in
> org.apache.jetspeed.modules.actions.ChangePassword.java
>
>
> Hi all!!
>
> There is a bug in
> org.apache.jetspeed.modules.actions.ChangePassword.java :
> 1) it tries to login twice;
> 2) Localization doesn't work correctly.
>
> Here there is a proposal fix :
>
> ///////////////////////// start of code
>      /**
>       * @see org.apache.turbine.modules.Action#doPerform(RunData)
>       */
>      public void doPerform(RunData rundata) throws Exception {
>         String cancelBtn = rundata.getParameters
> ().getString(Localization.getString("PASSWORDFORM_CANCEL"
> ,rundata.getRequest().getLocale()));
>         String username  = rundata.getParameters().getString("username" ,
> "");
>         String oldPassword  =
> JetspeedSecurity.convertPassword(rundata.getParameters().getString(
> "old_password" , ""));
>         String password  =
> JetspeedSecurity.convertPassword(rundata.getParameters().getString(
> "password", ""));
>         String password2 =
> JetspeedSecurity.convertPassword(rundata.getParameters().getString(
> "password_confirm", ""));
>
>         // CANCEL BUTTON
>         //
>         // check to see if the Cancel button was pressed.
>         // if so, return to default portal page
>         if (cancelBtn != null &&
> cancelBtn.equalsIgnoreCase(Localization.getString("PASSWORDFORM_CANCEL"
> ,rundata.getRequest().getLocale())))
>         {
>             return;
>         }
>
>         String returnTemplate =
> JetspeedResources.getString(JetspeedResources.CHANGE_PASSWORD_TEMPLATE,
> "ChangePassword");
>
>         try
>         {
>
>             JetspeedUser user = JetspeedSecurity.getUser(username);
>
>             if (!password.equals(password2))
>             {
>                 rundata.setMessage(Localization.getString(
> "UPDATEACCOUNT_PWNOTMATCH",rundata.getRequest().getLocale()));
>                 rundata.setScreenTemplate(returnTemplate);
>                 return;
>             }
>
>             if (password.equals(oldPassword))
>             {
>                 rundata.setMessage(Localization.getString(
> "PASSWORDFORM_THESAME_MSG",rundata.getRequest().getLocale()));
>                 rundata.setScreenTemplate(returnTemplate);
>                 return;
>             }
>
>             // Change the password
>             JetspeedSecurity.changePassword(user, oldPassword, password);
>             rundata.setMessage(Localization.getString("PASSWORDFORM_DONE"
> ,rundata.getRequest().getLocale()));
>
> //            // Login again
> //            rundata.getParameters().setString("username", username);
> //            rundata.getParameters().setString("password", password);
> //            String userRequestsRememberMe = rundata.getParameters
> ().getString("rememberme");
> //            rundata.getParameters().setString("rememberme",
> userRequestsRememberMe);
> //            ActionLoader.getInstance().getInstance(
> //
> JetspeedResources.getString(TurbineConstants.ACTION_LOGIN)
> //                ).doPerform(rundata);
> //
> //
> //            // Update the profile in rundata - not sure why this is not
> happening automatically?
> //            JetspeedRunData jdata = (JetspeedRunData) rundata;
> //            ProfileLocator locator = Profiler.createLocator();
> //            locator.setUser(user);
> //            locator.setLanguage(rundata.getRequest().getLocale
> ().getLanguage());
> //            Profile profile = Profiler.getProfile(locator);
> //            jdata.setProfile(profile);
>
>         }
>         catch (Exception e)
>         {
>             Log.error(e);
>             rundata.setMessage(e.getMessage() != null ? e.getMessage() :
> e.toString());
>             rundata.setScreenTemplate(returnTemplate);
>         }
>     }
>
> ///////////////////////// end of code
>
> Thanx to all of you for your activities!!!
>
>
> Ing. Luca Forni
>
> SORMA S.p.a.
> Corso Vinzaglio, 4 - 10121
> TORINO (ITALY)
> Tel. +39 011 53 33 22
> http://www.sorma.com
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: jetspeed-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: jetspeed-user-help@jakarta.apache.org
>
>
>
>



---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jetspeed-user-help@jakarta.apache.org