본문 바로가기
Spring

[스프링] Security

by chu_dw 2023. 8. 5.

● 인터셉터

 

인터셉터란?

- Controller 호출 이전과 이후에 추가적인 기능을 할 수 있는 구조를 제공

- 기능상 aop아 유사, 구조상 filter와 유사

 

필터 vs 인터셉터

- 필터는 웹 어플리케이션내에서 동작하므로, context 접근이 어렵다.

- 인터셉터는 스프링 context내에 존재하므로 context내 객체를 사용가능하다.

 

Aop vs 인터셉터

- Aop는 메서드 기준으로 메서드까지 매개변수로 받는다

- 인터셉터는 필터에서 받던 http 서블릿 리퀘스트 즉 컨트롤러 url을 받는다

 

 

 

● 스프링 Security 개요

 

스프링 시큐리티 란?

- 애플리케이션 보안 기능을 구현할 때 사용하는 프레임워크

- 기본 보안 기능 : 인증(접근하는 사용자 특정), 인가(특정한 사용자 접근 제한)

- 강화된 보안 기능 : 세션 관리, CRSF, 브라우저 보안기능 연계

 

스프링 시큐리티 특징

- 인증, 인가 구현을 위한 다양한 필터 클래스 제공

- xml 파일에서 데이터 베이스 리소스로부터 인증, 인가 정보 취득 가능

- 다양한 인증 방식 지원

- 메서드 호출에 대한 접근 제어에 AOP 사용 가능

 

 

 

● 스프링 Security 구조

 

사용 모듈

- spring-security-core : 인증 인가 기능을 구현하기 위한 핵심적인 컴포넌트

- spring-security-web : 웹 애플리케이션 보안 기능을 구현하기 위한 컴포넌트

- spring-security-config : 각 모듈에서 제공하는 컴포넌트 설정 지원

- spring-security-taglibs : 인증 및 인가 정보를 사용하기 위한 jsp 태그 라이브러리

- spring-security-acl : acl사용해 도메인 객체 인스턴스 보호

 

 

스프링 시큐리티 아키텍처

 

스프링 시큐리티 주요 컴포넌트

- FilterChainProxy : 프레임워크의 진입점 역할을 하는 서블릿 필터 클래스

- HttpFirewall : 방화벽 기능을 추가하기 위한 인터페이스

- SecurityFilterChain : 보안 필터 목록을 관리하기 위한 인터페이스

- Security Filter : 보안 기능을 제공하는 서블릿 필터 클래스

 

 

 

● 스프링 인증 처리

 

스프링 인증처리 구조

 

스프링 시큐리티 인증 필터

- 인증 필터는 인증 처리 방식에 대한 구현을 제공하는 서블릿 필터

- 종류 : 폼 인증용 필터, basic 인증, digest 인증

 

인증 처리 위한 인터페이스

- AuthenticationManager : 인증 처리를 수행하기 위한 인터페이스 (실제 인증은 atp에게 위임, 반환값 처리만)

- AuthenticationProvider : 인증 처리 기능을 구현하기 위한 인터페이스 

'Spring' 카테고리의 다른 글

[스프링] 스프링빈이 없다면?  (0) 2023.12.04
[프로젝트] dto, mapper 개념  (0) 2023.10.27
[스프링] 트랜잭션  (0) 2023.08.04
[스프링] AOP  (0) 2023.08.02
[스프링] MyBatis  (0) 2023.08.01