1、下载cas服务代码,https://github.com/apereo/cas-overlay-template/tree/5.3
2、使用idea工具打开cas-overlay-template-5.3包,使用maven工具加载pom里的jar包,此cas的jar包较大,大致需要等待两小时左右的下载依赖
3、使用maven打包工具,package命令生成运行包target,然后再项目中建立自己本地项目src/main/java和src/main/resources目录
4、将target包中/cas/WEB-INF/classes/services和application.properties和log4j2.xml和/cas/WEB-INF/classes/META-INF复制到resources目录,如图所示
5、将resources目录下的services中HTTPSandIMAPS-10000001.json内容修改如下,改为支持http访问
6、使用maven,clear清除缓存文件,package重新打包,使用tomcat运行此项目
注意:此项目使用jdk8,tomcat使用8以上,如下
6、项目启动成功之后,登录页面会自动打开浏览器,输入默认登录密码:casuser::Mellon
登出:地址栏/logout
至此,我们完成cas-server完成一半,以下继续操作
7、使用mysqlJDBC查询数据库登录,将application.properties文件中默认密码行注释
8、打开pom文件添加如下 依赖
<!-- 数据库 -->
<dependency>
<groupId>org.apereo.cas</groupId>
<artifactId>cas-server-support-jdbc</artifactId>
<version>5.3.16</version>
</dependency>
<dependency>
<groupId>org.apereo.cas</groupId>
<artifactId>cas-server-support-jdbc-drivers</artifactId>
<version>5.3.16</version>
</dependency>
<!-- MySQL JAR 包 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
</dependency>
8、向application.properties添加如下配置
# 注释静态验证的配置
cas.tgc.secure=false
cas.serviceRegistry.initFromJson=true
#加密迭代次数
cas.authn.jdbc.encode[0].numberOfIterations=3
#该列名的值可替代上面的值,但对密码加密时必须取该值进行处理
cas.authn.jdbc.encode[0].numberOfIterationsFieldName=
#盐值固定列
cas.authn.jdbc.encode[0].saltFieldName=account
#静态盐值
cas.authn.jdbc.encode[0].staticSalt=.
cas.authn.jdbc.encode[0].sql=SELECT * FROM user WHERE account =?
#对处理盐值后的算法
cas.authn.jdbc.encode[0].algorithmName=MD5
cas.authn.jdbc.encode[0].passwordFieldName=password
cas.authn.jdbc.encode[0].expiredFieldName=expired
cas.authn.jdbc.encode[0].disabledFieldName=disabled
#数据库连接
cas.authn.jdbc.encode[0].url=jdbc:mysql://127.0.0.1:3306/test?useSSL=false&useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&characterEncoding=UTF-8
#cas.authn.jdbc.encode[0].dialect=org.hibernate.dialect.MySQL5Dialect
cas.authn.jdbc.encode[0].driverClass=com.mysql.jdbc.Driver
cas.authn.jdbc.encode[0].user=root
cas.authn.jdbc.encode[0].password=123456
对应java密码生成代码,第一个admin是要加密的密码,第二个.admin是加盐值“.”+登录名admin,3=循环加密三遍
public static void main(String[] args) {
Md5Hash hash = new Md5Hash("admin",".admin",3);
System.out.println(hash.toHex());//b79e485e2d0550edb064e9bb11a70964
}
CREATE TABLE `user` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键id',
`name` varchar(50) DEFAULT NULL COMMENT '姓名',
`account` varchar(11) DEFAULT NULL COMMENT '账号',
`password` varchar(50) DEFAULT NULL COMMENT '密码',
`head_img` text COMMENT '头像',
`salt` varchar(6) DEFAULT NULL COMMENT '加盐值',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`createor` int(11) DEFAULT NULL COMMENT '创建人id',
`update_time` datetime DEFAULT NULL COMMENT '修改时间',
`updateor` int(11) DEFAULT NULL COMMENT '修改人id',
`is_del` int(11) DEFAULT '0' COMMENT '是否删除;0=否,1=是',
`system_id` varchar(200) DEFAULT NULL COMMENT '系统ID,标注该账号是哪个系统的账号',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8
至此。sso单点登录加盐完成,使用maven打包,再tomcat运行war包即可