SpringBootSecurity學習(07)網頁版登錄整合JDBC


數據庫中定義用戶

前面我們定義用戶是在配置文件和代碼中定義死的默認用戶,一般在開發中是不會這樣做的,我們的用戶都是來自我們的用戶表,存儲在數據庫中。操作數據庫的技術有很多,spring security默認支持了一個JDBC的方式,下面用這個方式來從數據庫中查詢用戶。首先定義用戶表users:

file

enabled字段表示是否啟用,改為0表示不允許此用戶登錄。在表里面添加兩個用戶 :

file

注意密碼前面都加了{noop}是JDBC這種查詢方式默認的加密算法。實際上,這種方式還需要定義好幾個表,此處我們演示定義一個users用戶表就足夠了。

添加依賴

因為加入了數據庫,所以我們要添加兩個依賴:

file

數據源按照springboot的方式配置即可:

file

配置jdbc

刪除原來在配置類中定義的內存用戶,在配置類中增加一個Bean:

file

這樣使用jdbc從數據庫中查詢用戶就完全配置好了,啟動可以使用 admin/admin和user/123456兩個用戶登錄。

說明

這種jdbc的方式配置是很簡單的,但是有很多定義死的內容,比如表明和表中的三個字段,不過這些也是可以進行修改的。

上面的配置類中,使用了JdbcUserDetailsManager類,我們來進入這個類,看一下內容:

file

可以看到里面有很多默認的sql語句,這也解釋了為什么用戶表要叫user,為什么是上面定義的三個字段,增刪改查用戶都執行了哪些語句。而且默認的語句中不僅有users用戶表,還有 groups表,authorities權限表,等等一些其它的表,從這些結構中就能看出把整個權限系統的架構規划了出來。我們要修改默認的語句可以調用對應的set方法:

file

但是盡管所有的都可以配置,對於實際業務來說還是太死板了,尤其對於稍微大型的項目,對權限系統的個性化設計占很大成分,因此這種jdbc的方式適應性不是很大。后面會介紹更加實用的mybatis方式。

代碼地址:https://gitee.com/blueses/spring-boot-security 07


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM