복붙노트

[SPRING] 스프링 보안의 SecurityContextHolder : 세션 또는 요청 바운드?

SPRING

스프링 보안의 SecurityContextHolder : 세션 또는 요청 바운드?

SecurityContextHolder에서 검색 한 Userprincipal이 요청 또는 세션에 바인딩되어 있습니까?

UserPrincipal principal = (UserPrincipal) SecurityContextHolder.getContext (). getAuthentication (). getPrincipal ();

이것은 현재 로그인 한 사용자에게 액세스하는 방법입니다. 현재 세션이 파괴되면 무효화됩니까?

해결법

  1. ==============================

    1.그것은 당신이 그것을 어떻게 구성 했느냐에 달려 있습니다 (또는 다른 행동을 구성 할 수 있습니다).

    그것은 당신이 그것을 어떻게 구성 했느냐에 달려 있습니다 (또는 다른 행동을 구성 할 수 있습니다).

    웹 응용 프로그램에서는 SecurityContextPersistenceFilter와 상호 작용하는 ThreadLocalSecurityContextHolderStrategy를 사용합니다.

    SecurityContextPersistenceFilter의 Java 문서는 다음으로 시작합니다.

    Btw : HttpSessionSecurityContextRepository는 SecurityContextRepository의 유일한 구현입니다 (기본 라이브러리에서 찾았습니다).

    그것은 다음과 같이 작동합니다 :

    요약하면 : 사용자 보안 주체 (SecurityContext 요소)는 HTTP 세션에 저장됩니다. 그리고 각 요청에 대해 액세스 할 수있는 로컬 스레드에 배치됩니다.

  2. from https://stackoverflow.com/questions/6408007/spring-securitys-securitycontextholder-session-or-request-bound by cc-by-sa and MIT license