关闭

Redis学习笔记(七)nginx+tomcat反向代理下使用tomcat-redis-session-manager进行session共享中值得注意的一个问题

251人阅读 评论(0) 收藏 举报
分类:

公司目前项目使用nginx反向代理+多个tomcat进行负载均衡,之前使用ip_hash策略进行session控制。近期有考虑不再使用ip_hash策略,所以需要进行session共享。

根据项目实际情况,拟考虑使用开发配置比较简单,应用比较广泛的tomcat-redis-session-manager方式进行session共享,具体设置请参考 http://www.cnblogs.com/interdrp/p/4056525.html

公司原来项目使用spring security框架进行安全控制,在测试的时候发现一个诡异的问题,在前端登录的时候,自定义的session已经共享成功,但是登录提交后总是跳转到j_spring_security_check,security的content为空,security并没有创建和保存登录后的session。

发现一个问题,当自定义的session创建后,tomcat会调用tomcat-redis-session-manager将其序列化然后保存到redis上去,当使用request.getSession().setAttribute(key,value);设值的时候,如果value为null,空对象,则会造成异常,且此异常并不在项目代码中创建,难以追踪到。

所以一旦使用tomcat-redis-session-manager方式进行session共享,项目代码中在使用request.getSession().setAttribute(key,value)的时候,最好需要判断一下value是否为空对象。

1
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:198446次
    • 积分:4750
    • 等级:
    • 排名:第6113名
    • 原创:199篇
    • 转载:384篇
    • 译文:1篇
    • 评论:61条