본문 바로가기
SPRINGBOOT

[spring security] 1. 스프링 시큐리티의 동작 원리

by 정공자씨 2024. 1. 10.

 

 

스프링 시큐리티란?

- 스프링의 하위 프레임워크
- 스프링 기반의 애플리케이션 보안(인증, 인가, 권한)을 담당

- 각종 공격을 방어하고, 요청 헤더도 보안 처리
[ 공격의 유형 ]
  - 세션 고정 공격 : 사용자의 인증 정보를 탈취하거나 변조
  - CSRF 공격 : 사용자 권한을 가지고서 특정 동작을 수행하도록 유도

- 스프링 시큐리티는 필터(filter)를 기반으로 동작
-  스프링 시큐리티 관련 설정 파일 (security configration 클래스 파일)에
   작성한 인증 관련 메서드 위에 @bean(애너테이션)을 지정하면 해당 필터가 생성

-  즉, 특정한 경로에 요청이 오면 controller로 가기 전
   필터(filter0에서 인가, 인증 작업을 먼저 진행한 후에 controller로 이동

 

 

시큐리티의 동작 원리

 

1. 클라이언트의 요청이 들어오면

2. Servlet Container내의 filter를 거쳐 controller에 요청이 도달

Spring Security Config
- java config 파일(설정 파일)

- 인증 및 인가를 위해 설정을 하는 클래스를 등록하여 사용

- 설정 클래스 등록해 놓으면, 인가 또는 인증작업을 실행하는 필터(filter)가 생성

 

3. 클라이언트의 요청이 controller에 도달하기 전, 해당 필터(filter)가 가로 채서 인증 또는 인가 작업을 진행한 후에,

    controller로 요청이 전달

4. 로그인의 경우, 모든 클라이언트에 대해 접근을 허용하여 로그인 controller로 간 뒤에 로그인을 진행하고,

    session에 로그인 정보가 등록

로그인을 하여야 접근할 수 있는 마이 페이지(나의 정보 확인하는 페이지)에 접속하는 경우, 로그인 정보가 session에 등록되어 있기 때문에, 필터를 통과하여 controller에 접근 가능

 

 

 

스프링 시큐리티 프로젝트 생성시 필요한 의존성

- spring web
- lombok
- spring security
- spring data jpa
- mysql driver