1 package com.codecool.bytebattlers.config; 2 3 import com.codecool.bytebattlers.service.AppUserDetailService; 4 import lombok.RequiredArgsConstructor; 5 import org.springframework.context.annotation.Bean; 6 import org.springframework.context.annotation.Configuration; 7 import org.springframework.security.authentication.AuthenticationManager; 8 import org.springframework.security.authentication.AuthenticationProvider; 9 import org.springframework.security.authentication.dao.DaoAuthenticationProvider; 10 import org.springframework.security.config.annotation.authentication.configuration.AuthenticationConfiguration; 11 import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; 12 import org.springframework.security.crypto.password.PasswordEncoder; 13 14 @Configuration 15 @RequiredArgsConstructor 16 public class ApplicationConfig { 17 18 private final AppUserDetailService appUserDetailService; 19 20 @Bean 21 public AuthenticationProvider authenticationProvider() { 22 DaoAuthenticationProvider authProvider = new DaoAuthenticationProvider(); 23 authProvider.setUserDetailsService(appUserDetailService); 24 authProvider.setPasswordEncoder(passwordEncoder()); 25 return authProvider; 26 } 27 28 @Bean 29 public AuthenticationManager manager(AuthenticationConfiguration config) throws Exception { 30 return config.getAuthenticationManager(); 31 } 32 33 @Bean 34 public PasswordEncoder passwordEncoder() { 35 return new BCryptPasswordEncoder(); 36 } 37 }