FEAT: Auth useing encrypted credentials in DB

This commit is contained in:
2026-06-16 13:53:58 +02:00
parent 0f4de8f859
commit 835ad93bac
8 changed files with 188 additions and 22 deletions

View File

@@ -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);
}
};
}
}

View File

@@ -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);
}
}