spring security(4)
-
[Spring Security] 세션 제어하기
# 동시 세션 제어 API에 대하여 알아보자 invalidSessionUrl() : 세션이 유효하지 않을 때 이동할 페이지 경로 maximumSessions() : 최대로 허용 가능한 세션 수, -1 : 무제한으로 허용 maxSessionsPreventsLogin(true) : 최대 동시 접속 허용 세션 수를 초과한 경우 인증 실패 처리 maxSessionsPreventsLogin(false) : 최대 동시 접속 허용 세션 수를 초과한 경우 인증 기존 세션 만료 처리 expiredUrl() : 세션이 만료된 경우 이동 할 페이지 경로 http.sessionManagement( (session) -> session // 동시 세션 제어 .invalidSessionUrl("/invalid") // 세션이 유..
2024.01.04 -
[Spring Security] Remember Me 구현하기
# Remember Me 기능이란 세션이 만료되고 웹 브라우저가 종료된 후에도 어플리케이션이 사용자를 기억하는 기능이다. Ex. 사용자 ID 기억하기, 자동 로그인 Remember-Me 쿠키에 대한 HTTP 요청을 확인 후 토큰 기반 인증을 사용해 유효성을 검사하고 검증이 완료되면 로그인이 성공적으로 이루어진다. 사용자 라이프 사이클 인증 성공 👉 Remember-Me 쿠키 설정 인증 실패 👉 쿠키가 존재하면 쿠키 무효화 로그아웃 👉 쿠키가 존재하면 쿠키 무효화 # Remeber Me API에 대하여 알아보자 rememberMeParameter() : remember-me 파라미터 이름 설정, 기본 파라미터명은 remember-me tokenValiditySeconds() : 쿠키 만료 시간 설정, De..
2024.01.04 -
[Spring Security] Logout 구현하기
이번에는 로그아웃을 구현하는 코드에 대하여 작성해보려고 한다. # Logout 프로세스 클라이언트가 서버로 로그아웃 요청을 보낸다. 서버가 세션 무효화, 인증토큰 삭제, 쿠키 정보 삭제 처리 후 로그인 페이지로 리다이렉트 시킨다. # Logout API에 대하여 알아보자 logoutUrl() : 로그아웃 처리 경로 logoutSuccessUrl() : 로그아웃 성공 후 이동시킬 페이지 경로 addLogoutHandler : 로그아웃 핸들러, 로그아웃 성공 여부와 상관없이 실행 logoutSuccessHandler : 로그아웃 성공 핸들러 deleteCookies() : 로그아웃 후 지정한 이름의 쿠키를 삭제한다. @Configuration @EnableWebSecurity public class Secu..
2024.01.04 -
JWT를 적용한 로그인 구현하기
오늘은 Spring Security를 이용하여 JWT 토큰을 발급받고, 토큰의 만료 시간을 검증하는 기능을 개발하려고 합니다. Spring Boot 3.0 이상에서는 Spring Security 설정이 변경되었으므로 구글링을 통해 새로운 방법을 참고해야 합니다. 개발은 경록김님의 유튜브를 참고하여 진행했습니다. JWT 토큰 발급 및 검증을 위한 유틸리티 클래스를 작성하고, Spring Security 설정 클래스를 생성하여 JWT 토큰 사용을 설정했습니다. 추후에는 스프링 시큐리티에 관한 게시글도 작성해보겠습니다. # JWT(JSON Web Token) https://jwt.io/ JWT.IO JSON Web Tokens are an open, industry standard RFC 7519 method..
2024.01.03