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
+
+
+