Spring Security/security

Spring security - 1. Spring security에 대해

Ssemi-Column 2023. 11. 8. 13:45
728x90
  1. Spring security
    • Spring에서 어플리케이션의 인증과 인가를 담당하는 Spring의 하위 보안 프레임 워크.
    • Spring security에서 인증과 인가는 서블릿컨테이너 안에서 DispatchServlet으로 가기전에 filter chain에서 동작.
      출처 : https://velog.io/@seongwon97/Spring-Security-Filter%EB%9E%80
    • filter chain은 Security 설정으로 사용자가 addFilter() 라는 메소드를 통해 설정 할 수 있다.
  2. 인증과 인가
    • 인증(Authentication)
      • 인증은 우리 서버에 맞는 사용자인지 확인하는 절차.
      • ID, PW로 확인하거나 OAuth라는 개방형 인증 절차를 통해 확인함.
      • 인증된 사용자는 등록된 정보에 맞게 권한을 부여받음. (User, Admin 등)
    • 인가(Authorization)
      • 인증된 사용자에 대한 권한을 확인하고 어떠한 서비스를 사용 할 수 있는지 확인하는 절차.
  3. Spring security filter 
    • Spring 6 미만 버전에서는 WebSecurityConfigurationAdapter를 상속받아 만든 Configuration class에 오버라이드로 전달받은 HttpSecurity를 가지고 filter들을 설정한다. 
      • 출처 : https://gngsn.tistory.com/160
      • DelegatingFilterProxy에서 사용자의 인증요청을 받아 FilterChainProxy에 보내고 FilterChainProxy는 HttpSecurity 에서 설정한 url path에 대한 각각의 filter 설정들을 통해 해당 사용자를 인증한다.
      • FilterSecurityInterceptor는 인증받은 사용자가 자원을 사용 할 때 인가에 대한 처리를 한다.
      • 각 필터들에 대한 순서는 https://gngsn.tistory.com/160 에 잘 적혀있다. (공부..)
    • Spring 6버전 부터는 WebSecurityConfigurationAdapter를 상속받아 Override 하지 않고, 빈으로 SecurityFilterChain 을 구현하여 등록하는 것으로 바뀌었다. ( WebSecurityConfigurationAdapter 없어짐)

- 사용방법이 크게 달라지긴 했지만 내부 구현 코드는 비슷하여 그나마 최신버전인 Spring 6 이상버전으로 코딩할 예정

728x90
반응형
LIST