Spring

AuthenticationProvider를 사용하여 로그인 할 때 쿠키 만료 시간을 설정하는 방법

기록만이살길 2021. 3. 10. 15:04
반응형

AuthenticationProvider를 사용하여 로그인 할 때 쿠키 만료 시간을 설정하는 방법

1. 질문(문제점):

사용자 지정 AuthenticationProvider로 인증하고 있습니다.

@Component
public class AuthProvider implements AuthenticationProvider {

    @Override
    public UserData authenticate(Authentication authentication)
            throws AuthenticationException {

       return (UserData) authentication;

    }

    @Override
    public boolean supports(Class<?> authentication) {
        return authentication.equals(UserData.class);
    }

사용자를 로그인하려면 다음을 수행합니다.

   UserData auth = authManager.authenticate(new UserData(loginData));
       
   SecurityContextHolder.getContext().setAuthentication(auth);

( UserData연장 AbstractAuthenticationToken)

이렇게하면 사용자에게 JSESSIONID만료 시간이 -1 (브라우저가 닫힐 때까지)이 표시됩니다.

JSESSIONID에 사용자 지정 만료 시간을 지정하려면 어떻게해야합니까? 사용자가 활성 상태 인 경우에도 갱신 할 수 있습니까?

2. 해결방안:

인증 공급자는 Spring Security에 의해 관리되므로 서블릿에 전송 된 쿠키 만료 시간의 매개 변수는 사용자 정의 AuthenticationProvider에서도 작동합니다.

다음을 설정해야합니다 max-age.

server:
  servlet:
    session:
      cookie:
        max-age: 30m
65711249
반응형