복붙노트

[SPRING] create-session stateless 사용법

SPRING

create-session stateless 사용법

나는 create-session = "stateless"로 변경하는 것이 내 webapp에서 무국적 봄 보안을 달성하는 것이 끝나기를 바랐지만, 그렇지 않습니다.

그 변화로 봄 보안은 작동하지 않는 것처럼 보입니다. (내 가정) 스프링 보안은 세션에 아무 것도 저장하지 않으며 보안 웹 요청에 대한 인증을 수행 할 수 없기 때문입니다.

이 무국적 기능을 어떻게 사용합니까?

나는 스테이트리스 웹 어플리케이션을위한 스테이트리스 스프링 보안을 달성하는 방법에 관한 어떤 관련 예제도 아직 찾지 못하고있다.

고맙습니다 !

해결법

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

    1.스프링을 기반으로하는 웹 애플리케이션은 완전히 상태가없는 보안 기능을 가지고 있으며 세션 작성을 완전히 비활성화하는 것과 같은 방식으로 작동하게하는 유일한 방법은 create-session = "never"입니다. 이는 각 요청에 대해 재 인증을 요구하므로 특히 복잡한 협상을 필요로하지 않기 때문에 HTTP 기본 인증 또는 다이제스트 인증 (물론 HTTPS를 통한 인증)을 사용하도록 webapp를 구성해야합니다 (대조적으로 양식 기반 로그인과 OAuth는 모두 인증 컨텍스트를 설정하는 훨씬 복잡한 프로세스가 있기 때문에 세션을 필요로합니다. 즉, 과 같은 요소를 요소 안에 넣기를 원할 것입니다.

    스프링을 기반으로하는 웹 애플리케이션은 완전히 상태가없는 보안 기능을 가지고 있으며 세션 작성을 완전히 비활성화하는 것과 같은 방식으로 작동하게하는 유일한 방법은 create-session = "never"입니다. 이는 각 요청에 대해 재 인증을 요구하므로 특히 복잡한 협상을 필요로하지 않기 때문에 HTTP 기본 인증 또는 다이제스트 인증 (물론 HTTPS를 통한 인증)을 사용하도록 webapp를 구성해야합니다 (대조적으로 양식 기반 로그인과 OAuth는 모두 인증 컨텍스트를 설정하는 훨씬 복잡한 프로세스가 있기 때문에 세션을 필요로합니다. 즉, 과 같은 요소를 요소 안에 넣기를 원할 것입니다.

    (이렇게하면 쿠키 / 세션 관리를하지 않아도되므로 매우 간단한 클라이언트 라이브러리를 사용할 수 있다는 장점이 있습니다. 비용은 일부 처리 오버 헤드입니다. 사용자가 참여할 역할 집합 각 요청마다 다시 계산되어야하며 인증 메커니즘을 사용할 수있는 몇 가지 제한 사항이 있습니다.)

  2. ==============================

    2.도날의 답변은 기본적으로 정확하며, 브라우저의 경우 무국적 응용 프로그램을 사용하고 싶지 않을 것입니다.

    도날의 답변은 기본적으로 정확하며, 브라우저의 경우 무국적 응용 프로그램을 사용하고 싶지 않을 것입니다.

    참고로 create-session = "stateless"는 RESTful 클라이언트와 같은 상태 비 저장 응용 프로그램을 실제로 사용하는 경우 더 나은 옵션입니다. 이 옵션은 Spring Security 3.1에서 소개되었습니다. 세션 (예 : HttpSessionSecurityContextRepository, SessionManagementFilter, RequestCacheFilter)을 사용하는 Spring Security의 인프라 스트럭쳐 부분을 추가하지 않아도되므로 더 묽은 설정을 얻을 수 있습니다.

    create-session = "never"를 사용하면 Spring Security는 결코 세션 자체를 생성하지 않을 것이지만, 앱이 작동한다면 세션 보안 세션을 사용할 것입니다. 실제로 많은 사용자는 세션 생성을 인식하지 못하기 때문에 실제로 세션을 원하지 않는다면 상태를 유지하는 것이 가장 좋습니다.

  3. from https://stackoverflow.com/questions/8800855/create-session-stateless-usage by cc-by-sa and MIT license