Spring Security 學習
1. 初識Spring Security
Spring Security 是Spring提供的一套安全機制框架,對用戶訪問資源做登錄認證。
2. 搭建簡單Spring Security
創建一個基於SpringBoot框架的Web項目。
2.1 引入Maven SpringSecurity相關依賴
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-security</artifactId>
</dependency>
2.2 自定義Security Config配置類
@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
// 配置所有請求必須登錄之后才可以訪問
/*
此處采用httpBasic認證模式
*/
http.httpBasic()
.and()
.authorizeRequests()
.anyRequest().authenticated();
}
}
2.3 創建用戶查詢接口Controller
/**
* 用戶相關
*/
@RestController
@RequestMapping("/user")
public class UserController {
/**
* 查詢當前用戶信息
*/
@GetMapping("/getUserList")
public Map<String, Object> getUserList() {
return new HashMap<String, Object>(){{
put("username", "張三");
put("sex", "男");
put("age", "20");
}};
}
/**
* 用戶登錄
*/
@GetMapping("/login")
public Map<String, Object> login() {
return new HashMap<String, Object>(){{
put("code", 200);
put("msg", "登錄成功");
}};
}
}
2.4 啟動服務瀏覽器訪問下面地址
http://localhost:8080/user/getUserList
這個時候會發現彈出一個身份認證的彈出框,當不配置用戶名和密碼時,Spring Security 會默認提供
用戶名為: user
密碼為Console打印的一串字符串
- 當登錄成功后即可訪問查詢用戶信息的接口
2.5 配置自定義用戶名及密碼
在application.yml中配置用戶名及密碼
server:
port: 8080
spring:
security:
user:
name: zhangsan
password: zhangsan123