CAS 单点登录服务器集群部署

概要
在默认情况下,cas单点登录服务器时不支持集群的,支持集群需要解决的问题:

1.服务器session的同步问题

2.服务票据在不同机器上同步的问题

实现
1.部署架构
 



 

 

应用通过NGINX和后端的cas交互。

2.实现session集群
如果不实现session集群,那么登录时会出现登录不了的情况。

修改 web.xml 增加

复制代码
<filter>
        <filter-name>j2cache-session-filter</filter-name>
        <filter-class>com.redxun.cas.J2CacheSessionFilter</filter-class>
        <init-param>
            <param-name>session.maxSizeInMemory</param-name>
            <param-value>2000</param-value>
        </init-param>
        <init-param>
            <param-name>session.maxAge</param-name>
            <param-value>1800</param-value>
        </init-param>
      
        <init-param>
            <param-name>cookie.name</param-name>
            <param-value>J2CACHE_SESSION_ID</param-value>
        </init-param>
        <init-param>
            <param-name>cookie.path</param-name>
            <param-value>/</param-value>
        </init-param>
        <init-param>
            <param-name>cookie.domain</param-name>
            <param-value></param-value>
        </init-param>
    </filter>
 
    <filter-mapping>
        <filter-name>j2cache-session-filter</filter-name>
        <url-pattern>*</url-pattern>
    </filter-mapping>
复制代码
3.实现票据同步
默认情况下票据是每台cas服务器独立存储的,这样在集群的情况下,就会出现客户端验证票据时,找不到票据异常的报错。

 

复制代码
<bean id="ticketRegistry" class="com.redxun.cas.J2CacheTicketRegistry">
   <property name="cache" ref="iCache"></property>
   <property name="tgtTimeout" value="28800"></property>
   <property name="stTimeout" value="20"></property>
 </bean>
 <bean id="iCache" class="com.redxun.cas.J2CacheImpl" init-method="init" destroy-method="destroy"></bean>
复制代码
具体的代码在平台提供的项目中。

 

posted @ 2020-06-02 17:52  DarJeely  阅读(251)  评论(0编辑  收藏  举报