Bug 103511
Summary: | The URL in the 'recover password' email redirects to login page | ||
---|---|---|---|
Product: | [Retired] Red Hat Web Application Framework | Reporter: | Daniel Berrangé <berrange> |
Component: | ui | Assignee: | ccm-bugs-list |
Status: | CLOSED RAWHIDE | QA Contact: | Jon Orris <jorris> |
Severity: | medium | Docs Contact: | |
Priority: | medium | ||
Version: | nightly | CC: | pruchaba_bah |
Target Milestone: | --- | ||
Target Release: | --- | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Fixed In Version: | Doc Type: | Bug Fix | |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2003-12-10 02:48:53 UTC | Type: | --- |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: | |||
Bug Depends On: | |||
Bug Blocks: | 100952, 103600 |
Description
Daniel Berrangé
2003-09-01 14:46:48 UTC
This bug is due to the fact that the Credential contains a '+' character in it. The recover password UI (com.arsdigita.ui.login.RecoverPasswordPanel) generates the url's credential paramater by calling: Line: 339 ParameterMap map = ParameterMap.fromString (RecoveryLoginModule.getParamName() + "=" + RecoveryLoginModule.getParamValue(user.getID())); However the ParameterMap.fromString() function URLDecode's the query string replacing '+' characters with space characters. Once it's decoded it is again encoded. You can fix this problem by replacing the above lines of code with this these: ParameterMap map = ParameterMap.fromString (RecoveryLoginModule.getParamName() + "=" + URLEncoder.encode (RecoveryLoginModule.getParamValue(user.getID()), "UTF-8")); By first encoding the Credential you ensure that the original value is returned when it is decoded. thanks to excellent debugging work, fixed at 5.2.x (37889), 6.0.x (37890), and dev (37891) |