From e61b157057768d60661e6dcee1eec1587895be60 Mon Sep 17 00:00:00 2001 From: Holger Steinhauer Date: Wed, 7 Feb 2018 21:13:00 +0000 Subject: [PATCH] BAEL-1489: Applying Baeldung code styles and cleaning up --- .../BaeldungPasswordEncoderSetup.java | 33 +++++++++++++++ .../passwordstorage/Rot13PasswordEncoder.java | 34 ++++++++-------- .../Rot13PasswordEncoderTest.java | 40 +++++++++---------- 3 files changed, 71 insertions(+), 36 deletions(-) create mode 100644 spring-5-security/src/main/java/com/baeldung/passwordstorage/BaeldungPasswordEncoderSetup.java diff --git a/spring-5-security/src/main/java/com/baeldung/passwordstorage/BaeldungPasswordEncoderSetup.java b/spring-5-security/src/main/java/com/baeldung/passwordstorage/BaeldungPasswordEncoderSetup.java new file mode 100644 index 0000000000..89eeb0f826 --- /dev/null +++ b/spring-5-security/src/main/java/com/baeldung/passwordstorage/BaeldungPasswordEncoderSetup.java @@ -0,0 +1,33 @@ +package com.baeldung.passwordstorage; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; +import org.springframework.security.crypto.password.DelegatingPasswordEncoder; +import org.springframework.security.crypto.password.PasswordEncoder; +import org.springframework.security.crypto.scrypt.SCryptPasswordEncoder; + +import java.util.HashMap; +import java.util.Map; + +@Configuration +public class BaeldungPasswordEncoderSetup { + + @Bean + public PasswordEncoder passwordEncoder() { + // set up the list of supported encoders and their prefixes + String encodingId = "rot13"; + Map encoders = new HashMap<>(); + encoders.put(encodingId, new Rot13PasswordEncoder()); + encoders.put("scrypt", new SCryptPasswordEncoder()); + encoders.put("bcrypt", new BCryptPasswordEncoder()); + + // get an instance of the DelegatingPasswordEncoder, set up to use our instance as default encoder + DelegatingPasswordEncoder delegatingPasswordEncoder = new DelegatingPasswordEncoder(encodingId, encoders); + + // configure our instance as default encoder for actual matching + delegatingPasswordEncoder.setDefaultPasswordEncoderForMatches(encoders.get(encodingId)); + + return delegatingPasswordEncoder; + } +} diff --git a/spring-5-security/src/main/java/com/baeldung/passwordstorage/Rot13PasswordEncoder.java b/spring-5-security/src/main/java/com/baeldung/passwordstorage/Rot13PasswordEncoder.java index 85cf987e1d..52de412de7 100644 --- a/spring-5-security/src/main/java/com/baeldung/passwordstorage/Rot13PasswordEncoder.java +++ b/spring-5-security/src/main/java/com/baeldung/passwordstorage/Rot13PasswordEncoder.java @@ -9,22 +9,24 @@ import org.springframework.security.crypto.password.PasswordEncoder; */ public class Rot13PasswordEncoder implements PasswordEncoder { - @Override - public String encode(CharSequence rawPassword) { - StringBuffer result = new StringBuffer(rawPassword.length()); - rawPassword.chars().forEach(charCode -> { - if (charCode >= 65 && charCode <= 77 || charCode >= 97 && charCode <= 109) { - result.append(Character.toChars(charCode + 13)); - } else if (charCode >= 78 && charCode <= 90 || charCode >= 110 && charCode <= 133) { - result.append(Character.toChars(charCode - 13)); - } - }); + @Override + public String encode(CharSequence rawPassword) { + StringBuffer result = new StringBuffer(rawPassword.length()); + rawPassword + .chars() + .forEach(charCode -> { + if (charCode >= 65 && charCode <= 77 || charCode >= 97 && charCode <= 109) { + result.append(Character.toChars(charCode + 13)); + } else if (charCode >= 78 && charCode <= 90 || charCode >= 110 && charCode <= 133) { + result.append(Character.toChars(charCode - 13)); + } + }); - return result.toString(); - } + return result.toString(); + } - @Override - public boolean matches(CharSequence rawPassword, String encodedPassword) { - return encode(rawPassword).equals(encodedPassword); - } + @Override + public boolean matches(CharSequence rawPassword, String encodedPassword) { + return encode(rawPassword).equals(encodedPassword); + } } diff --git a/spring-5-security/src/test/java/com/baeldung/passwordstorage/Rot13PasswordEncoderTest.java b/spring-5-security/src/test/java/com/baeldung/passwordstorage/Rot13PasswordEncoderTest.java index 08221e0185..fce83a33df 100644 --- a/spring-5-security/src/test/java/com/baeldung/passwordstorage/Rot13PasswordEncoderTest.java +++ b/spring-5-security/src/test/java/com/baeldung/passwordstorage/Rot13PasswordEncoderTest.java @@ -7,30 +7,30 @@ import static org.junit.Assert.assertThat; public class Rot13PasswordEncoderTest { - private final Rot13PasswordEncoder encoder = new Rot13PasswordEncoder(); + private final Rot13PasswordEncoder encoder = new Rot13PasswordEncoder(); - @Test - public void given_theEncodedPassword_should_returnTheClearTextPassword() { - String password = "baeldung"; - String encoded = encoder.encode(password); - String actualResult = encoder.encode(encoded); + @Test + public void given_theEncodedPassword_should_returnTheClearTextPassword() { + String password = "baeldung"; + String encoded = encoder.encode(password); + String actualResult = encoder.encode(encoded); - assertThat(actualResult, is(password)); - } + assertThat(actualResult, is(password)); + } - @Test - public void given_correctPassword_should_returnTrue() { - String password = "baeldung"; - String encoded = encoder.encode(password); - boolean actualResult = encoder.matches(password, encoded); + @Test + public void given_correctPassword_should_returnTrue() { + String password = "baeldung"; + String encoded = encoder.encode(password); + boolean actualResult = encoder.matches(password, encoded); - assertThat(actualResult, is(true)); - } + assertThat(actualResult, is(true)); + } - @Test - public void given_incorrectPassword_should_returnFalse() { - boolean actualResult = encoder.matches("baeldung", "spring"); + @Test + public void given_incorrectPassword_should_returnFalse() { + boolean actualResult = encoder.matches("baeldung", "spring"); - assertThat(actualResult, is(false)); - } + assertThat(actualResult, is(false)); + } } \ No newline at end of file