tomcat 使用 memcached管理session ,并且实现统一登录

作者: admin 分类: memcached, tomcat 发布时间: 2011-11-25 14:59 ė 6 3条评论

把tomcat的session存放在memcached 的集中式缓存中,所有的tomcat共享memcached中的httpsession,能够很好解决tomcat的集群负载,不用使用笨重的session复制,也能轻松解决session数据的同步

把所有的jar文件复制到 tomcat/lib下
把context.xml 复制到 tomcat/conf 下,注意修改memcached的连接
后台的session是共享的,如果前台的JSESSIONID也是共享的,不就可以实现统一登录了吗?
在同一域名下 例如 test1.abc.com 和 test2.abc.com 浏览器是允许共享cookie的,
只需要把JSESSIONID的作用域设定为 abc.com 就可以了
修改 tomcat org.apache.catalina.connector.Request.java
protected void configureSessionCookie(Cookie cookie) 这个方法
设置cookie作用域为主域名,例如 abc.com

最新的Tomcat7 已经可以自己定义jsessionid的作用域了.不需要再修改 request 了.

<Context path=”/” docBase=”D:\webapp” reloadable=”false”
sessionCookiePath=”/” sessionCookieDomain=”abc.com” 
sessionCookieName=”jsessionid”/>

tomcat 6.0.32 和 tomcat6.0.33的Request是不同的
我已经处理好了编译好的 class
Request.class 类在 tomcat/lib/catalina.jar/org/apache/catalina/connector

关于统一登录sso,如果跨域名,可以通过iframe创建不同域名下的jsessionid.跨语言可以通过jsessionid直接从memcached中查找值,找到当前用户的登陆信息,我目前是开了一个服务(jsp页面)让第三方系统调用,因为是在同一个浏览器中打开,可以获取jsessionid作为参数传递,直接从memcached中查找登陆信息.

下载打包资源

本文出自weicms.net,转载时请注明出处及相应链接。

本文永久链接: http://www.weicms.net/2011/11/25/tomcat-memcached-session-sso.html

3条评论

  1. qvp8 2012 年 11 月 29 日 13:34

    不明白但感性趣。新浪微博多少,观注一下

  2. qvp8 2012 年 11 月 29 日 13:34

    不明白但感性趣。新浪微博多少,观注一下 😛

  3. admin 2012 年 11 月 29 日 14:14

    呵呵,暂时没有新浪微博啊,你可以再博客给我留言.也可以给我发邮件9iuorg@gmail.com
    http://my.oschina.net/baobao 我的oschina账号

Ɣ回顶部