基於CAS實現單點登錄(3):JDBC認證

1.創建數據庫cas

新增一張用戶表sys_user 說明:     

  • expired字段表示過期,1表示已過期,需要修改密碼     
  • disabled表示賬號是否禁用,1表示禁用

 

 

sys_user表數據

id    username    password            expired    disabled ----------------------------------------------------------------------------------------------------------------------------------------------- 1    admin    21232f297a57a5a743894a0e4a801fc3    0    1 2    wolfcode    71120db8bf616bcf5b913557587435ad    1    0 3    lanxw    fae0b27c451c728867a567e8c1bb4e53    0    0

說明:      

  • 如果採用MD5加密,那password就是MD5加密後的密文,sha同樣如此  
  • admin、wolfcode、lanxw明文密碼分別是admin、wolfcode、666

 

2.在POM文件中添加如下依賴:

<!--新增支持jdbc驗證-->
<dependency>
        <groupId>org.apereo.cas</groupId>
        <artifactId>cas-server-support-jdbc</artifactId>
        <version>${cas.version}</version>
</dependency>
<!--使用mysql驅動-->
<dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.21</version>
</dependency>

 

3.在application.properties新增如下配置

#jdbc驗證配置
#Query Database Authentication 數據庫查詢校驗用戶名開始
#查詢賬號密碼sql,必須包含密碼字段
cas.authn.jdbc.query[0].sql=select * from sys_user where username=?
#指定上面的sql查詢字段名(必須)
cas.authn.jdbc.query[0].fieldPassword=password
#指定過期字段,1爲過期,若過期需要修改密碼
cas.authn.jdbc.query[0].fieldExpired=expired
#爲不可用字段段,1爲不可用,
cas.authn.jdbc.query[0].fieldDisabled=disabled
#數據庫方言hibernate的知識
cas.authn.jdbc.query[0].dialect=org.hibernate.dialect.MySQLDialect
#數據庫驅動 
cas.authn.jdbc.query[0].driverClass=com.mysql.jdbc.Driver
 #數據庫連接 
cas.authn.jdbc.query[0].url=jdbc:mysql://localhost:3306/cas?useUnicode=true&characterEncoding=UTF-8
 #數據庫用戶名 
cas.authn.jdbc.query[0].user=root
 #數據庫密碼
cas.authn.jdbc.query[0].password=admin
 #默認加密策略,通過encodingAlgorithm來指定算法,默認NONE不加密 
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
 #Query Database Authentication 數據庫查詢校驗用戶名結束 #jdbc驗證配置

以上配置,如驅動,查詢數據庫等等需要根據不同的場景進行調整     

  • 若密碼無加密,調整passwordEncoder.type=NONE     
  • 若密碼加密策略爲SHA,調整passwordEncoder.encodingAlgorithm=SHA   
  •  若算法爲自定義,實現org.springframework.security.crypto.password.PasswordEncoder接口,並且把類名配置在passwordEncoder.type

配置完後運行程序,或者配置系統。

4.輸入admin/admin

 

5.輸入wolfcode/wolfcode

 

6.輸入lanxw/666

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章