CAS4.0 + tomcat 學習記錄

環境


CAS官網 https://www.apereo.org/cas html

服務器端下載地址: https://www.apereo.org/cas/download java

客戶端下載地址:http://downloads.jasig.org/cas-clients/ web

先說一下個人環境,Server 和Client 都是在Windows下配置的,Linux應該也差很少。 spring

服務端版本:CAS Server 4.0.0 Release  客戶端版本 :cas-client-3.2.1-release.zip chrome

都是使用Tomcat配置的。 數據庫


    纔開始的時候在按照百度搜索的 http://www.th7.cn/Program/java/201409/281561.shtml 配置的,因爲網絡限制訪問Server端口比較少,就把https去掉了。省去了證書的部分。修改了服務器的兩個文件,就能夠了。 瀏覽器


不採用https驗證,服務器端須要配置

 修改第一處:

 cas/WEB-INF/deployerConfigContext.xml

<bean class="org.jasig.cas.authentication.handler.support.HttpBasedServiceCredentialsAuthenticationHandler"
p:httpClient-ref="httpClient"/>

 

 增長參數p:requireSecure="false",是否須要安全驗證,即HTTPS,false爲不採用。修改後爲:

  <bean class="org.jasig.cas.authentication.handler.support.HttpBasedServiceCredentialsAuthenticationHandler"
 p:httpClient-ref="httpClient"  p:requireSecure="false"/>



  修改第二處:

  cas/WEB-INF/spring-configuration/ticketGrantingTicketCookieGenerator.xml

<bean id="ticketGrantingTicketCookieGenerator" class="org.jasig.cas.web.support.CookieRetrievingCookieGenerator"

      p:cookieSecure="true"

      p:cookieMaxAge="-1"

      p:cookieName="CASTGC"

      p:cookiePath="/cas" />

 

參數p:cookieSecure="true",同理爲HTTPS驗證相關,TRUE爲採用HTTPS驗證,FALSE爲不採用https驗證。

參數p:cookieMaxAge="-1",簡單說是COOKIE的最大生命週期,-1爲無生命週期,即只在當前打開的IE窗口有效,IE關閉或從新打開其它窗口,仍會要求驗證。能夠根據須要修改成大於0的數字,好比3600等,意思是在3600秒內,打開任意IE窗口,都不須要驗證。

 這裏把 cookieSecure修改成false就好了



感受服務器端配置沒什麼難度,配置一次就經過了,主要就是數據庫配置的時候略顯複雜了一下。 安全


並且中間換了一次Tomcat,直接拷貝webapp下的項目就能夠了,遷移仍是很是方便的。 服務器

感受難點在client,網上說的配置不是很全,饒了一個彎,最後仍是在官網的文檔中找到的解決方案。 cookie


配置過程當中遇到的問題

org.jasig.cas.client.authentication.AuthenticationFilter配置中

必填參數

service和serverName兩個參數二選其一,剛剛開始的時候我填寫的http://localhost:8088,後來發現該頁面是登陸頁面,用戶須要再登陸一下,而後本身編寫了根據用戶名登陸的頁面,userLogin.jsp。
而後將serverName配置成http://localhost:8088/userLogin.jsp,可是發現登陸以後提示404,這是chrome提示的錯誤,而IE瀏覽器直接就是卡在SSO的登陸頁面,坑人。。
而後仔細查看地址發現單點登陸成功以後跳轉的地址爲:http://localhost:8088/userLogin.jsp/,與正確的地址多了一個斜線,百度了一下,發現有一個noFilter的參數,在web.xml文件中配置該參數以後不生效,依舊不生效,沒辦法了,看源碼,查過源碼以後肯定確實沒有改參數,這個應該是舊版本的問題,最後只能求助官網的文檔了,發現不光能夠配置serverName,還能夠將serverName替換成service,按照官方的文檔將serverName換成service,值仍是原來的值,一切就OK了。

相關文章
相關標籤/搜索