0

에서 개체를 가져올 수 없습니다 나는 다음과 같은 시나리오가 :는 세션

내가 웹 응용 프로그램에 액세스
  1. - 봄 보안을 사용합니다, 세션 객체를 생성 우리가 몇 가지 항목이 카트를 가정 해 봅시다합니다.
  2. 편안한 클라이언트를 사용하여 응용 프로그램에 액세스합니다. 나는 가지고있다 : user, password, JSESSIONID 쿠키와 그에 상응하는 값. 둘 다 기본 인증을 사용하고 있습니다.

결과는? 나는 물건을 얻는다 -이 경우의 손수레 - 그러나 그것은 비어있게된다. 추가 된 항목이 없습니다. 거의 비슷합니다. 비록 내가 성공적으로 인증 할 수 있었지만, 기존의 것을 제공하는 대신에 새로운 객체 인스턴스를 생성하는 메커니즘이 있습니다.

스프링 보안이 어떻게 될지 몰라요.

나는 또한 쿠키 JSESSIONID = Number를 보내고 그것이 JSESSIONID에 대해 다른 번호를 제공 할 때 나의 가정은 내가 라이트 자격증을 가지고 있지만 로그인 할 수 있다는 것이다. 그것은 동일한 세션을 사용하는 것을 허락하지 않으며, 단순히 새로운 세션을 생성하고 카트는 비어 있습니다.

도움이 될 것입니다.

+0

당신은 당신이 같은 쿠키를 보내시겠습니까? 동일한 JSESSIONID를 보내려면 Fiddler를 사용하십시오 – Michael

+0

아래 답변을 보았습니까? 도움이 되었습니까? – Michael

+0

마이클 귀하의 의견에 진심으로 감사드립니다! 현재 Fiddler를 테스트 중이며 어떻게 진행되었는지 알려 드리겠습니다. – user1532449

답변

0

SpringSecurity는 인증 후 JSESSIONID 쿠키를 대체합니다 (세션 고정 공격을 방지하기 위해 기능을 비활성화하지 않을 것을 권장합니다). 다음 구성은 기존의 세션 속성이 migrateSession를 사용, 복사하기 기능을

<http ...> 
    ... 
    <session-management session-fixation-protection="migrateSession" /> 
</http> 

수 있습니다.

는이 문서 http://static.springsource.org/spring-security/site/docs/3.2.x/reference/springsecurity-single.html#session-mgmt에 따라 값을 속성 :

  • migrateSession가 - 기존의 세션이 새 세션 속성을 새로운 세션과 복사본을 생성합니다. 이것이 기본값입니다.
  • none - 아무것도하지 마십시오. 원래 세션이 유지됩니다.
  • newSession - 기존 세션 데이터를 복사하지 않고 새 "깨끗한"세션을 만듭니다.
0

스프링은 인증시 새로운 세션을 생성합니다. 이것을 세션 고정 보호라고합니다. 여기에 대해 자세히 알아보기 :

+0

Kevin 대단히 감사합니다. 나는 다음을 수행함으로써 그것에 대한 보호를 이미 제거했다. 내가하는 일은 다음과 같다. 1.- 웹 애플리케이션에 액세스한다. 2.- 값을 얻는다. JSESSIONID 쿠키의 경우, 3. 동일한 자격 증명을 사용하여 RESTFul 클라이언트에 액세스하고 인증 (기본)을 수행하고 JSESSIONID 쿠키를 2라는 값으로 보냅니다.하지만 여전히 인증 할 수는 있지만 항상 새로운 그래서 내 장바구니가 비어있게됩니다.이것을 극복하는 방법에 대한 아이디어? 친절한 도움을 주셔서 다시 한 번 감사드립니다! – user1532449

+0

스프링 보안 구성을 공유 할 수 있습니까? – kevin847