Cas(5)-修改Cas Server的其它配置

1.1     修改host.name

       host.name是定義在cas.properties文件中的一個屬性。該屬性將被定義在uniqueIdGenerators.xml文件中的各種UniqueTicketIdGenerator用來生成TGT、ST等ticket。默認在生成這些ticket時會將host.name作爲對應ticket的後綴。host.name的設置在集羣環境下將非常有用,其值對於每個節點來說都必須是唯一的,這樣在整個集羣環境下生成出的各種ticket也必定是唯一的。當然,如果只是在單機環境下使用,我們也可以不修改它。

 

1.2     修改SSO Session的超時策略

       SSO Session的超時策略是由TicketGrantingTicketExpirationPolicy來描述的,其定義在ticketExpirationPolicies.xml文件中的。以下是其定義:

    <!-- Provides both idle and hard timeouts, for instance 2 hour sliding window with an 8 hour max lifetime -->

    <bean id="grantingTicketExpirationPolicy" class="org.jasig.cas.ticket.support.TicketGrantingTicketExpirationPolicy"

          p:maxTimeToLiveInSeconds="${tgt.maxTimeToLiveInSeconds:28800}"

          p:timeToKillInSeconds="${tgt.timeToKillInSeconds:7200}"/>

 

       我們可以看到它需要指定兩個參數,maxTimeToLiveInSeconds和timeToKillInSeconds,它們的單位都是秒。其中timeToKillInSeconds表示用戶在多久不進行操作的情況下將超時,maxTimeToLiveInSeconds表示SSO Session的最大有效時間,從生成到指定時間後就將超時。timeToKillInSeconds默認是7200秒,即2小時;maxTimeToLiveInSeconds默認是28800秒,即8小時。用戶如果需要修改的話可以之前介紹的Maven War覆蓋的方式在ticketExpirationPolicies.xml文件中修改,也可以在cas.properties文件中通過對應的屬性進行修改。

 

1.3     修改允許管理service的角色

       有的時候我們需要查看或管理Cas Server端的service註冊情況。這就需要我們在cas.properties文件中指定用戶訪問service管理頁面需要的角色,這是通過cas.securityContext.serviceProperties.adminRoles來指定的,默認是ROLE_ADMIN。之後我們就可以通過訪問“/services/manage.html”來對Cas Server上註冊的service進行管理了。在訪問該URL時可能會出現國際化時某信息在zh_CN中找不到的問題,解決方法可以將對應的信息在messages_zh_CN.properties中加上,或者將messages_en.properties文件copy一份重命名爲messages.properties,英文版本的messages相對而言應該是比較全的。Cas Server的權限控制也是基於spring Security的,其主要配置文件是WEB-INF/spring目錄下的securityContext.xml文件,關於權限相關的內容可以在這裏查找。

 

1.4     修改logout後的重定向

       默認情況下,Cas客戶端應用通過Cas Server的logout登出後是會展示Cas Server的默認登出結果頁面的。如果用戶希望在Cas Server登出後能夠跳轉到自己的應用來,則可以在訪問Cas Server的logout時通過參數service傳遞登出後需要跳轉的地址。有一點需要注意的是指定的service需要是在Cas Server註冊過的,我們可以通過訪問Cas Server的“/services/manage.html”對service進行管理,包括增、刪、改、查等。另外我們還需要啓用Cas Server在logout後的重定向功能,該功能默認是不啓用的。通過去掉cas.properties文件中屬性cas.logout.followServiceRedirects=false前面的註釋,並修改其值爲true可以啓用logout後的重定向了。

 

1.5     禁用logout後的回調

       默認情況下在通過訪問Cas Server的logout進行登出後Cas Server將依次回調其中註冊的各個Cas Client應用,以進行單點登出。如果用戶不希望Cas Server在logout後回調Cas Client應用,則可以通過設置cas.properties文件中的slo.callbacks.disabled=true來禁用其回調。

 

1.6     修改service ticket的超時時間

       service ticket的默認有效時間是10秒。通常來說這已經足夠了,因爲從Cas Server生成service ticket返回給Cas client應用,到Cas client應用發送service ticket到Cas Server進行驗證這個過程10秒已經足夠。這也是爲什麼如果我們使用debug追蹤Cas應用的認證過程時經常會失敗的原因,因爲追蹤的時候service ticket已經過了10秒的有效期了。如果用戶需要修改它可以通過cas .properties文件中的st.timeToKillInSeconds屬性進行修改。

 

(注:本文是基於Cas3.5.2所寫,原文地址:http://haohaoxuexi.iteye.com/blog/2137767


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章