diff --git a/core/src/main/java/org/acegisecurity/providers/dao/DaoAuthenticationProvider.java b/core/src/main/java/org/acegisecurity/providers/dao/DaoAuthenticationProvider.java index a863be2387..8b1036c34a 100644 --- a/core/src/main/java/org/acegisecurity/providers/dao/DaoAuthenticationProvider.java +++ b/core/src/main/java/org/acegisecurity/providers/dao/DaoAuthenticationProvider.java @@ -194,8 +194,10 @@ public class DaoAuthenticationProvider implements AuthenticationProvider, } } + // Ensure we return the original credentials the user supplied, + // so subsequent attempts are successful even with encoded passwords return new UsernamePasswordAuthenticationToken(user.getUsername(), - user.getPassword(), user.getAuthorities()); + authentication.getCredentials(), user.getAuthorities()); } public boolean supports(Class authentication) { diff --git a/core/src/test/java/org/acegisecurity/providers/dao/DaoAuthenticationProviderTests.java b/core/src/test/java/org/acegisecurity/providers/dao/DaoAuthenticationProviderTests.java index 6941bc4d6d..8898aaf240 100644 --- a/core/src/test/java/org/acegisecurity/providers/dao/DaoAuthenticationProviderTests.java +++ b/core/src/test/java/org/acegisecurity/providers/dao/DaoAuthenticationProviderTests.java @@ -193,7 +193,9 @@ public class DaoAuthenticationProviderTests extends TestCase { UsernamePasswordAuthenticationToken castResult = (UsernamePasswordAuthenticationToken) result; assertEquals("marissa", castResult.getPrincipal()); - assertEquals("koala{SYSTEM_SALT_VALUE}", castResult.getCredentials()); + + // We expect original credentials user submitted to be returned + assertEquals("koala", castResult.getCredentials()); assertEquals("ROLE_ONE", castResult.getAuthorities()[0].getAuthority()); assertEquals("ROLE_TWO", castResult.getAuthorities()[1].getAuthority()); } diff --git a/samples/contacts/etc/filter/applicationContext.xml b/samples/contacts/etc/filter/applicationContext.xml index ddbb18a1ab..b5886c5b19 100644 --- a/samples/contacts/etc/filter/applicationContext.xml +++ b/samples/contacts/etc/filter/applicationContext.xml @@ -29,21 +29,29 @@ - + + - marissa=koala,ROLE_TELLER,ROLE_SUPERVISOR - dianne=emu,ROLE_TELLER - scott=wombat,ROLE_TELLER - peter=opal,disabled,ROLE_TELLER + marissa=a564de63c2d0da68cf47586ee05984d7,ROLE_TELLER,ROLE_SUPERVISOR + dianne=65d15fe9156f9c4bbffd98085992a44e,ROLE_TELLER + scott=2b58af6dddbd072ed27ffc86725d7d3a,ROLE_TELLER + peter=22b5c9accc6e1ba628cedc63a72d57f8,disabled,ROLE_TELLER + + +