From d89866aca78977b06bf1cd37bbd042465e9baf82 Mon Sep 17 00:00:00 2001 From: kwoyke Date: Fri, 19 Jun 2020 15:02:53 +0200 Subject: [PATCH] BAEL-4282: Create PasswordEncoderConfiguration to fix the circular dependency issues (#9521) --- .../PasswordEncoderConfiguration.java | 15 +++++++++++++++ .../loginextrafieldscustom/SecurityConfig.java | 9 ++++----- .../PasswordEncoderConfiguration.java | 15 +++++++++++++++ .../loginextrafieldssimple/SecurityConfig.java | 9 ++++----- .../LoginFieldsFullIntegrationTest.java | 2 +- .../LoginFieldsSimpleIntegrationTest.java | 2 +- 6 files changed, 40 insertions(+), 12 deletions(-) create mode 100644 spring-5-security/src/main/java/com/baeldung/loginextrafieldscustom/PasswordEncoderConfiguration.java create mode 100644 spring-5-security/src/main/java/com/baeldung/loginextrafieldssimple/PasswordEncoderConfiguration.java diff --git a/spring-5-security/src/main/java/com/baeldung/loginextrafieldscustom/PasswordEncoderConfiguration.java b/spring-5-security/src/main/java/com/baeldung/loginextrafieldscustom/PasswordEncoderConfiguration.java new file mode 100644 index 0000000000..663a005d5b --- /dev/null +++ b/spring-5-security/src/main/java/com/baeldung/loginextrafieldscustom/PasswordEncoderConfiguration.java @@ -0,0 +1,15 @@ +package com.baeldung.loginextrafieldscustom; + +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.PasswordEncoder; + +@Configuration +public class PasswordEncoderConfiguration { + + @Bean + public PasswordEncoder passwordEncoder() { + return new BCryptPasswordEncoder(); + } +} diff --git a/spring-5-security/src/main/java/com/baeldung/loginextrafieldscustom/SecurityConfig.java b/spring-5-security/src/main/java/com/baeldung/loginextrafieldscustom/SecurityConfig.java index 88380f1ed6..e7b56e5763 100644 --- a/spring-5-security/src/main/java/com/baeldung/loginextrafieldscustom/SecurityConfig.java +++ b/spring-5-security/src/main/java/com/baeldung/loginextrafieldscustom/SecurityConfig.java @@ -20,6 +20,9 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter { @Autowired private CustomUserDetailsService userDetailsService; + @Autowired + private PasswordEncoder passwordEncoder; + @Override protected void configure(HttpSecurity http) throws Exception { @@ -49,7 +52,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter { public AuthenticationProvider authProvider() { CustomUserDetailsAuthenticationProvider provider - = new CustomUserDetailsAuthenticationProvider(passwordEncoder(), userDetailsService); + = new CustomUserDetailsAuthenticationProvider(passwordEncoder, userDetailsService); return provider; } @@ -57,8 +60,4 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter { return new SimpleUrlAuthenticationFailureHandler("/login?error=true"); } - @Bean - public PasswordEncoder passwordEncoder() { - return new BCryptPasswordEncoder(); - } } diff --git a/spring-5-security/src/main/java/com/baeldung/loginextrafieldssimple/PasswordEncoderConfiguration.java b/spring-5-security/src/main/java/com/baeldung/loginextrafieldssimple/PasswordEncoderConfiguration.java new file mode 100644 index 0000000000..b96a54d00a --- /dev/null +++ b/spring-5-security/src/main/java/com/baeldung/loginextrafieldssimple/PasswordEncoderConfiguration.java @@ -0,0 +1,15 @@ +package com.baeldung.loginextrafieldssimple; + +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.PasswordEncoder; + +@Configuration +public class PasswordEncoderConfiguration { + + @Bean + public PasswordEncoder passwordEncoder() { + return new BCryptPasswordEncoder(); + } +} diff --git a/spring-5-security/src/main/java/com/baeldung/loginextrafieldssimple/SecurityConfig.java b/spring-5-security/src/main/java/com/baeldung/loginextrafieldssimple/SecurityConfig.java index 48ca53c0b2..6d3d51ad30 100644 --- a/spring-5-security/src/main/java/com/baeldung/loginextrafieldssimple/SecurityConfig.java +++ b/spring-5-security/src/main/java/com/baeldung/loginextrafieldssimple/SecurityConfig.java @@ -22,6 +22,9 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter { @Autowired private UserDetailsService userDetailsService; + @Autowired + private PasswordEncoder passwordEncoder; + @Override protected void configure(HttpSecurity http) throws Exception { @@ -52,7 +55,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter { public AuthenticationProvider authProvider() { DaoAuthenticationProvider provider = new DaoAuthenticationProvider(); provider.setUserDetailsService(userDetailsService); - provider.setPasswordEncoder(passwordEncoder()); + provider.setPasswordEncoder(passwordEncoder); return provider; } @@ -60,8 +63,4 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter { return new SimpleUrlAuthenticationFailureHandler("/login?error=true"); } - @Bean - public PasswordEncoder passwordEncoder() { - return new BCryptPasswordEncoder(); - } } diff --git a/spring-5-security/src/test/java/com/baeldung/loginextrafields/LoginFieldsFullIntegrationTest.java b/spring-5-security/src/test/java/com/baeldung/loginextrafields/LoginFieldsFullIntegrationTest.java index 20826eb9d7..54aece3b03 100644 --- a/spring-5-security/src/test/java/com/baeldung/loginextrafields/LoginFieldsFullIntegrationTest.java +++ b/spring-5-security/src/test/java/com/baeldung/loginextrafields/LoginFieldsFullIntegrationTest.java @@ -66,7 +66,7 @@ public class LoginFieldsFullIntegrationTest extends AbstractExtraLoginFieldsInte private User getUser() { Collection authorities = new ArrayList<>(); - return new User("myusername", "mydomain", "password", true, true, true, true, authorities); + return new User("myusername", "mydomain", "secret", true, true, true, true, authorities); } } diff --git a/spring-5-security/src/test/java/com/baeldung/loginextrafields/LoginFieldsSimpleIntegrationTest.java b/spring-5-security/src/test/java/com/baeldung/loginextrafields/LoginFieldsSimpleIntegrationTest.java index 3d0e2a8d09..63167b04fa 100644 --- a/spring-5-security/src/test/java/com/baeldung/loginextrafields/LoginFieldsSimpleIntegrationTest.java +++ b/spring-5-security/src/test/java/com/baeldung/loginextrafields/LoginFieldsSimpleIntegrationTest.java @@ -66,7 +66,7 @@ public class LoginFieldsSimpleIntegrationTest extends AbstractExtraLoginFieldsIn private User getUser() { Collection authorities = new ArrayList<>(); - return new User("myusername", "mydomain", "password", true, true, true, true, authorities); + return new User("myusername", "mydomain", "secret", true, true, true, true, authorities); } }