본문 바로가기

Study/BackEnd

[Spring Security] 인가

인가 (Authorize)

  • 애플리케이션에서 사용자가 접근할 수 있는 리소스를 제어하기 위한 기능.
  • 각 리소스에 대한 접근 정책을 미리 정의, 접근 시 정책 확인해서 허용 여부 결정.
  • 웹 리소스, 자바 메서드, 도메인 객체에 대한 접근 정책 정의 가능.

Architecture

spring security authorization

동작 과정

1. 클라이언트가 임의의 리소스에 접근하면 FilterSecurityInterceptor 클래스가 가로챈다.

2. FilterSecurityInterceptor 클래스는 AccessDecisionManager인터페이스의 메서드를 호출하고 리소스에 대한 접근 가능 여부를 확인하게 된다.

3. 기본적으로 AccessDecisionManager는 AffirmativeBased클래스에 implements 하여 구현한다. AffirmativeBased 클래스는 AccessDecisionVoter 인터페이스의 메서드를 호출하고 접근 가능 여부에 대한 투표 결과를 받는다.

4. 위와 같은 과정을 통해 AccessDecisionManager가 허용할 때에만 FilterSecurityInterceptor에서 다음 단계로 나아가 리소스에 접근 할 수 있게 된다.

참고