在Spring Security 3.0中登录时设置cookie

时间:2010-11-29 18:31:32

标签: session jsp cookies spring-mvc spring-security

我需要在有人登录时设置cookie,并且出现的JSP页面需要能够在Javascript中读取该cookie并基于它执行操作。我坚持的部分是在登录时设置cookie。我正在使用Spring 3.0和Spring Security 3.0。

我已经注册了一个LoginListener:

public class LoginListener implements ApplicationListener {
    public void onApplicationEvent(ApplicationEvent event) {
        if (event instanceof AuthenticationSuccessEvent) {
            somehowGetResponseObject.addCookie(new Cookie(name, value));
        }
    }
}

理想情况下,我也可以获取请求对象,以便找到contextPath并将其设置为cookie路径。我可以将cookie添加到ThreadLocal对象中,然后在我有权访问响应对象时读取它,但是稍后我会有访问权限吗?我不太热衷于将cookie添加到Session中,然后在生成的JSP页面中读取它,但如果必须的话,我会这样做。我可以访问HttpSession吗?

更新 :指定authentication-success-handler-ref解决了这个问题:http://static.springsource.org/spring-security/site/docs/3.0.x/reference/core-web-filters.html#form-login-flow-handling

1 个答案:

答案 0 :(得分:2)

完全不同的东西,你为什么不打印那个值,好像它是一个JS变量?

<script>
    var something = '${somebean.someproperty}';
    if (something) {
        performActionWith(something);
    }
</script>