我正在使用一个使用Spring Security 2.0.4的遗留应用程序。我创建了一个自定义的AbstractPreAuthenticatedProcessingFilter和PreAuthenticatedAuthenticationProvider。他们根据来自客户登录服务器的请求中作为参数发送的电子邮件地址创建和验证用户。 (我知道这不是很安全,但这是要求)
这一切都运行正常但我的问题是我需要在用户通过身份验证后创建自定义cookie,这样他们就可以在当前会话之外访问应用程序而无需由登录服务器重定向。
我无法访问AbstractPreAuthenticatedProcessingFilter或PreAuthenticatedAuthenticationProvider中的HttpServletRepsonse对象,因此我不能在响应中设置cookie。我可以将RememberMeServices实现到AbstractPreAuthenticatedProcessingFilter类中,但我不确定这是否是正确的方法。
有人能指出我正确的方向吗?我是否需要创建自定义记住我的功能?我想要做的就是在用户通过身份验证后设置一个cookie(如果尚未存在)。然后,对于将来的请求,我可以在AbstractPreAuthenticatedProcessingFilter中验证cookie并返回经过身份验证的主体。
答案 0 :(得分:1)
修复了没有创建任何新过滤器或弄乱了记住我(它与预认证没有多大关系)
我只是覆盖:AbstractPreAuthenticatedProcessingFilter#successfulAuthentication 这使我可以访问HttpServletRepsonse,它只会在成功验证时触发。