01 SpringSecurity 框架簡介
SpringSecurity 框架簡介
安全方面的兩個主要區域是“認證”和“授權”(或者訪問控制),一般來說,Web 應用的安全性包括使用者認證(Authentication)和使用者授權(Authorization)兩個部分,這兩點也是 Spring Security 重要核心功能。
(1)使用者認證指的是:驗證某個使用者是否為系統中的合法主體,也就是說使用者能否訪問該系統。使用者認證一般要求使用者提供使用者名稱和密碼。系統通過校驗使用者名稱和密碼來完成認證過程。通俗點說就是系統認為使用者是否能登入
(2)使用者授權指的是驗證某個使用者是否有許可權執行某個操作。在一個系統中,不同使用者所具有的許可權是不同的。比如對一個檔案來說,有的使用者只能進行讀取,而有的使用者可以進行修改。一般來說,系統會為不同的使用者分配不同的角色,而每個角色則對應一系列的許可權。通俗點講就是系統判斷使用者是否有許可權去做某些事情。
SpringSecurity 特點:
-
和 Spring 無縫整合。
-
全面的許可權控制。
-
專門為 Web 開發而設計。
舊版本不能脫離 Web 環境使用。
新版本對整個框架進行了分層抽取,分成了核心模組和 Web 模組。單獨引入核心模組就可以脫離 Web 環境。
-
重量級。
Shiro
Apache 旗下的輕量級許可權控制框架
特點:
輕量級。Shiro 主張的理念是把複雜的事情變簡單。針對對效能有更高要求
的網際網路應用有更好表現。
通用性。
◼好處:不侷限於 Web 環境,可以脫離 Web 環境使用。
◼缺陷:在 Web 環境下一些特定的需求需要手動編寫程式碼定製。
一般來說,常見的安全管理技術棧的組合是這樣的:
• SSM + Shiro
• Spring Boot/Spring Cloud + Spring Security
以上只是一個推薦的組合而已,如果單純從技術上來說,無論怎麼組合,都是可以執行的
在pom.xml 新增依賴
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
執行專案會跳出頁面進行登入
預設的使用者名稱:user
密碼在專案啟動的時候在控制檯會列印,注意每次啟動的時候密碼都回發生變化!