From ffa9ac6d5ec1df8160f76ef797afca84e765f6c7 Mon Sep 17 00:00:00 2001 From: akuksin Date: Tue, 25 Feb 2020 20:12:30 +0100 Subject: [PATCH] simplify the configuration --- .../authentication/UserDetailsMapper.java | 12 +++--- .../configuration/SecurityConfiguration.java | 37 +++++++------------ .../resources/CarResources.java | 4 +- 3 files changed, 21 insertions(+), 32 deletions(-) diff --git a/spring-boot/password-encoding/src/main/java/io/reflectoring/passwordencoding/authentication/UserDetailsMapper.java b/spring-boot/password-encoding/src/main/java/io/reflectoring/passwordencoding/authentication/UserDetailsMapper.java index ccb60a7..cfff46d 100644 --- a/spring-boot/password-encoding/src/main/java/io/reflectoring/passwordencoding/authentication/UserDetailsMapper.java +++ b/spring-boot/password-encoding/src/main/java/io/reflectoring/passwordencoding/authentication/UserDetailsMapper.java @@ -7,11 +7,11 @@ import org.springframework.stereotype.Component; @Component public class UserDetailsMapper { - UserDetails toUserDetails(UserCredentials userCredentials) { + UserDetails toUserDetails(UserCredentials userCredentials) { - return User.withUsername(userCredentials.getUsername()) - .password(userCredentials.getPassword()) - .roles(userCredentials.getRoles().toArray(String[]::new)) - .build(); - } + return User.withUsername(userCredentials.getUsername()) + .password(userCredentials.getPassword()) + .roles(userCredentials.getRoles().toArray(String[]::new)) + .build(); + } } diff --git a/spring-boot/password-encoding/src/main/java/io/reflectoring/passwordencoding/configuration/SecurityConfiguration.java b/spring-boot/password-encoding/src/main/java/io/reflectoring/passwordencoding/configuration/SecurityConfiguration.java index fe147b9..4f70e85 100644 --- a/spring-boot/password-encoding/src/main/java/io/reflectoring/passwordencoding/configuration/SecurityConfiguration.java +++ b/spring-boot/password-encoding/src/main/java/io/reflectoring/passwordencoding/configuration/SecurityConfiguration.java @@ -2,19 +2,16 @@ package io.reflectoring.passwordencoding.configuration; import io.reflectoring.passwordencoding.authentication.JdbcUserDetailPasswordService; import io.reflectoring.passwordencoding.authentication.JdbcUserDetailsService; -import io.reflectoring.passwordencoding.authentication.UserDetailsMapper; -import io.reflectoring.passwordencoding.authentication.UserRepository; import io.reflectoring.passwordencoding.workfactor.BcCryptWorkFactorService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.security.authentication.AuthenticationProvider; import org.springframework.security.authentication.dao.DaoAuthenticationProvider; import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; -import org.springframework.security.core.userdetails.UserDetailsPasswordService; -import org.springframework.security.core.userdetails.UserDetailsService; import org.springframework.security.crypto.argon2.Argon2PasswordEncoder; import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; import org.springframework.security.crypto.password.DelegatingPasswordEncoder; @@ -29,17 +26,17 @@ import java.util.Map; @EnableWebSecurity public class SecurityConfiguration extends WebSecurityConfigurerAdapter { - private final UserRepository userRepository; - private final UserDetailsMapper userDetailsMapper; private final BcCryptWorkFactorService bcCryptWorkFactorService; + private final JdbcUserDetailsService jdbcUserDetailsService; + private final JdbcUserDetailPasswordService jdbcUserDetailPasswordService; public SecurityConfiguration( - UserRepository userRepository, - UserDetailsMapper userDetailsMapper, - BcCryptWorkFactorService bcCryptWorkFactorService) { - this.userRepository = userRepository; - this.userDetailsMapper = userDetailsMapper; + BcCryptWorkFactorService bcCryptWorkFactorService, + JdbcUserDetailsService jdbcUserDetailsService, + JdbcUserDetailPasswordService jdbcUserDetailPasswordService) { this.bcCryptWorkFactorService = bcCryptWorkFactorService; + this.jdbcUserDetailsService = jdbcUserDetailsService; + this.jdbcUserDetailPasswordService = jdbcUserDetailPasswordService; } @Override @@ -60,7 +57,8 @@ public class SecurityConfiguration extends WebSecurityConfigurerAdapter { @Autowired public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception { - auth.authenticationProvider(daoAuthenticationProvider()).eraseCredentials(false); + auth.authenticationProvider(daoAuthenticationProvider()) + .eraseCredentials(false); } @Bean @@ -83,21 +81,12 @@ public class SecurityConfiguration extends WebSecurityConfigurerAdapter { return new DelegatingPasswordEncoder(encodingId, encoders); } - @Bean - public UserDetailsPasswordService userDetailsPasswordService() { - return new JdbcUserDetailPasswordService(userRepository, userDetailsMapper); - } - public UserDetailsService userDetailsService() { - return new JdbcUserDetailsService(userRepository, userDetailsMapper); - } - - @Bean - public DaoAuthenticationProvider daoAuthenticationProvider() { + public AuthenticationProvider daoAuthenticationProvider() { DaoAuthenticationProvider daoAuthenticationProvider = new DaoAuthenticationProvider(); daoAuthenticationProvider.setPasswordEncoder(passwordEncoder()); - daoAuthenticationProvider.setUserDetailsPasswordService(userDetailsPasswordService()); - daoAuthenticationProvider.setUserDetailsService(userDetailsService()); + daoAuthenticationProvider.setUserDetailsPasswordService(this.jdbcUserDetailPasswordService); + daoAuthenticationProvider.setUserDetailsService(this.jdbcUserDetailsService); return daoAuthenticationProvider; } } diff --git a/spring-boot/password-encoding/src/main/java/io/reflectoring/passwordencoding/resources/CarResources.java b/spring-boot/password-encoding/src/main/java/io/reflectoring/passwordencoding/resources/CarResources.java index 51f9854..9d74b89 100644 --- a/spring-boot/password-encoding/src/main/java/io/reflectoring/passwordencoding/resources/CarResources.java +++ b/spring-boot/password-encoding/src/main/java/io/reflectoring/passwordencoding/resources/CarResources.java @@ -12,7 +12,7 @@ public class CarResources { @GetMapping("/cars") public Set cars() { return Set.of( - Car.builder().name("vw").color("black").build(), - Car.builder().name("bmw").color("white").build()); + new Car("vw", "black"), + new Car("bmw", "white")); } }