FEAT: Auth useing encrypted credentials in DB
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
package com.mallardromain.hotel.config;
|
||||
import org.springframework.boot.CommandLineRunner;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.security.crypto.password.PasswordEncoder;
|
||||
|
||||
import com.mallardromain.hotel.model.User;
|
||||
import com.mallardromain.hotel.repository.UserRepository;
|
||||
|
||||
import io.jsonwebtoken.security.Password;
|
||||
|
||||
@Configuration
|
||||
public class DatabaseSeeder {
|
||||
|
||||
@Bean
|
||||
public CommandLineRunner seedDatabase(UserRepository userRepository, PasswordEncoder passwordEncoder) {
|
||||
return args -> {
|
||||
if (userRepository.count() == 0) {
|
||||
User testUser1 = new User("test1", passwordEncoder.encode("password1"));
|
||||
User testUser2 = new User("test2", passwordEncoder.encode("password2"));
|
||||
|
||||
userRepository.save(testUser1);
|
||||
userRepository.save(testUser2);
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -2,8 +2,15 @@ package com.mallardromain.hotel.config;
|
||||
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.security.authentication.AuthenticationManager;
|
||||
import org.springframework.security.authentication.ProviderManager;
|
||||
import org.springframework.security.authentication.dao.DaoAuthenticationProvider;
|
||||
import org.springframework.security.config.annotation.authentication.configuration.AuthenticationConfiguration;
|
||||
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
|
||||
import org.springframework.security.config.http.SessionCreationPolicy;
|
||||
import org.springframework.security.core.userdetails.UserDetailsService;
|
||||
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
|
||||
import org.springframework.security.crypto.password.PasswordEncoder;
|
||||
import org.springframework.security.web.SecurityFilterChain;
|
||||
import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter;
|
||||
|
||||
@@ -39,4 +46,24 @@ public class SecurityConfig {
|
||||
return http.build();
|
||||
}
|
||||
|
||||
|
||||
@Bean
|
||||
public PasswordEncoder passwordEncoder() {
|
||||
return new BCryptPasswordEncoder();
|
||||
}
|
||||
|
||||
@Bean
|
||||
public AuthenticationManager authenticationManager(
|
||||
AuthenticationConfiguration config,
|
||||
UserDetailsService userDetailsService,
|
||||
PasswordEncoder passwordEncoder
|
||||
) throws Exception {
|
||||
|
||||
DaoAuthenticationProvider authProvider = new DaoAuthenticationProvider(userDetailsService);
|
||||
authProvider.setPasswordEncoder(passwordEncoder);
|
||||
|
||||
return new ProviderManager(authProvider);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user