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>

具體的代碼在平台提供的項目中。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM