[개인공부] Spring Web Security

Walter Mitty·2023년 2월 5일
0

개인공부

목록 보기
39/41
post-thumbnail

Spring Security의 기본 동작 방식

Sevlet의 여러 종류의 필터(filter)인터셉터(interceptor)를 이용해서 처리된다.

  • 필터: 서블릿에서 말하는 단순 필터
  • 인터셉터: 스프링에서 필터와 유사한 역할을 함

필터와 인터셉터의 차이점?

필터와 인터셉터는 특정 서블릿이나 컨트롤러의 접근에 관여한다는 점에서 유사하지만,
결정적인 차이로는
필터는 스프링과 무관한 서블릿 자원 이고
인터셉터는 스프링의 빈으로 관리되면서 스프링의 컨텍스트 내에 속한다 는 점이다.

Sevlet 컨텍스트 내에 필터와 Spring 컨텍스트가 있을 때,

  • 필터는 서블릿 컨텍스트에 속하긴 하지만 스프링과는 무관하다.
  • 인터셉터의 경우는 서블릿 컨텍스트 내의 스프링 컨텍스트 내에 속한다.
    • 따라서 스프링 컨텍스트 내부에서 컨트롤러를 호출할 때 관여하기 때문에 스프링 컨텍스트 내에 있는 모든 자원을 활용할 수 있다.

스프링 시큐리티의 동작

스프링 시큐리티를 이용하게 되면 인터셉터와 필터를 이용하면서 별도의 컨텍스트를 생성해서 처리된다.

  • 스프링 시큐리티는 현재 동작하는 스프링 컨텍스트 내에서 동작하기 때문에 이미 컨텍스트에 포함된 여러 빈들을 같이 이용해서 다양한 방식의 인증 처리가 가능하도록 설계할 수 있다.

인증(Authentication)과 권한 부여(Authorization - 인가)

-'인증(Autentication)'은 쉽게 말해 '자신을 증명하는 것'이다.

  • 자기 스스로가 무언가 자신을 증명할 만한 자료를 제시
  • '권한 부여(Authorization)'는 남에 의해서 자격이 부여된다.

예시)
엔지니어 A가 B 회사에 고장난 데이터베이스를 고치기 위해 방문했다.
예약을 한 상태에서 방문한 A씨는 우선 회사 입구에서 '본인 인증'을 요구받는다.
출입증을 검사하는 직원은 A의 신분을 확인한다.

이처럼 '인증'이란 본인이 무엇인가를 증명하는 행위!


회사 내부에 들어간 A씨는 담당자를 만나서 데이터베이스의 접근 권한 등의 정보를 얻어야 한다.
이 과정을 인가 혹은 권한부여라고 볼 수 있다.

권한 부여 과정에서 A씨에게는 데이터베이스를 조회/수정할 수 있는 권한이 부여된다.

0개의 댓글