Notice
Recent Posts
Recent Comments
Link
«   2024/11   »
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
Tags more
Archives
Today
Total
관리 메뉴

요리사에서 IT개발자로

스파르타 부트캠프 Spring Master 3강 Spring Security 프레임워크란 본문

Spring

스파르타 부트캠프 Spring Master 3강 Spring Security 프레임워크란

H.S-Backend 2024. 5. 26. 23:56

Spring Security 프레임워크 코드

// Security
implementation 'org.springframework.boot:spring-boot-starter-security'

Spring Security 프레임워크란

 

Spring 서버에 필요한 인증 및 인가를 위해 많은 기능을 제공한다.

웹서버 구현에 편의를 제공해준다.

 


CSRF(Cross-site request forgery)란

 

공격자가 인증된 브라우저에 저장된 쿠키의 세션정보를 활용하여

웹서버에 사용자가 의도하지 않은 요청을 전달한다.

 

CSRF 설정이 되어있다면

HTML에 CSRF 토큰 값을 넘겨주어야 수신이 가능하다.

 

쿠키 기반의 취약점을 이용한 공격이기에

REST 방식의 API에서는 Disable이 가능하다.

 


 

Spring Security - Filter Chain

 

Spring에서 의 모든 호출

DispatcherServlet을 통과하고

이후

각 요청은 담당 Controller로 분배된다.

 

각 요청에 대한 공통처리 할 부분은

DispatcherServlet 이전 단계가 필요하며

 

이것이 Filter이다.

 

Spring Security는 인증/인가를 처리하기위한

Fiter사용

FilterChainProxy를 통해 상세로직을 구현한다.

 


 

Form Login 기반 인증

인증이 필요한 URL 요청이 들어왔을 때

인증이 되지 않았다면

로그인 페이지를 반환하는 형태이다

 


 

UsernamePasswordAuthenticationFilter는

 

Spring Security 필터인 

AbstractAuthenticationProcessingFilter를 상속한 Filter이다.

 

기본적 Form Login기반을 사용할 때 

username과 password를 확인하여 인증한다.

 

인증과정으로는

사용자가 username과 password를 제출 하면

UsernamePasswordAuthenticationFilter

인증된 사용자의 정보가 담기는 인증객체 Authentication의 종류중 하나

UsernamePasswordAuthenticationToken을 만들어서

AuthenticationManager에게 넘겨 인증을  시도한다.

실패시 SecurityContextHolder를 비우고

성공하면

SecurityContextHolder에 Authentication을 세팅한다.

 


 

SecurityContextHolder역할

 

SecurityContext는 인증이 완료된 사용자의 상세정보 (Authentication)를 저장한다.

SecurityContext는 SecurityContextHolder로 접근할 수 있다.

 

Authentication

현재 인증된 사용자를 나타내고 SecurityContext에서 가져올 수 있다

Principal 

사용자를 식별한다.

Username/Password 방식으로 인증할 때 일반적 UserDetails 인스턴스다.

credentials 

주로 비밀번호, 사용자 인증에 사용한 후 비운다.

authorities 

사용자에게 부여한 권한 GrantedAuthority로 추상화 하여 사용한다.

 

 

https://hs-backend.tistory.com/147

 

스파르타 부트캠프 Spring Master 3강 필터(Filter)

Filter란 Web 애플리케이션에서 관리되는 영역이다.Client로 부터 오는 요청과 응답에 대해 최초/ 최종 단계의 위치한다 이를 통해서 요청과 응답의 정보를 변경하거나부가적인 기능을 추가를 할

hs-backend.tistory.com

반응형