一、安裝jdk1.8html
http://www.javashuo.com/article/p-slarqsjr-cb.htmljava
二、安裝tomcat8mysql
三、安裝mavengit
http://www.javashuo.com/article/p-plzdkwih-bo.htmlgithub
四、下載cas-overlay算法
https://github.com/apereo/cas-overlay-template/tree/5.3sql
百度地址:https://pan.baidu.com/s/11xHLsGiUplmARRdI4PRtCA數據庫
解壓cas-overlay-template-5.3.zipapache
進入cas-overlay-template-5.3目錄tomcat
執行:mvn clean package
將生成的cas目錄複製到tomcat下
五、利用maven爲cas下載鏈接數據庫的依賴包
pom.xml內容以下:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>fxma</groupId> <artifactId>Word2Html</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>Word2Html</name> <url>http://maven.apache.org</url> <dependencies> <dependency> <groupId>org.apereo.cas</groupId> <artifactId>cas-server-support-jdbc-drivers</artifactId> <version>${cas.version}</version> </dependency> <dependency> <groupId>org.apereo.cas</groupId> <artifactId>cas-server-support-jdbc</artifactId> <version>${cas.version}</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.12</version> </dependency> </dependencies> <properties> <cas.version>5.3.4</cas.version> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <mysql.driver.version>8.0.12</mysql.driver.version> </properties> </project>
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=DEFAULT
cas.authn.jdbc.query[0].passwordEncoder.characterEncoding=UTF-8
cas.authn.jdbc.query[0].passwordEncoder.encodingAlgorithm=MD5
注:上面的配置md5加密爲32位小寫
增長對密碼加鹽處理
在上面的配置的基礎上,增長以下代碼,能夠共存:
#數據庫鏈接 cas.authn.jdbc.encode[0].driverClass=com.mysql.cj.jdbc.Driver cas.authn.jdbc.encode[0].url=jdbc:mysql://127.0.0.1:3306/dsideal_db?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false cas.authn.jdbc.encode[0].user=root cas.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=654321 cas.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
<dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-core</artifactId> <version>1.3.2</version> </dependency>
jar包百度地址:https://pan.baidu.com/s/1oqrOOm6p1ti-EHLrkeRDsQ