nginx+tomcat 的集群中,如何用ehcache解决shiro的授权问题?

Zemo 发布于 2016/09/02 16:54
阅读 927
收藏 1

为了实现热部署,用nginx在服务器做了两个tomcat的集群,但是现在两个tomcat的session不共享,如果一开始访问tomcat1,获取授权,再访问tomcat2 shiro就识别为未授权。

有人遇到过shiro在集群中的问题吗?

不想用redis缓存session,只用ehcache可以解决吗?


加载中
0
Martin_Luo
Martin_Luo

这个问题其实就是典型的集群后,应用鉴权的问题:

1、通过tomcat本身提供的插件,实现会话共享;其主要原理是将用户单点的会话信息通过广播的形式,将会话信息同步给其他节点,所有的集群节点都保存一份;

2、还有一种是通过sso服务,来做鉴权;其原理是将鉴权的工作,交给独立的模块负责;采用redis或其他缓存的形式只是一种"半sso"服务; 

建议你去看看shiro sso服务配置,可以解决你这个问题,复杂度也不高。

参看文章:http://www.360doc.com/content/12/0415/23/9318309_203895580.shtml


Zemo
Zemo
回复 @Martin_Luo : ok,最后共享了tomcat的session,ehcache使用rmi同步...
Martin_Luo
Martin_Luo
回复 @Zemo : 可以的,其原理对应第二条;将用户的会话信息,鉴权能力用户单独的模块来存储,处理;
Zemo
Zemo
如果不用redis和memcache呢?因为其他二级缓存用的是ehcache,所以想就用ehcache,用ehcache的jgroup可以实现吗?或者rmi
返回顶部
顶部