CentOS安裝CAS 5.3.4服務端

一、安裝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

 

項目下載:https://pan.baidu.com/s/1-DujChC3BjhtDaUq0xw6WA

相關文章
相關標籤/搜索