1、安装jdk1.8
2、安装tomcat8
3、安装maven
4、下载cas-overlay
百度地址:
解压cas-overlay-template-5.3.zip
进入cas-overlay-template-5.3目录
执行:mvn clean package
将生成的cas目录复制到tomcat下
5、利用maven为cas下载连接数据库的依赖包
pom.xml内容如下:
4.0.0 fxma Word2Html 0.0.1-SNAPSHOT jar Word2Html http://maven.apache.org org.apereo.cas cas-server-support-jdbc-drivers ${cas.version} org.apereo.cas cas-server-support-jdbc ${cas.version} mysql mysql-connector-java 8.0.12 5.3.4 UTF-8 8.0.12
mvn -f pom.xml dependency:copy-dependencies
将下载的jar包复制到cas的lib目录下
设置cas的配置文件application.properties
将默认的静态用户名和密码配置注释掉
#cas.authn.accept.users=casuser::Mellon
增加如下内容:
#配置数据库连接cas.authn.jdbc.query[0].url=jdbc:mysql://127.0.0.1:3306/dsideal_db?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false#数据库用户名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#添加jdbc认证cas.authn.jdbc.query[0].sql=SELECT * FROM login WHERE login_name =?#哪个字段作为密码字段cas.authn.jdbc.query[0].fieldPassword=login_password#哪个字段作为过期字段 0:未过期 1:已过期cas.authn.jdbc.query[0].fieldExpired=expired#哪个字段作为是否可用字段 0:未禁用 1:已禁用cas.authn.jdbc.query[0].fieldDisabled=disabled
注:如上配置为明文密码
增加密码MD5加密配置
修改配置文件application.properties增加如下内容:
#配置加密策略cas.authn.jdbc.query[0].passwordEncoder.type=DEFAULTcas.authn.jdbc.query[0].passwordEncoder.characterEncoding=UTF-8cas.authn.jdbc.query[0].passwordEncoder.encodingAlgorithm=MD5
注:上面的配置md5加密为32位小写
增加对密码加盐处理
在上面的配置的基础上,增加如下代码,可以共存:
#数据库连接cas.authn.jdbc.encode[0].driverClass=com.mysql.cj.jdbc.Drivercas.authn.jdbc.encode[0].url=jdbc:mysql://127.0.0.1:3306/dsideal_db?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=falsecas.authn.jdbc.encode[0].user=rootcas.authn.jdbc.encode[0].password=123456#加密迭代次数cas.authn.jdbc.encode[0].numberOfIterations=2#该列名的值可替代上面的值,但对密码加密时必须取该值进行处理cas.authn.jdbc.encode[0].numberOfIterationsFieldName=#动态盐值用的字段cas.authn.jdbc.encode[0].saltFieldName=login_name#静态盐值cas.authn.jdbc.encode[0].staticSalt=654321cas.authn.jdbc.encode[0].sql=SELECT * FROM t_sys_loginperson WHERE login_name =?#对处理盐值后的算法cas.authn.jdbc.encode[0].algorithmName=MD5#哪个字段作为密码字段cas.authn.jdbc.encode[0].passwordFieldName=login_password#哪个字段作为过期字段 0:未过期 1:已过期cas.authn.jdbc.encode[0].expiredFieldName=expired#哪个字段作为是否可用字段 0:未禁用 1:已禁用cas.authn.jdbc.encode[0].disabledFieldName=disabled
java密码加盐代码:
public static void main(String[] args) { //静态盐值 String staticSalt = "654321"; //加密算法 String algorithmName = "MD5"; //密码明文 String encodedPassword = "123"; //动态盐值,就是登录名 String dynaSalt = "admin_en"; ConfigurableHashService hashService = new DefaultHashService(); hashService.setPrivateSalt(ByteSource.Util.bytes(staticSalt)); hashService.setHashAlgorithmName(algorithmName); hashService.setHashIterations(2); HashRequest request = new HashRequest.Builder() .setSalt(dynaSalt) .setSource(encodedPassword) .build(); String res = hashService.computeHash(request).toHex(); System.out.println(res); }
所需的jar包的pom.xml
org.apache.shiro shiro-core 1.3.2
jar包百度地址:
项目下载: