一般項目都會有嚴格的認證和授權操作,而在 Java 開發領域常見的安全框架有 Shiro 和 Spring Security。本文首先介紹下後者。
一、基本用法
1、什麼是 Spring Security ?
- Spring Security 是一個相對複雜的安全管理框架,功能比 Shiro 更加強大,權限控制細粒度更高,對 OAuth 2 的支持也更友好。
- 由於 Spring Security 源自 Spring 家族,因此可以和 Spring 框架無縫整合,特別是 Spring Boot 中提供的自動化配置方案,可以讓 Spring Security 的使用更加便捷。
2、安裝配置
我們只需要編輯 pom.xml,添加 spring-boot-starter-securtiy 依賴即可。添加後項目中所有的資源都會被保護起來。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
3、開始測試
(1)首先在項目添加一個簡單的 /hello 接口:
@RestController
public class HelloController {
@GetMapping("/hello")
public String hello() {
return "歡迎訪問 hangge.com";
}
}
(2)接着啓動項目,直接訪問 /hello 接口則會自動跳轉到登錄頁面(這個登錄頁面是由 Spring Security 提供的)
(3)我們必須登錄後才能訪問 /hello 接口。默認用戶名是 user,而登錄密碼則在每次啓動項目時隨機生成,我們可以在項目啓動日誌中找到。
(4)登錄後則會自動跳轉到之前我訪問的 /hello 接口:
4、配置用戶名和密碼
如果對默認的用戶名和密碼不滿意,可以在 application.properties 中配置默認的用戶名、密碼和角色。這樣項目啓動後就不會隨機生成密碼了,而是使用我們配置的用戶、密碼,並且登錄後還具有一個 admin 角色(關於角色的用法再後面的文章會相信介紹)。
spring.security.user.name=hangge
spring.security.user.password=123
spring.security.user.roles=admin