1. 程式人生 > >SpringBootSecurity學習(01)網頁版登入入門介紹

SpringBootSecurity學習(01)網頁版登入入門介紹

Web應用安全管理

Web應用的安全管理,主要包括兩個方面的內容,一個是使用者身份的認證,即使用者登入的設計,二是使用者授權,即一個使用者在一個應用系統中能夠執行哪些操作的許可權管理。許可權管理的設計一般使用角色來管理,即給一個使用者賦予哪些角色,這個使用者就具有哪些許可權。

Spring框架體系中,經典的安全體系框架是Security。關於系統的安全管理及各種設計,Spring Security已經大體上都實現了,只需要一些配置和引用就能夠正常使用。SpringBoot使用Security更加的簡單,因為SpringBoot本身的簡單配置使用加上Security的功能豐富全面,可用快速幫助我們構建完善的登陸認證服務。

關於Security,SpringBoot本身有spring-boot-starter-security依賴元件,Spring Cloud微服務全家桶中也有spring-cloud-starter-security依賴元件,並且spring-cloud-starter-security中也包含了spring-boot-starter-security,下面的學習中,會先使spring-boot-starter-security,然後再spring-cloud-starter-security學習安全管理的功能,從SpringBoot單體的登陸註冊和許可權管理,到Spring Cloud微服務中構建認證和授權服務,都會一一接觸到。

關於版本的問題,我從SpringBoot1.3.x版的使用到2.1.x的使用,Security的配置也經歷了不小的變化,最準確的配置建議去官網文件學習。
下面的學習中,將使用2.1.5版本,官方文件地址是: https://docs.spring.io/spring-boot/docs/2.1.5.RELEASE/reference/htmlsingle/ 。 Security的原始碼非常複雜,因此我們後面再討論深層次的東西,現在來用例項進行入門學習。

入門例子

先來看一個入門例子,springboot專案結構我們都很熟悉,先來看依賴:

依賴很簡單,除了一個web元件和thymeleaf檢視元件,就是一個security。接下來看一下啟動類:

可以看到啟動類沒有任何特殊的配置。至於配置檔案,我們簡單的配置一下埠,其它不做任何配置:

這樣一個簡單的入門例子就完成了,現在來啟動專案,啟動日誌很短,可以看到有一行特殊的日誌:

這是我們加入了security元件的依賴之後,引入了security的預設配置,此時就有了一個簡單的登入功能,打印出的一行是預設密碼的資訊,這個密碼是現在沒有任何程式碼和配置的狀態下每次啟動隨機生成的,security不僅會生成一個預設密碼,依賴元件中還有一個預設的登陸連結/login,還有一個預設的使用者名稱 user,而且在springboot2.1.x版本中,這個/login有一個非常不錯的預設登入頁面,下面進行測試:

使用者名稱輸入user,密碼輸入日誌中打印出的隨機密碼,登入成功後,就會跳轉到預設地址,預設成功的地址就是登入地址去掉/login,

現在沒有定義任何連結匹配這個地址,我們來定義一個簡單的頁面,在resource下面,新建一個templates資料夾,在templates下面新建一個主頁 home.html,內容如下:

然後定義一個controller跳轉到這個頁面:

這樣我們登陸成功後,就能自動跳轉到這個頁面:

這樣,一個最簡單的登入流程就完成了,我們幾乎沒有做任何配置,只是引入了一個依賴而已。下面我們給security配置一個預設使用者名稱密碼,這樣就不用每次啟動都用隨機密碼,直接在springboot的預設配置檔案中配置:

這樣等登陸就可以使用 admin/admin登陸了。

程式碼地址 :https://gitee.com/blueses/spring-boot-security