diff --git a/core/src/main/java/org/acegisecurity/ui/switchuser/SwitchUserProcessingFilter.java b/core/src/main/java/org/acegisecurity/ui/switchuser/SwitchUserProcessingFilter.java index cd2244822e..284b567950 100644 --- a/core/src/main/java/org/acegisecurity/ui/switchuser/SwitchUserProcessingFilter.java +++ b/core/src/main/java/org/acegisecurity/ui/switchuser/SwitchUserProcessingFilter.java @@ -462,7 +462,7 @@ public class SwitchUserProcessingFilter implements Filter, InitializingBean, authorities = (GrantedAuthority[]) newAuths.toArray(authorities); // create the new authentication token - targetUserRequest = new UsernamePasswordAuthenticationToken(username, + targetUserRequest = new UsernamePasswordAuthenticationToken(targetUser, targetUser.getPassword(), authorities); // set details diff --git a/core/src/test/java/org/acegisecurity/ui/switchuser/SwitchUserProcessingFilterTests.java b/core/src/test/java/org/acegisecurity/ui/switchuser/SwitchUserProcessingFilterTests.java index febdea1bfa..8d9c08fe72 100644 --- a/core/src/test/java/org/acegisecurity/ui/switchuser/SwitchUserProcessingFilterTests.java +++ b/core/src/test/java/org/acegisecurity/ui/switchuser/SwitchUserProcessingFilterTests.java @@ -355,7 +355,8 @@ public class SwitchUserProcessingFilterTests extends TestCase { Authentication targetAuth = SecurityContextHolder.getContext() .getAuthentication(); assertNotNull(targetAuth); - assertEquals("jacklord", targetAuth.getPrincipal()); + assertTrue(targetAuth.getPrincipal() instanceof UserDetails); + assertEquals("jacklord", ((User)targetAuth.getPrincipal()).getUsername()); } private MockHttpServletRequest createMockSwitchRequest() {