我需要在有人登录时设置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
答案 0 :(得分:2)
完全不同的东西,你为什么不打印那个值,好像它是一个JS变量?
<script>
var something = '${somebean.someproperty}';
if (something) {
performActionWith(something);
}
</script>