[Spring Security] Spring Security의 간단한 동작 원리

주재완·2024년 6월 26일
0

Spring Security

목록 보기
1/3
post-thumbnail

해당 포스팅은 개발자 유미님 유튜브 및 노션 내용을 기반으로 작성하였습니다.

파이널 프로젝트 때, Session 로그인을 구현하면서 패스워드를 암호화하는 Bcryptpasswordencoder를 사용하였습니다. 이 포스팅을 기점으로 Spring Security에 대해서 작성해볼까 합니다.

동작 원리

우선, 모든 Request의 경우 Servlet Container를 거치고, 그 안에서 Filter를 거치게 됩니다. 이에 대한 자세한 내용은 아래 링크에 정리해두었습니다.
https://velog.io/@red-sprout/WEB-%EC%9B%B9-%EC%84%9C%EB%B2%84%EC%99%80-WAS

이 때 login의 경우(검은색 화살표) 모든 접근을 허용합니다. 접근 허용후 컨트롤러를 거쳐 로그인 결과 성공시 Session에 유저가 등록이 되게 됩니다.

다른 요청들의 경우(빨간색 화살표) 우선 Session에서 유저 정보가 있는지를 확인합니다. 있으면 그 정보를 가지고 Filter를 통과하게 되는데, 이 때 Controller에 도달하기 전 Spring Security 차원에서 검증을 합니다. 예를 들어, 검증 사례는 다음과 같습니다.

  • 해당 경로의 접근이 누구에게 열려 있는지 확인
  • 로그인이 완료된 사용자인지 확인
  • 해당되는 role을 가지고 있는지 확인 ("ADMIN" 이냐, 아니면 일반 "USER" 냐...)
profile
언제나 탐구하고 공부하는 개발자, 주재완입니다.

0개의 댓글

관련 채용 정보