백엔드/Spring Security

안녕하세요. 이번 게시글에선 기존 세션 기반 인증에서 jwt 토큰 인증으로 변환하는 방법을 작성해보겠습니다. 초기 목표는 기존 스프링 시큐리티 디폴트 구조를 크게 벗어나지 않고 약간의 설정 변경정도로 jwt를 구현하는 것이었습니다. jwt를 프로젝트를 적용하기 위해선 다음과 같은 목표가 필요합니다.  1. 로그인 (로그인 인증)- username, password를 DB검증 후 토큰을 생성하여 반환해야합니다.- 리프레시 토큰 정보는 DB에 저장합니다. 2. 토큰 검증 (토큰 인증 및 인가)- 전달받은 토큰을 인증 및 파싱하여 principal을 가져온 후 (username) 해당 정보로 DB에서 권한을 조회하여 인가합니다.- 리프레시 토큰이 만료되지 않았다면 리프레시 토큰을 갱신하여 DB에 저장합니다. ..
이번 게시글에선 저번에 분석한 스프링 시큐리티를 바탕으로 커스텀 구현을 해보겠습니다. 목표는 기존 폼 형식 로그인 방식을 Jwt 로그인 방식으로 변경하는 것입니다.  저번에 분석했던 스프링 시큐리티의 폼 로그인 흐름을 간략히  정리해볼까요?  UsernamePasswordAuthenticationFilter폼 요청으로 미인증된 Authentication 생성, AuthenticationManager에 미인증 Authentication 전달 AuthenticationManager - ProviderManager AuthenticationProvider에 미인증 Authentication 전달 AuthenticationProvider - DaoAuthenticationProviderUserDetailsSer..
스프링 시큐리티에서 json 형식으로 로그인 하는 것을 구현해보려고 합니다. 그러기 위해서 먼저 스프링 시큐리티에서 제공하는 기본 형식인 폼 로그인(formLogin) 방식에 대해 먼저 분석해보고, 해당 구조를 커스텀해보겠습니다. 스프링 시큐리티가 구성된 프로젝트는 기본적으로 폼 로그인이 적용됩니다. 또한 개발자가 서블릿 기반 시큐리티 설정을 추가하게 되면 아래와 같이 폼 로그인을 별로도 설정할 수 있습니다. @Configuration@EnableWebSecuritypublic class SecurityConfig { @Bean public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception { ..
꾸준함의 미더덕
'백엔드/Spring Security' 카테고리의 글 목록