티스토리 뷰

스프링 시큐리티 기초

 

1. 스프링 시큐리티란 ? 

  • 스프링 기반의 어플리케이션의 보안(인증과 인가)을 담당하는 프레임워크

  • filter 기반으로 동작하므로 spring MVC와 분리되어 관리 및 동작

2. 스프링 시큐리티 주요 용어

  • Principal(접근 주체): 보호된 대상에 접근하는 유저

  • Authentication(인증): 현재 유저가 누구인지 확인하는 과정

  • Autherize(인가): 인증된 유저가 어떤 서비스 또는 페이지에 접근할 수 있는 권한이 있는지 검사

  • 권한: 인증된 주체가 애플리케이션의 동작을 수행할 수 있도록 허락되었는지를 결정


스프링 시큐리티 아키텍처 정리



  1. 브라우저에서 로그인 요청이 서블릿 컨테이너로 들어온다

  2. 서블릿 필터의 DeligatingFilterProxy 필터가 스프링 빈의 이름을 참조하여 FilterChainProxy로 요청을 인가한다

  3. FilterChainProxy에서 설정파일에 해당하는 시큐리티 필터 목록을 가져온 후 순차적으로 실행한다

  4. UsernamePasswordAuthenticationFilter에서 인증을 실행하는 AuthenticationManager 인터페이스의 구현체인 ProviderManager이 실행되어 UserDetailService 구현체를 이용하여 인증을 완료 후 Authentication 객체를 SecurityContextHolder에 저장 &  스레드로컬에 저장한다

  5.  SecurityContextPersistenceFilter에서 세션에 securityContext 저장한다

  6. FilterSecurityInterceptor(마지막 필터)에서 AbstractFilterSecurityInterceptor(부모)의 AccessDeicisionManager을 실행하여 권한을 체크한 후 true(1)이 반환되면 요청 페이지로 리다이렉트하여준다

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함