인증 ( Authentication ) : 。사용자의 신원을 증명하는 과정 ( ex. ID/PW 로그인 , JWT 등 ) ▶ 사용자의 로그인 정보를 받아서 ID정보가 일치하는지 확인하는 과정. Multiple Authentication : 복수의 인증이 존재하는경우▶G
。Filter ▶ JwtFilter를 주로 사용 >Spring Security 。Spring 생태계의 REST API와 Web Application의 보안(인증: Authentication / 인가: Authorization 등)을 제공하는 Spring Fr

Encoding :。데이터를 특정 Data type으로 변환하는 과정. ▶ 주로 미디어 데이터를 압축 및 Streaming하거나, Text 데이터를 안전하게 전송하거나 저장할 수 있도록 Data type을 Binary로 변경할 때 사용. 。Encoding은
SecurityContextHolder / SecurityContext / Authentication 관계 。Authentication $\\in$ SecurityContext $\\in$ SecurityContextHolderSecurityContextHolder :
AuthenticationManager 。Spring Security에서 HTTP Request로 전달되는 사용자 인증( Authentication )의 검증을 담당하는 인터페이스 。AuthenticationProvider들을 등록 및 관리하는 역할을 수
UserDetailsService : 。Spring Security에서 사용자인증정보의 조회를 위해 DB에 저장된 사용자정보를 UserDetails 객체로서 조회하는 역할을 수행하는 Core Interface 。 Autheticatio
커스텀한 UserDetails 구현체를 생성。 각 어플리케이션의 현재 로그인한 유저의 정보를 정의하는 역할의 UserDetails 구현체를 정의 。Controller의 @AuthenticationPrincipal을 통해 해당 UserDetail 구현체에 현재 로그인중인
@EnableMethodSecurity : Method Security。Spring Security 6에서 Method Security를 활성화하는 어노테이션 ▶ 주로 @Configuration에 선언하여 개별 Method에 대해 Method Secur
Spring Security의 인증방식 。HttpSecurity객체를 이용하여 Spring Security를 설정formLogin() : HttpSecurity객체.formLogin() : 세션기반 로그인 기능 활성화 。Spring Sec
CSRF( 사용자 간 요청 위조 : Cross Site Request Forgery ) 。사용자의 의도와는 무관하게 의도치않은 위조된 HTTP Request를 전송하는것을 의미. 。 User가 웹사이트 로그인 시 User Session가 생성되며, 해당
Cross-Origin Request : 。특정 Origin에서 다른 Origin으로 HTTP Request를 전송하는것을 의미.Origin : 。웹브라우저에서 Origin은 프로토콜 + 도메인 + 포트번호 를 조합한 값.
WebSecurityConfiguration : 。Spring Security의 웹 보안에 설정을 담당하는 @Configuration Class 。Authentication , Authorization , CSRF Protection 등

토큰 ( token ) 。Client-side에서 인증정보를 보관하는 방법. ▶ 서버가 아닌, 인증정보를 client-side에 암호화하여 저장. 。서버에서 토큰의 발급만 수행하고
JWT 발급 절차JWT 생성 。사용자 자격증명 ( Credential ) , 사용자 데이터 ( payload ) , RSA 키쌍을 인코딩하여 JWT 생성. JWT를 HTTP Request의 Authentication Header의 일부로서 전송.
JWK ( JSON Web Key ) 。Public Key 정보를 JSON Format으로 표현한 데이터구조. ▶ JWT Signature의 검증을 수행하기 위해서 Public Key가 필요하므로 주로 RSA방식의 JWT의 Signature를

Web Security Configuration 설정 。Web Security Configuration 。로그인 시 사용하는 API에 대해 Spring Security에 의해 인증에 대한 검증을 수행하지 않도록 설정 private static final String[
PasswordEncoder : 。입력된 비밀번호 문자열에 단방향 인코딩 ( Hashing 알고리즘 : scrypt, bcrypt, argon2, ... )을 적용하여 Hashing을 수행하는 기능을 상속하는 Spring Security의 인터페이스 ▶ Pas

Filter : 。Spring으로 수신된 모든 요청 및 내부에서 forward되는 요청을 검증하는 역할을 수행。이미 Dispatcher Servlet에서 수신되면서 Filter에 의해 이미 검증된 Request를 내부 다른 요소에 forward되면서 Filter를 매번
SecurityFilterChain : import org.springframework.security.web.SecurityFilterChain; 。Spring Security에서 제공하는 보안 filter 모음 역할의 Interface. ( Authenti

클라이언트가 전송한 JWT를 수신한 서버에서 발급여부에 대한 검증 기능을 구현Spring Security - Filter。Filter 인터페이스를 구현하여 어플리케이션의 Filter Chain에 포함되도록 설정

전체 과정클라이언트가 로그인 시 JWT Token을 발급하는 경우 서버는 Redis에 Refresh Token을 저장。end point : /auth/refresh사전 설정redis 설치Spring 설정 。spring: datasource: hikari: maximum