- 下載
先在網上下載cas-server-3.5.2,將里面的cas-server-webapp-3.5.2.war放到tomcat的webapps目錄下。 - 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是證書的密碼
- 啟動tomcat進行測試
方便復制:https://www.mycas.com:8443/cas-server-webapp-3.5.2/login
只要用戶名密碼一致就能登錄。 - 取消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。 - 結尾
至此,一個簡單的cas單點登錄服務端就算搭建完成了