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