前面一節應該已經告訴大家如何搭建cas的服務器了,可是搭建好能用嗎?我們現在的用戶驗證是在哪呢?哪個默認的用戶名和密碼有是在哪呢?
本節就講一下如何使用cas服務器連接我們自己的用戶數據庫,畢竟沒有哪個公司的用戶是寫死在配置文件上的。好了,言歸正傳把,這邊我就使用mysql來做為列子。 在5.0版本之前配置數據庫進行認證是直接在xml里面注入相應的bean以及驅動,但是5.0之后大改了一下,使用配置文件來達到數據庫的操作。可能你會問為什么只要配置幾個配置就能到達操作數據庫的的作用,因為cas其實已經幫我們實現了好多的類,而配置文件的配置是讓他自己能找到相應的類去執行,比如你配置數據庫的普通驗證,他就去找相應的方法,如果你配置加密的,他就會去找其他的,如果你要自定義的話,你就按照他的那種方法去定義。
好了,直接看下面把: 之前我們不是將cas放到tomcat里面運行了嗎,里面有一個叫做application.properties的文件,我們的配置就要寫在里面,如下圖所示
我們看到的最后一行就是設置的默認密碼,前面配置的就是端口號以及證書等等。這個暫時對我們沒有什么用處。我們就直接看下如何去連接數據庫進行用戶的驗證。其實這些東西官方文檔上面都已經給出了,可以自己去查看。
要想進行數據庫的連接,必須要導入一些必要的包,比如數據庫驅動,mysql連接等包,這些maven都能在網上找到,我這邊就例舉我使用的pom文件
<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>6.0.6</version> </dependency> </dependencies> <properties> <cas.version>5.2.4</cas.version> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <mysql.driver.version>6.0.6</mysql.driver.version> </properties> </project>
拷貝 全部.jar 到目錄C:\Program Files\Apache Software Foundation\Tomcat 8.5\webapps\cas\WEB-INF\lib 下。
修改 C:\Program Files\Apache Software Foundation\Tomcat 8.5\webapps\cas\WEB-INF\classes\application.properties
然后在配置文件里面加上如下簡單的配置就可以達到數據庫的訪問了
cas.authn.jdbc.query[0].url=jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false cas.authn.jdbc.query[0].user=root cas.authn.jdbc.query[0].password=dsideal
cas.authn.jdbc.query[0].sql=select * from test_table where name=? cas.authn.jdbc.query[0].fieldPassword=password
cas.authn.jdbc.query[0].driverClass=com.mysql.jdbc.Driver
這時候我們在進行mvn clean package命令的時候會重新生成一個war包,我們將這個新的war包放入到tomcat里面並啟動可以看到如下圖所示
我們使用數據庫里面的數據來進行登錄.
我們現在使用的是密文密碼,更多時候我們使用的是加密的密碼,而cas也為我們提供了這些,比如最簡單的md5、加鹽以及sha等,cas都提供了只要自己在配置文件里面加就可以了,但是很多時候我們的密碼不是簡單的這些,這時候就需要我們自己自定義加密了,其實配置文件里面有個cas.authn.jdbc.query[0].passwordEncoder.type這個屬性的作用就是我們自己自定義加密使用。只需要實現passwordEncoder(或者其他)這個接口,然后里面寫你的加密邏輯即可。
