CAS單點登錄學習筆記--CAS Server搭建(一)

CAS單點登錄學習筆記–CAS Server搭建(一)

最近在學習單點登錄框架CAS,首先先嚐試搭建CAS Server,在其中遇到了各種問題,也參考了很多前輩的博客文章。做一個總結,避免以後走彎路。
一、下載cas server源代碼,這裏下載cas 4.2.7版本
1、下載地址:https://github.com/apereo/cas/releases/tag/v4.2.7
2、首先確保本地安裝配置好了gradle,jdk。我本地配置 gradle用的4.6版本;jdk用的1.8版本
3、進入DOS窗口運行gradle -version和java -version看環境是否配置好。
4、解壓第一步下載的cas 4.2.7版本,進入到cas-server-webapp目錄,執行gradle build


注意事項:
1、cas 4.2.7版本默認jdk是1.7,我本地配置的jdk1.8;所以修改代碼中的jdk版本。gradle.properties
sourceCompatibility=1.8
targetCompatibility=1.8

2、有個jar包中央倉庫中沒有,nl.eveoh:gradle-aspectj:1.6,自己去github:https://github.com/eveoh/gradle-aspectj下載下來編譯打包,並上傳到Maven倉庫

mvn install:install-file -Dfile=F:\workspace_sourceCode\gradle-aspectj-1.6\gradle-aspectj-1.6\build\libs\gradle-aspectj-1.6.jar -DgroupId=nl.eveoh -DartifactId=gradle-aspectj -Dversion=1.6 -Dpackaging=jar

3、修改build.gradle的倉庫下載順序,優先有本地倉庫下載jar包。
在這裏插入圖片描述
在這裏插入圖片描述
二、生成jdk證書
1、生成jks

keytool -genkey -alias cascer -keyalg RSA -keypass 123456 -keystore cascer.jks -storepass 12345

在這裏插入圖片描述
2、導出cer證書

keytool -export -file cascer.cer -alias cascer -keystore cascer.jks -storepass 123456

3、將cer證書導入到jdk中被信任:

將cascer.cer拷貝到D:\tools\java\jre1.8.0_25\lib\security,進入DOS窗口的D:\tools\java\jre1.8.0_25\lib\security目錄
輸入:keytool -import -trustcacerts -alias cascer -file cascer.cer -keystore "D:\tools\java\jre1.8.0_25\lib\security\cacerts" 
輸入密碼:changeit
 java中cacerts證書庫默認密碼爲changeit
需要自行修改cacerts文件路徑

在這裏插入圖片描述
如果報錯FileNotFound錯誤就是沒導入成功,cas客戶端訪問的時候會報錯。
三、配置TOMCAT
1、將第生成的包cas-server-webapp-4.2.7.war,拷貝到webapps目錄下,修改成cas.war包,解壓,然後刪除war包
2、配置修改tomcat的配置conf/server.xml

    <Connector port="8443" 
               maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
               clientAuth="false" sslProtocol="TLS" keystoreFile="conf/cascer.jks" 
			   keystorePass="123456" protocol="org.apache.coyote.http11.Http11NioProtocol"/>

3、修改WEB-INF\cas.properties的默認登錄用戶名和密碼,多個用戶名和密碼用逗號分隔

accept.authn.users=casuser::Mellon,root/123456

4、啓動tomcat,瀏覽器訪問:https://localhost:8443/cas,用casuser/Mellon登錄
在這裏插入圖片描述
登錄成功:
在這裏插入圖片描述
四、通過訪問數據庫,查詢表,登錄驗證
1、TOMCAT項目目錄\webapps\cas\WEB-INF\lib,新增兩個jar包cas-server-support-jdbc-4.2.7.jar,mysql-connector-java-5.1.32.jar
2、修改deployerConfigContext.xml,註釋掉

 <!--<alias name="acceptUsersAuthenticationHandler" alias="primaryAuthenticationHandler" /> -->

新增配置:

	<!--begin 從數據庫中查詢用戶名密碼 -->
	<bean id="MD5PasswordEncoder" class="org.jasig.cas.authentication.handler.DefaultPasswordEncoder" autowire="byName">
		<constructor-arg value="MD5"/>
	</bean>
	
	<bean id="queryDatabaseAuthenticationHandler" name="primaryAuthenticationHandler" class="org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler">
		<property name="passwordEncoder" ref="MD5PasswordEncoder" />
	</bean>
	
	<alias name="dataSource" alias="queryDatabaseDataSource"/>

	<bean id="dataSource" 
		class="com.mchange.v2.c3p0.ComboPooledDataSource" 
		p:driverClass="com.mysql.jdbc.Driver" 
		p:jdbcUrl="jdbc:mysql://127.0.0.1:3306/cas_server?characterEncoding=utf8" 
		p:user="root" 
		p:password="123456" 
		p:initialPoolSize="6" 
		p:minPoolSize="6" 
		p:maxPoolSize="18" 
		p:maxIdleTimeExcessConnections="120" 
		p:checkoutTimeout="10000" 
		p:acquireIncrement="6" 
		p:acquireRetryAttempts="5" 
		p:acquireRetryDelay="2000" 
		p:idleConnectionTestPeriod="30" 
		p:preferredTestQuery="select 1"/>
	<!--begin 從數據庫中查詢用戶名密碼 -->

備註:注意修改成自己的數據庫連接
3、修改\webapps\cas\WEB-INF\cas.properties文件

cas.jdbc.authn.query.sql=select password  from  user  where userName=? and isValid='1'

4、執行建表語句

drop table user;
CREATE TABLE `user` (
  `id` int(10) NOT NULL AUTO_INCREMENT,
  `userName` varchar(32) DEFAULT NULL COMMENT '用戶名',
  `password` varchar(64) DEFAULT NULL COMMENT ' MD5加密的密碼',
  `isValid` char(1) DEFAULT '0' COMMENT ' 是否有效 0-無效,1-有效',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1000000000 DEFAULT CHARSET=utf8;

INSERT INTO `user`(userName,password,isValid) VALUES ('root', 'e10adc3949ba59abbe56e057f20f883e', '1');
INSERT INTO `user`(userName,password,isValid) VALUES ('casuser', '9414f9301cdb492b4dcd83f8c711d8bb', '1');

備註:密碼是MD5加密的
用戶名/密碼:root/123456,casuser/Mellon
5、重新登錄驗證

參考博客:
https://blog.51cto.com/wangguangshuo/2050364
https://blog.csdn.net/u010734213/article/details/81774405

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