Spring_Spring Security

Today Jeeho Learned·2022년 6월 16일
0

Spring

목록 보기
17/31
post-thumbnail

Spring을 처음공부하면서 Front없이 RESTAPI로만 진행하는 미니프로젝트에서 회원가입과 로그인 기능을 맡게 되었다. 로그인을 구현하는 부분에서 spring security에 대해서 공부하게 되었다.
모르는게 너무 많아서 머리가 아프지만 차근차근 정리해보면서 머리속에 채워가려고한다.

spring security란 ?

spring이 어떻게 동작하는지를 조금 알아야 하는데, 사용자가 요청을 보내면 바로 controller에게 전달되는 것이 아니라 sevelet containr을 거치고 spring dispatcher servlet으로 전달하고 dispatchersevelt이 요청에 따라서 controller에게 전송하고 service jpa db 쭉쭉 연결되는 것이고, 응답으로 돌아올때도 바로 사용자에게 돌아가는 것이 아니라 servlet container가 응답을 받고 사용자에게 전송을 해준다.

여기서 container와 depatcherservlet에서 서로 요청과 응답을 보내는 과정에서 필터를 이용해서 개입을 할수있는데 spring security는 여기서 필터를 끼워넣어서 보안기능을 하고있다.

여기서 한가지 문제가 있는데 servelt container을 통해서 필터를 만들게 되면, 필터는 spring에서 설정한 bean을 사용할수가 없다.

그래서 Spring Security는 DelegatingFilterProxy 라는 필터를 만들어 메인 Filter Chain에 끼워넣고, 그 아래 다시 SecurityFilterChain 그룹을 등록한다.

그렇게 하면 URL에 따라 적용되는 Filter Chain을 다르게 하는 방법을 사용한다.
어떠한 경우에는 해당 Filter를 무시하고 통과하게 할 수도 있다.

WebSecurityConfigurerAdapter는 Filter chian을 구성하는 Configuration클래스로 해당 클래스의 상속을 통해 Filter Chain을 구성할 수 있다.

configure(HttpSecurity http)를 override하며 filter들을 세팅한다.

https://docs.spring.io/spring-security/reference/servlet/architecture.html

profile
기록해야 (살아)남는다 !

0개의 댓글