보안에 완벽함이란 없다. 그래도 더 나은 보안을 위해 노력은 해야한다. JWT는 헤더, 페이로드, 서명 세 가지 정보를 base64로 인코딩한 값을 콤마를 사이에 두고 이어붙인 형태로 생성된다. 토큰 인증은 사용자가 인증 정보를 토큰 발급 후 해당 토큰을 통해 복잡한 인증 과정 없이 토큰으로 사용자를 인증 및 인가할 수 있다. 그런데 이 JWT는 Stateless 방식이기 때문에 서버측에서는 이 토큰을 받아도 본인이 맞는지 확인이 불가능하다. 하나의 토큰(Access token) 인증 방식에 대한 대책으로 Refresh token을 활용할 수 있다. Refresh token은 사용자 인증이 아닌 새로운 Access token을 발급하는데에만 활용된다. Refresh token은 다음과 같이 사용될 수 있..

회원가입시 ID, PASSWORD 등 중복값 체크를 하려고 AJAX POST 방식으로 요청하면 자꾸 405에러가 뜨는 증상 발생. 이것저것 확인해보니 Spring Security로 로그인 구현하여 CSRF 값을 던져주지 못해서였음. 일단 중복값체크에는 CSRF 값을 주고받을 필요가 없어 SecurityConfiguration에서 해당 주소값만 CSRF disabled를 설정해줘서 정상 작동시킬 수 있었음.

01) SecurityConfiguration 설정 - configure(HttpSecurity http) 메서드에 http.formLogin().failureHandler(loginFailHandler) 설정해줘야 함. package com.kjc.workplus.configuration; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.security.config.annotation.auth..

01) 개발환경 STS4, Java 1.8, Springboot 2.4.5, Gradle 6.8.3 dependencies 프로젝트 구조 02) 의존성 추가 Spring Security를 사용하려면 의존성을 추가해야함. 또한 Thymeleaf에서 Spring Seurity 통합 모듈을 사용하기 위한 의존성도 추가해줘야 함. build.gradle - implementation 'org.springframework.boot:spring-boot-starter-security' - implementation 'org.thymeleaf.extras:thymeleaf-extras-springsecurity5' 03) Spring Security 설정 Spring Security는 FilterChainProxy라..