본문 바로가기
Spring

[TIl] 231221 Spring Security

by studymode 2023. 12. 21.

Spring Security는 filter에서 탐

 

JWT

header . payload. signature 로 구성

(점으로 구분)

 

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

 

글씨 원래 못씀

 

Filter를 타고 나면 WebConfig로 감

 

WebConfig:

 

permission을 확인하고

- hasRole

- PerimitAll

- Authenticated 등

 

설정

- 우린JWT를 쓸거야!! 

 

 

인증: 선택, JWT가 하는 일, 유저인지 admin인지 확인 (JwtUtil에서), 가입해도 되는 애인지 확인

인가: 필수, 무조건 Filter에서 만들어줘야 함!!

 

 

 

🗂️ Security

  🅒 JwtAuthorizationFilter

  🅒 JwtUtil

  🅒 UserDetailsIpl

  🅒 UserDetailsServiceImpl

 

 

 

🅒 JwtAuthorizationFilter (인가 해주는 곳)

  - JwtUtil이랑 JwtDetailsimpl 데려와서

  - doFilter 탐

     if (AuthorizationHeader에 텍스트가 있으면{

        substringToken해서 BEARER빼기

        if(맞다면 validationToken: signiture 확인)

 

 

 

🅒 WebSecurityConfig

  - http.addFilterBefore (jwtAuthorizationFilter(),...); 

     언제 필터 쓸건지 설정! 모든 동작을 함

 

 

🅒 JwtUtil 

  - 인증끝나면 JwtUtil에서 토큰 생성

  - 이름 넣고, Role(claim)넣고, ExpiredTime 등 넣기

 

 

 

 

  • UserService

로그인 할때 (는 Auth필터단: 인가 를 안거침) 

인증이 끝나면 토큰을 만들고 (jwtUtil.createToken)  토큰: 인증이 됐다는 증표!!!

그 토큰으로 인가를 한다.