1

스프링 보안 2.0.4를 사용하는 레거시 앱을 개발 중입니다. 사용자 지정 AbstractPreAuthenticatedProcessingFilter 및 PreAuthenticatedAuthenticationProvider를 만들었습니다. 고객의 로그인 서버에서 오는 요청의 매개 변수로 전송 된 전자 메일 주소를 기반으로 사용자를 만들고 인증합니다. (그다지 안전하지는 않지만 그 요구 사항입니다.)스프링 MVC 2.5 - 사용자 정의 사전 인증 필터로 나를 기억하십시오.

이 모든 것이 잘 작동하지만 내 문제는 사용자가 인증을 받으면 사용자 세션을 만들지 않고 현재 세션에 액세스 할 수 있도록 사용자 쿠키를 만들어야한다는 것입니다. 로그인 서버에 의해 재 지정됩니다.

AbstractPreAuthenticatedProcessingFilter 또는 PreAuthenticatedAuthenticationProvider에서 HttpServletRepsonse 개체에 액세스 할 수 없으므로 응답에 쿠키를 설정할 수 없습니다. RememberMeServices를 AbstractPreAuthenticatedProcessingFilter 클래스에 구현할 수는 있지만 이것이 올바른 방법인지 확실하지 않습니다.

누구나 올바른 방향으로 나를 가리킬 수 있습니까? 사용자 지정 기억 기능을 만들어야합니까? 사용자가 인증되면 쿠키를 설정하기 만하면됩니다. 그런 다음 앞으로의 요청을 위해 AbstractPreAuthenticatedProcessingFilter에서 쿠키를 확인하고 인증 된 주체를 반환 할 수 있습니다.

답변

1

단순히 오버라이드

이 새로운 필터를 만들거나 기억 - 나 (정말 사전 인증 할 일이 많이되어 있지 않음) 덤비는없이 고정 : AbstractPreAuthenticatedProcessingFilter # successfulAuthentication 이 나에게 HttpServletRepsonse에 대한 액세스 권한을 제공하고 인증 성공시에만 실행됩니다.