創(chuàng)建spring boot工程
添加起始依賴 web、Security
pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.4.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.yang</groupId>
<artifactId>spring-security</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>spring-security</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
</project>
啟動類SpringSecurityApplication添加api
@RestController
@SpringBootApplication
public class SpringSecurityApplication {
public static void main(String[] args) {
SpringApplication.run(SpringSecurityApplication.class, args);
}
@GetMapping("/hi")
public String hi (){
return "hi,spring-security";
}
}
啟動項目
訪問http://localhost:8080/hi
發(fā)現(xiàn)路徑自動跳轉(zhuǎn)到http://localhost:8080/login 提示要求登錄
當引入Spring Security 后,沒有添加任何的配置或攔截編碼,但是Spring Security有一個默認的運行狀態(tài),
要求經(jīng)過HTTP基本認證后才能訪問URL資源
默認用戶名 user
默認動態(tài)密碼 控制臺打印
Using generated security password: 5f226ca2-5bc6-4e45-9f67-94760c5353bd
輸入用戶名和密碼,點擊 Sign in
頁面跳轉(zhuǎn) http://localhost:8080/hi,頁面輸出 hi,spring-security
我們也可以自定義登錄用戶名和密碼
打開配置文件application.yml
添加配置
spring:
security:
user:
name: caoshenyang
password: 123456
重新啟動項目
發(fā)現(xiàn)控制臺不再打印密碼
訪問接口http://localhost:8080/hi
輸入自定義的用戶名密碼
登錄成功
通常情況下一般不會選擇這種HTTP基本認證的方式,因為安全性差、無法攜帶cookie,靈活性不足。
基本采用表單認證,自己實現(xiàn)驗證邏輯,提高安全性