[SpringBoot] 스프링부트 프로젝트 생성 후 spring-security 사용 및 테스트하기2 login 설정~로그인 설정~(세팅 스프링 시큐리티 세션 스프링부트3.25 )_IntelliJ IDEA 2024.1JDK17 spring-boot test session http--++
* 초기 세팅 (개발환경) 및 설정
https://rockbottomdevbus.blogspot.com/2024/04/springboot-1-325-intellij-idea-20241.html
* 이전글
[SpringBoot] 스프링부트 프로젝트 생성 후 spring-security 사용 및 테스트하기1 login 설정~로그인 설정~(세팅 스프링 시큐리티 세션 스프링부트3.25 )_IntelliJ IDEA 2024.1JDK17 spring-boot test session http--++
https://rockbottomdevbus.blogspot.com/2024/05/springboot-spring-security-1-login-325.html
1. 로그인 테이블생성 ( 추후에 프로젝트를 임포트할 때 로그아웃 시 에러나면 해당 테이블 추가 필요)
-sql
create table persistent_logins (
username varchar(64) not null
, series varchar(64) primary key
, token varchar(64) not null
, last_used timestamp not null
);
2. Remember-me ( 자동로그인 쿠키설정 )
1. CustomSecurityConfig.java에 필드선언 및 의존성 주입
// Remember-me 서비스를 위해서 DataSource UserDetailsService 주입
private final DataSource dataSource;
private final UserDetailsService userDetailsService;
2. persistentTokenRepository Bean 메서드 생성
//PersistentTokenRepositoy
@Bean
public PersistentTokenRepository persistentTokenRepository() {
JdbcTokenRepositoryImpl repo = new JdbcTokenRepositoryImpl();
repo.setDataSource(dataSource);
return repo;
}
3. CustomSecurityConfig.java의 filterChain메서드에 Remember-me 설정추가
//remember-me 설정 토큰값 30일 설정
http.rememberMe(httpSecurityRememberMeConfigurer ->{
httpSecurityRememberMeConfigurer.key("12345678")
.tokenRepository(persistentTokenRepository())
.userDetailsService(userDetailsService) // PasswoedEncoder에 의한 순환 구조가 발생할 수 있음..
.tokenValiditySeconds(60 * 60 * 24 * 30);
});
3. Remember-me : 테스트 및 설명
1. 보통 기본 설정(세션타임) 30분
2. 세션타임 설정확인
3. 자동로그인 체크 & 로그인
4. 세션타임이 30분이면 30분뒤에 권한이 필요한 페이지 접속
* 다른방법
- 브라우저 종료
* 추가설명
- 스프링 시큐리티가 세션타임을 가지고 리멤버 기능을 처리
* 다음글
[SpringBoot] 스프링부트 프로젝트 생성 후 spring-security 사용 및 테스트하기3 login 설정~로그인 설정~(세팅 스프링 시큐리티 세션 스프링부트3.25 )_IntelliJ IDEA 2024.1JDK17 spring-boot test session http--++
https://rockbottomdevbus.blogspot.com/2024/05/springboot-spring-security-3-login-325.html
* 참고
https://docs.spring.io/spring-security/reference/servlet/authentication/passwords/form.html
댓글
댓글 쓰기