인프런 커뮤니티 질문&답변

avenue님의 프로필 이미지
avenue

작성한 질문수

스프링 시큐리티

9) 동시 세션 제어, 세션 고정 보호, 세션 정책

invalidSessionUrl

작성

·

932

0

현재 부트 5.7버전을 사용하면서 SecurityFilterChain을 빈으로 등록하면서 기본 API들을 구현하고 있는데 sessionManagement() 부분에서 invalidSessionUrl 메소드 자체가 없어진거 같은데 5.7 이후부터는 이 메소드를 활용하지 못하는건가요?

답변 4

1

chaining method로 invalidSessionUrl 사용하실 때

sessionManagement의 return 값으로 사용하면 invalidSessionUrl을 사용할 수 있지만

 

maximumSession의 return 값으로 사용하면

사용할 수 없는거 같습니다 리턴값이 다르더라구요

 

참고하시면 좋을거 같습니다

*and()를 사용하면 또 가능하네요

1

정수원님의 프로필 이미지
정수원
지식공유자

제가 확인해 보니까 아직 없어지지 않은 것 같은데요

@Bean
SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
    http.antMatcher("/admin/**")
        .authorizeRequests()
        .anyRequest().authenticated()
        .and()
        .formLogin()
            .and()
            .sessionManagement().invalidSessionUrl("/login")
    return http.build();
    ;
}

image

위 버전으로 코드를 작성하면 정상적으로 실행되고 있습니다.

혹 위 코드가 아닌 다른 부분이 있는가요?

0

정수원님의 프로필 이미지
정수원
지식공유자

네 맞습니다.

Remember me 도 일종의 인증처리 방식 중 하나이기 때문이 인증 자체 흐름에는 아무런 문제가 없습니다.

다만 form 인증 방식과 다른 흐름으로 진행되기 때문에 이에 대한 구분은 필요했고 사용자가 어떤 인증방식으로 인증시도를 하고 있는지에 따라 서버자원접근에 대한 허용 여부를 결정한다고 보시면 됩니다

avenue님의 프로필 이미지
avenue
질문자

답변 감사합니당

0

avenue님의 프로필 이미지
avenue
질문자

아 제가 chaining 위치를 잘못 잡아서 안보였었습니다.

 

혹시 다른 추가적인 질문이긴 한데 FilterSecurityInterceptor에서 "/user"자원으로 접근할 때 [Anonymous || RememberMe]사용자들에 대해서 먼저 인가예외로 갔다가 결국 Anonymous는 인증이 아예 되지 않은 사용자이므로 인증예외로 빠지고 RememberMe는 fullyAuthenticated가 아니라서 인증예외로 빠진다고 강의를 들으면서 이해하였는데

그러면 이 경우에서 "/user"는 fullyAuthenticated()로 인가정보를 주게되면 RememberMe도 인증예외가 터지는데 만약에 그냥 authenticated()라고 주게되면 RememberMe 사용자는 인증예외없이 정상적으로 흐름이 넘어가는거 맞나요?

avenue님의 프로필 이미지
avenue

작성한 질문수

질문하기