mirror of
https://github.com/spring-projects/spring-security.git
synced 2025-06-29 15:22:15 +00:00
SEC-549: Trim whitespace from username submitted with login form.
This commit is contained in:
parent
8398e940cf
commit
56deb3dd83
@ -68,6 +68,8 @@ public class AuthenticationProcessingFilter extends AbstractProcessingFilter {
|
|||||||
password = "";
|
password = "";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
username = username.trim();
|
||||||
|
|
||||||
UsernamePasswordAuthenticationToken authRequest = new UsernamePasswordAuthenticationToken(username, password);
|
UsernamePasswordAuthenticationToken authRequest = new UsernamePasswordAuthenticationToken(username, password);
|
||||||
|
|
||||||
// Place the last username attempted into HttpSession for views
|
// Place the last username attempted into HttpSession for views
|
||||||
@ -145,7 +147,7 @@ public class AuthenticationProcessingFilter extends AbstractProcessingFilter {
|
|||||||
* @param passwordParameter the parameter name. Defaults to "j_password".
|
* @param passwordParameter the parameter name. Defaults to "j_password".
|
||||||
*/
|
*/
|
||||||
public void setPasswordParameter(String passwordParameter) {
|
public void setPasswordParameter(String passwordParameter) {
|
||||||
Assert.hasText(passwordParameter, "Password parameter must not be empty or null");
|
Assert.hasText(passwordParameter, "Password parameter must not be empty or null");
|
||||||
this.passwordParameter = passwordParameter;
|
this.passwordParameter = passwordParameter;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -92,7 +92,7 @@ public class AuthenticationProcessingFilterTests extends TestCase {
|
|||||||
AuthenticationProcessingFilter filter = new AuthenticationProcessingFilter();
|
AuthenticationProcessingFilter filter = new AuthenticationProcessingFilter();
|
||||||
filter.setAuthenticationManager(new MockAuthenticationManager(true));
|
filter.setAuthenticationManager(new MockAuthenticationManager(true));
|
||||||
filter.setUsernameParameter("x");
|
filter.setUsernameParameter("x");
|
||||||
filter.setPasswordParameter("y");
|
filter.setPasswordParameter("y");
|
||||||
filter.init(null);
|
filter.init(null);
|
||||||
|
|
||||||
MockHttpServletRequest request = new MockHttpServletRequest();
|
MockHttpServletRequest request = new MockHttpServletRequest();
|
||||||
@ -101,6 +101,19 @@ public class AuthenticationProcessingFilterTests extends TestCase {
|
|||||||
|
|
||||||
Authentication result = filter.attemptAuthentication(request);
|
Authentication result = filter.attemptAuthentication(request);
|
||||||
assertTrue(result != null);
|
assertTrue(result != null);
|
||||||
assertEquals("127.0.0.1", ((WebAuthenticationDetails) result.getDetails()).getRemoteAddress());
|
assertEquals("127.0.0.1", ((WebAuthenticationDetails) result.getDetails()).getRemoteAddress());
|
||||||
|
}
|
||||||
|
|
||||||
|
public void testSpacesAreTrimmedCorrectlyFromUsername() throws Exception {
|
||||||
|
MockHttpServletRequest request = new MockHttpServletRequest();
|
||||||
|
request.addParameter(AuthenticationProcessingFilter.ACEGI_SECURITY_FORM_USERNAME_KEY, " marissa ");
|
||||||
|
request.addParameter(AuthenticationProcessingFilter.ACEGI_SECURITY_FORM_PASSWORD_KEY, "koala");
|
||||||
|
|
||||||
|
AuthenticationProcessingFilter filter = new AuthenticationProcessingFilter();
|
||||||
|
filter.setAuthenticationManager(new MockAuthenticationManager(true));
|
||||||
|
filter.init(null);
|
||||||
|
|
||||||
|
Authentication result = filter.attemptAuthentication(request);
|
||||||
|
assertEquals("marissa", result.getName());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user