Browse Source

Add SHA-256 to PasswordEncoderFactories

Issue: gh-4674
Rob Winch 7 years ago
parent
commit
d83f4c4aa5

+ 2 - 0
crypto/src/main/java/org/springframework/security/crypto/factory/PasswordEncoderFactories.java

@@ -50,6 +50,7 @@ public class PasswordEncoderFactories {
 	 * <li>pbkdf2 - {@link Pbkdf2PasswordEncoder}</li>
 	 * <li>pbkdf2 - {@link Pbkdf2PasswordEncoder}</li>
 	 * <li>scrypt - {@link SCryptPasswordEncoder}</li>
 	 * <li>scrypt - {@link SCryptPasswordEncoder}</li>
 	 * <li>SHA-1 - {@code new MessageDigestPasswordEncoder("SHA-1")}</li>
 	 * <li>SHA-1 - {@code new MessageDigestPasswordEncoder("SHA-1")}</li>
+	 * <li>SHA-256 - {@code new MessageDigestPasswordEncoder("SHA-256")}</li>
 	 * <li>sha256 - {@link StandardPasswordEncoder}</li>
 	 * <li>sha256 - {@link StandardPasswordEncoder}</li>
 	 * </ul>
 	 * </ul>
 	 *
 	 *
@@ -65,6 +66,7 @@ public class PasswordEncoderFactories {
 		encoders.put("pbkdf2", new Pbkdf2PasswordEncoder());
 		encoders.put("pbkdf2", new Pbkdf2PasswordEncoder());
 		encoders.put("scrypt", new SCryptPasswordEncoder());
 		encoders.put("scrypt", new SCryptPasswordEncoder());
 		encoders.put("SHA-1", new MessageDigestPasswordEncoder("SHA-1"));
 		encoders.put("SHA-1", new MessageDigestPasswordEncoder("SHA-1"));
+		encoders.put("SHA-256", new MessageDigestPasswordEncoder("SHA-256"));
 		encoders.put("sha256", new StandardPasswordEncoder());
 		encoders.put("sha256", new StandardPasswordEncoder());
 
 
 		return new DelegatingPasswordEncoder(encodingId, encoders);
 		return new DelegatingPasswordEncoder(encodingId, encoders);

+ 6 - 0
crypto/src/test/java/org/springframework/security/crypto/factory/PasswordEncoderFactoriesTests.java

@@ -80,6 +80,12 @@ public class PasswordEncoderFactoriesTests {
 		assertThat(this.encoder.matches(this.rawPassword, encodedPassword)).isTrue();
 		assertThat(this.encoder.matches(this.rawPassword, encodedPassword)).isTrue();
 	}
 	}
 
 
+	@Test
+	public void matchesWhenSHA256ThenWorks() {
+		String encodedPassword = "{SHA-256}{UisHp3pFSMqcqrhQsrhR+hspIG0SyMDyDW/XtY+t6nA=}a98efbaf59277bfd1837c33fd4fde67de5bcfd2205bcba0992f6fc32b03a8f88";
+		assertThat(this.encoder.matches(this.rawPassword, encodedPassword)).isTrue();
+	}
+
 	@Test
 	@Test
 	public void matchesWhenSha256ThenWorks() {
 	public void matchesWhenSha256ThenWorks() {
 		String encodedPassword = "{sha256}97cde38028ad898ebc02e690819fa220e88c62e0699403e94fff291cfffaf8410849f27605abcbc0";
 		String encodedPassword = "{sha256}97cde38028ad898ebc02e690819fa220e88c62e0699403e94fff291cfffaf8410849f27605abcbc0";