cas服務端的構建
- 依賴環境
jdk1.8
maven
# 查看java版本號
java -version
# a查看maven版本號
mvn -v
- 下載cas源碼
https://github.com/apereo/cas-overlay-template/tree/5.3
3. 解壓、編譯、打包
mvn clean package -DskipTests
耗時可能會很久
打吧完成後,在target目錄下生成war
- 將cas.war放在tomcat的webapps目錄下,啓動tomcat
- 瀏覽器訪問
http://server:8080/cas/login,默認用戶名和密碼爲casuser+Mellon,server是我的機器名稱
關閉https
- cas\WEB-INF\classes\application.properties,新增配置
cas.tgc.secure=false
cas.serviceRegistry.initFromJson=true
- cas\WEB-INF\classes\services\HTTPSandIMAPS-10000001.json,修改
"serviceId" : "^(https|http|imaps)://.*"
修改密碼
cas\WEB-INF\classes\application.properties,修改
cas.authn.accept.users=admin::admin
cas + mysql
- 創建mysql表並添加一條數據
DROP TABLE IF EXISTS `user_info`;
CREATE TABLE `user_info` (
`uid` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(50) DEFAULT '' COMMENT '用戶名',
`password` varchar(256) DEFAULT NULL COMMENT '登錄密碼',
`name` varchar(256) DEFAULT NULL COMMENT '用戶真實姓名',
`id_card_num` varchar(256) DEFAULT NULL COMMENT '用戶身份證號',
`state` char(1) DEFAULT '0' COMMENT '用戶狀態:0:正常狀態,1:用戶被鎖定',
PRIMARY KEY (`uid`),
UNIQUE KEY `username` (`username`) USING BTREE,
UNIQUE KEY `id_card_num` (`id_card_num`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;
insert into user_info(`username`, `password`) values('admin', '123456')
- pom.xml添加依賴並重新打包
<dependency>
<groupId>org.apereo.cas</groupId>
<artifactId>cas-server-support-jdbc</artifactId>
<version>${cas.version}</version>
</dependency>
<dependency>
<groupId>org.apereo.cas</groupId>
<artifactId>cas-server-support-jdbc-drivers</artifactId>
<version>${cas.version}</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.36</version>
</dependency>
- cas\WEB-INF\classes\application.properties,註釋默認靜態賬戶
# cas.authn.accept.users=casuser::Mellon
- cas\WEB-INF\classes\application.properties,新增
#添加jdbc認證
cas.authn.jdbc.query[0].sql=select * from user_info where username = ?
#那一個字段作爲密碼字段
cas.authn.jdbc.query[0].fieldPassword=password
#配置數據庫連接
cas.authn.jdbc.query[0].url=jdbc:mysql://server:3306/cas?characterEncoding=utf8&useSSL=true
cas.authn.jdbc.query[0].dialect=org.hibernate.dialect.MySQLDialect
#數據庫用戶名
cas.authn.jdbc.query[0].user=root
#數據庫密碼
cas.authn.jdbc.query[0].password=123456
#mysql驅動
cas.authn.jdbc.query[0].driverClass=com.mysql.jdbc.Driver
- 使用admin + 123456登錄
Md5加密
cas\WEB-INF\classes\application.properties,新增
#配置加密策略
cas.authn.jdbc.query[0].passwordEncoder.type=DEFAULT
cas.authn.jdbc.query[0].passwordEncoder.characterEncoding=UTF-8
cas.authn.jdbc.query[0].passwordEncoder.encodingAlgorithm=MD5
密碼修改爲:md5(123456) = e10adc3949ba59abbe56e057f20f883e,再次登錄。