[Security] 사용자 정의 보안 기능 구현

정석·2024년 9월 28일

Spring

목록 보기
18/21
post-thumbnail

방법 1. SecurityConfig 클래스 생성

@EnableWebSecurity
@Configuration
public class SecurityConfig {

    @Bean
    public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
        http
                .authorizeHttpRequests(auth -> auth.anyRequest().authenticated())
                .formLogin(Customizer.withDefaults());

        return http.build();
    }

    @Bean
    public UserDetailsService userDetailsService() {
        UserDetails user = User.withUsername("user")
                .password("{noop}asdf")
                .roles("USER").build();

        return new InMemoryUserDetailsManager(user);
    }
}
  • securityFilterChain 빈 등록: 들어오는 모든 요청을 인증 처리.
  • UserDetailsService: Spring Security에서 제공하는 UserDetailsService를 사용하여 새로운 유저 객체를 생성함.
    • {noop}은 비밀번호를 암호화하지 않음을 의미.
    • InMemoryUserDetailsManager를 통해 메모리에 사용자 정보를 저장하여 관리함.

방법 2. application.yml에 설정 추가

spring:
  security:
    user:
      name: user
      password: 1111
      roles: USER
  • YAML 설정을 사용하여 사용자 설정: Spring Boot의 application.yml 파일에서 사용자 이름, 비밀번호, 역할을 설정할 수 있음.

0개의 댓글