4

나는 이해한다 스프링 보안HttpSessionSecurityContextRepositoryHttpSession을 사용한다.CloudFoundry에서 Spring Security의 HttpSessionSecurityContextRepository를 사용하는 데 문제가 있습니까?

또한 CloudFoundry와 같은 PaaS는 확장 성을 위해 세션 복제를 피하려고합니다.

CloudFoundry PaaS에 응용 프로그램을 배포 할 예정입니다.

HttpSessionSecurityContextRepository을 CF에 사용하는 데 문제가 있습니까?

답변

2

CloudFoundry 설명서는 HTTP 세션이 기본적으로 인스턴스간에 복제되지 않는다고 말합니다. 즉, 여러 인스턴스에 배포 된 응용 프로그램은 기본적으로 모든 종류의 HTTP 세션 클러스터링을 사용할 수 없습니다. HTTP 세션은 끈적 거리게됩니다. 즉, 동일한 세션의 모든 HTTP 요청은 요청에 대한 세션이 상주하는 인스턴스로 라우팅됩니다. 인스턴스가 실패한 경우 해당 인스턴스에서 활성 세션을 가진 사용자는 다른 인스턴스로 마이그레이션되지만 세션 정보가 손실되므로 다시 로그인해야합니다.

그렇다고해서 그러한 환경에서 스프링 보안을 사용하는 것이 안전하지 않다는 의미는 아닙니다. Spring Security의 의미 체계는 Spring Security가없는 경우와 동일합니다. 사용자가 로그인하면 세션이 생성 된 CloudFoundry 인스턴스에 계속 액세스합니다. 해당 인스턴스가 충돌하면 자동으로 다른 인스턴스로 이식되지만 다시 로그인해야합니다.

기본 설정 (세션 복제 없음)이 중요 할 경우 인스턴스간에 세션을 공유 할 수 있습니다. CloudFoundry 포럼은이를 달성하는 두 가지 방법, 즉 via Redisusing JDBC을 나열합니다. CloudFoundry 서비스 중 하나를 사용하여 자체 솔루션을 구현할 수도 있습니다.