CAS單點登錄學習(一):服務端搭建


  1. 下載
    先在網上下載cas-server-3.5.2,將里面的cas-server-webapp-3.5.2.war放到tomcat的webapps目錄下。
  2. https設置
    cas單點登默認使用的是https,所以需要證書,由於是個人測試和學習用的,可以用JDK自帶的keytool工具生成證書。
    2.1 用JDK生成證書:

    方便復制:keytool -genkey -alias mykey -keypass 123456 -keyalg RSA -validity 365 -keystore E:/cas/mykey.keystore -storepass 123456
    其中-keystore 的參數是存放生成證書的路徑,需要提前創建好。您的名字與姓氏那一欄輸入的是域名,而不能是ip。這里可以修改hosts文件:
    # localhost name resolution is handled within DNS itself.
    #    127.0.0.1       localhost
    #    ::1             localhost
         127.0.0.1       www.mycas.com

    2.2 導出證書:

    方便復制:keytool -keystore E:/cas/mykey.keystore -export -alias mykey -file E:/cas/mykey.cer
    2.3 使用證書
      這里可以直接雙擊mykey.cer文件安裝證書,將證書存儲到受信任的根證書頒發機構。或者為客戶端的JVM導入證書:

    方便復制:keytool -import -keystore "C:\Program Files\Java\jdk1.8.0_40\jre\lib\securit
    y\cacerts" -file E://cas/mykey.cer -alias mykey
    這里輸入的密碼:changeit
    2.4 修改tomcat配置
      打開tomcat的conf目錄下server.xml,找到

    1 <!--
    2 <Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol"
    3            maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
    4            clientAuth="false" sslProtocol="TLS" />
    5 -->

    將注釋打開,並改為

    1 <Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol"
    2            maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
    3            clientAuth="false" sslProtocol="TLS" 
    4            keystoreFile="E:/cas/mykey.keystore" keystorePass="123456" />

    其中keystoreFile是生成證書的路徑,keystorePass是證書的密碼

  3. 啟動tomcat進行測試

    方便復制:https://www.mycas.com:8443/cas-server-webapp-3.5.2/login
    只要用戶名密碼一致就能登錄。
  4. 取消https
    如果不想用https的方式,需要修改一些配置。
    4.1 找到WEB-INFO/deployerConfigContext.xml下
    1 <bean class="org.jasig.cas.authentication.handler.support.HttpBasedServiceCredentialsAuthenticationHandler"
    2     p:httpClient-ref="httpClient" />

    添加參數requireSecure為false,如下:

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

    4.2 找到WEB-INF/spring-configuration/ticketGrantingTicketCookieGenerator.xml下

    1 <bean id="ticketGrantingTicketCookieGenerator" class="org.jasig.cas.web.support.CookieRetrievingCookieGenerator"
    2     p:cookieSecure="true"
    3     p:cookieMaxAge="-1"
    4     p:cookieName="CASTGC"
    5     p:cookiePath="/cas" />

    將cookieSecure改為false,如下:

    1 <bean id="ticketGrantingTicketCookieGenerator" class="org.jasig.cas.web.support.CookieRetrievingCookieGenerator"
    2     p:cookieSecure="false"
    3     p:cookieMaxAge="-1"
    4     p:cookieName="CASTGC"
    5     p:cookiePath="/cas" />

    4.3 找到WEB-INF\spring-configuration\warnCookieGenerator.xml下

    1 <bean id="warnCookieGenerator" class="org.jasig.cas.web.support.CookieRetrievingCookieGenerator"
    2     p:cookieSecure="true"
    3     p:cookieMaxAge="-1"
    4     p:cookieName="CASPRIVACY"
    5     p:cookiePath="/cas" />

    將cookieSecure改為false,如下

    1 <bean id="warnCookieGenerator" class="org.jasig.cas.web.support.CookieRetrievingCookieGenerator"
    2     p:cookieSecure="false"
    3     p:cookieMaxAge="-1"
    4     p:cookieName="CASPRIVACY"
    5     p:cookiePath="/cas" />

    4.4 找到tomcat的conf目錄下server.xml
    把之前打開的注釋關閉。測試如下:

    方便復制:http://www.mycas.com:8088/cas-server-webapp-3.5.2/login
    這里我把tomcat的端口改成了8088。

  5. 結尾
    至此,一個簡單的cas單點登錄服務端就算搭建完成了

 


免責聲明!

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



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