All checks were successful
continuous-integration/drone/push Build is passing
52 lines
1.9 KiB
Java
52 lines
1.9 KiB
Java
package wtf.beatrice.releasehive.config;
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.context.annotation.Bean;
|
|
import org.springframework.context.annotation.Configuration;
|
|
import org.springframework.security.authentication.AuthenticationManager;
|
|
import org.springframework.security.authentication.AuthenticationProvider;
|
|
import org.springframework.security.authentication.dao.DaoAuthenticationProvider;
|
|
import org.springframework.security.config.annotation.authentication.configuration.AuthenticationConfiguration;
|
|
import org.springframework.security.core.userdetails.UserDetailsService;
|
|
import org.springframework.security.core.userdetails.UsernameNotFoundException;
|
|
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
|
|
import wtf.beatrice.releasehive.repositories.UserRepository;
|
|
|
|
@Configuration
|
|
public class ApplicationConfiguration
|
|
{
|
|
|
|
private final UserRepository userRepository;
|
|
|
|
public ApplicationConfiguration(@Autowired UserRepository userRepository) {
|
|
this.userRepository = userRepository;
|
|
}
|
|
|
|
@Bean
|
|
UserDetailsService userDetailsService() {
|
|
return authParameter -> userRepository.findByEmail(authParameter)
|
|
.orElseThrow(() -> new UsernameNotFoundException("User not found"));
|
|
}
|
|
|
|
@Bean
|
|
BCryptPasswordEncoder passwordEncoder() {
|
|
return new BCryptPasswordEncoder();
|
|
}
|
|
|
|
@Bean
|
|
public AuthenticationManager authenticationManager(AuthenticationConfiguration config) throws Exception {
|
|
return config.getAuthenticationManager();
|
|
}
|
|
|
|
@Bean
|
|
AuthenticationProvider authenticationProvider() {
|
|
DaoAuthenticationProvider authProvider = new DaoAuthenticationProvider();
|
|
|
|
authProvider.setUserDetailsService(userDetailsService());
|
|
authProvider.setPasswordEncoder(passwordEncoder());
|
|
|
|
return authProvider;
|
|
}
|
|
|
|
}
|