diff --git a/src/main/java/org/springframework/samples/petclinic/security/Encoders.java b/src/main/java/org/springframework/samples/petclinic/security/Encoders.java new file mode 100644 index 0000000000000000000000000000000000000000..6d34c81a2d84b8d06712de44b20580668593ca23 --- /dev/null +++ b/src/main/java/org/springframework/samples/petclinic/security/Encoders.java @@ -0,0 +1,21 @@ +package org.springframework.samples.petclinic.security; + +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 Encoders { + + @Bean + public PasswordEncoder oauthClientPasswordEncoder() { + return new BCryptPasswordEncoder(4); + } + + @Bean + public PasswordEncoder userPasswordEncoder() { + return new BCryptPasswordEncoder(8); + } + +} diff --git a/src/main/java/org/springframework/samples/petclinic/security/ServerSecurityConfig.java b/src/main/java/org/springframework/samples/petclinic/security/ServerSecurityConfig.java new file mode 100644 index 0000000000000000000000000000000000000000..cc5894a13ad224026df73cc1f7f9b1960704d49c --- /dev/null +++ b/src/main/java/org/springframework/samples/petclinic/security/ServerSecurityConfig.java @@ -0,0 +1,39 @@ +package org.springframework.samples.petclinic.security; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.autoconfigure.security.SecurityProperties; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Import; +import org.springframework.core.annotation.Order; +import org.springframework.security.authentication.AuthenticationManager; +import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder; +import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; +import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; +import org.springframework.security.core.userdetails.UserDetailsService; +import org.springframework.security.crypto.password.PasswordEncoder; + +@Configuration +@EnableWebSecurity +@Order(SecurityProperties.ACCESS_OVERRIDE_ORDER) +@Import(Encoders.class) +public class ServerSecurityConfig extends WebSecurityConfigurerAdapter { + + @Autowired + private UserDetailsService userDetailsService; + + @Autowired + private PasswordEncoder userPasswordEncoder; + + @Override + @Bean + public AuthenticationManager authenticationManagerBean() throws Exception { + return super.authenticationManagerBean(); + } + + @Override + protected void configure(AuthenticationManagerBuilder auth) throws Exception { + auth.userDetailsService(userDetailsService).passwordEncoder(userPasswordEncoder); + } + +}