2012-05-15 2 views
2

우리는 게스트 경로와 사용자 경로 모두에서 작동하는 장바구니 페이지가 있습니다. 사용자가 프로세스 중에 언제든지 로그인 할 수 있도록하고 싶지만 다른 로그인 페이지를 실제로 만들지는 않습니다. 나는 단순히 사용자를 기존 로그인으로 리디렉션하고 Spring Security에 다시 올 URL을 알려주고 싶습니다.스프링 보안에 추천 URL 수동 제공

세션 시간 제한 및/또는 보호 된 페이지가 세션없이 요청 될 때 자동으로 발생하지만 자체적으로 스프링 보안에 URL을 제공 할 수있는 방법이 있습니까?

답변

2

장바구니를 검색하기 위해 간단한 return-to URL 만 필요하면 AuthenticationSuccessHandler에 구현하는 것이 가장 좋습니다. 영감을 얻으려면 SimpleUrlAuthenticationSuccessHandler의 출처와 그 부모를 볼 수 있습니다.

기본 로그인 메커니즘은 RequestCacheSavedRequest을 사용하지만 실제로 승인되지 않은 요청을 실제로 재생하기위한 것입니다. 그것은 아마도 당신의 경우에 과잉 공격 일 것입니다.

+0

이 솔루션에 대해 이해할 수없는 것은 성공 처리기이며 다시 돌아올 URL을 알려주기 위해 스프링 보안에 뭔가를 가져와야한다는 것입니다. 그래서 내 자신의 처리기를 만들었더라도, 성공 후 무엇을해야할지를 말하지 않으면, 요점은 논리적이지 않습니다. 그리고 나는 항상 그 방향에서 오는 것은 아닙니다. – Gregg

+0

나는 그 때의 질문을 정말로 이해할 수 있을지 확신하지 못한다. 로그인 한 후 알려진 URL로 리디렉션하는 방법을 묻는 것 같았습니다. 그렇다면 로그인 페이지로 리디렉션하기 전에 돌아갈 URL을 저장하는 방법 만 있으면됩니다. 당신이하는 일은 당신에게 달려 있습니다. 장바구니에 대한 세션이 이미있는 경우 세션을 저장하는 확실한 장소입니다. 스프링 보안에 들어가는 유일한 방법은'AuthenticationSuccessHandler'입니다. 핸들러 구현에서 저장된 URL을 검색하고 URL로 리디렉션하면됩니다. –

+0

글쎄, 네, 그랬어요. 그러나 저는 실제로 좀 더 통합 된 것을 찾고있었습니다. 그래도 지금은 충분히 좋습니다. – Gregg

관련 문제