[Spring] SpringSecurity

이준영·2022년 11월 24일
1

Spring Security

스프링 시큐리티는 스프링 기반의 애플리케이션의 보안(인증과 권한, 인가)을 담당하는 프레임워크이다.

스프링 시큐리티는
➡️ 스프링 기반 프레임워크
➡️ 애플리케이션의 보안을 담당하는 프레임워크
➡️ 애플리케이션의 인증과 인가 즉, 보안을 담당하는 프레임워크다
  • 인증(Authentication) : 누구야?
  • 인가(Authorize) : 권한

서블릿 필터필터체인으로 구성된 위임모델 사용



기본 용어

  • 접근주체(Principal)

    	보호된 리소스에 접근하는 대상
  • 인증(Authentication)

    	보호된 리소스에 접근한 대상이 누구인지 확인
  • 인가(Authorize)

    	해당 리소스에 대해 접근 가능한 권한을 가지고 있는지 확인
  • 권한

    어떠한 리소스에 대한 접근 제한
    모든 리소스는 접근 제어가 걸려있다
    인가 과정에서 해당 리소스에 대한 권한을 가졌는지 확인


스프링 시큐리티의 특징

  • 보안과 관련하여 (체계적으로 많은) 옵션을 제공
  • Filter 기반으로 동작
  • MVC와 분리하여 관리 및 동작
  • annotation을 통한 간단한 설정
  • 기본적으로 세션 & 쿠키 방식 으로 인증
  • 인증 관리자 & 접근 결정 관리자




*Reference
https://devuna.tistory.com/55


스프링 시큐리티의 구조


  • 기본 구조


  • Filter별 기능 설명


서블릿(Servlet)

Dynamic Web Page를 만들 때 사용되는 자바 기반의 웹 애플리케이션 프로그래밍 기술

웹에는 다양한&많은 Request와 Response가 존재
Request/Response를 일일이 처리하려면 힘들다!
Request/Response의 흐름을 간단한 메서드 호출만으로 체계적으로 다룰 수 있게 해주는게 바로 서블릿

  • 기본적인 서블릿 구조

*Reference
https://coding-factory.tistory.com/742
https://kohen.tistory.com/29

——————————————————————————————————————————

서블릿 필터(Servlet Filter)

서블릿으로 전달되는 Client의 Request or 서블릿에서 클라이언트로 전달되는 Response
중간에 가로채서 필터링을 위한 객체와 메서드를 정의해 둔 인터페이스

서블릿과 거의 동일하지만 기능이 Filtering이기 때문에 서블릿 필터라고 부름

서블릿이 HTTPServletRquest 였다면
필터는 ServletRequest이다.

*Reference
https://sgcomputer.tistory.com/238

——————————————————————————————————————————

필터(Filter)

Request와 Response에 대한 정보를 변경할 수 있게 개발자들에게 제공하는 서블릿 컨테이너

필터체인은 필터들이 모여서 체인을 형성한 것으로

체인을 형성한 Filter들을 거쳐가는 순서가 있다!

*Reference
https://jun-itworld.tistory.com/28

——————————————————————————————————————————

딱히 이론적으로 공부할거는 없을것 같고 실습해보면서 진행해야 될듯

profile
화이팅!

0개의 댓글