TIL: 2024/06/21

White 와잇·2024년 6월 21일

TIL

목록 보기
39/40
post-thumbnail

Spring Security

기본 #keyword

  • AuthenticationManager: 사용자 정보를 받아 시큐리티 서비스에 제공함
  • SecurityFilterChain: 시큐리티가 기본적으로 동작하는 방법은 필터 체이닝 형식임. 전반적인 시큐리티 서비스들이 정해진 순서에 맞게 필터링 됨
  • UsernamePasswordAuthenticationToken: 사용자 인증정보를 담는 저장 토큰. Authentication의 종류 중 하나.
  • SecurityContext: 인증이 되면 사용자 정보를 저장하는 컨텍스트

구현

Spring에서 기본적인 Security 구현 방법에서 다음 세 가지가 정의될 수 있다.

1. Security Config 설정 클래스

  • @EnableWebSecurity 반드시 필요함
  • @Configuration Bean의 수동 등록이 필요함
  • SecurityFilterChain 을 통한 다양한 시큐리티 설정이 가능함
  • 주로 사용하는 시큐리티 설정 중에는 필터를 적용할 api url path를 지정할 수 있다.
  • 사용자 정의 필터를 추가 설정할 수 있다.

2. UserDetailsService 구현 클래스

  • AuthenticationManager에 의해 사용자 컨텍스트를 가지고 시큐리티 로직을 정의할 수 있다. (오버라이딩)
  • 예시로, 로그인 인증할 때 서비스 로직에 맞게 다음과 같은 메서드를 오버라이딩 할 수 있다.
@Override
public UserDetails loadUserByUsername(String username)

3. UserDetails 구현 클래스

  • UserDetailsService 로부터 사용자 인증/인가에 필요한 사용자 정보를 요청할 때 필요하다.
  • 서비스 로직에 맞는 User 엔티티 등을 멤버변수로 가지며,
    사용자 요청한 정보를 컨텍스트에 저장하기 위해 저장하거나 얻을 수 있는 클래스이다.
  • 마찬가지로 로직에 맞는 필요한 메서드를 오버라이딩, 재정의한다.
profile
웹개발 도전! 데브옵스 도전!

0개의 댓글