前言
本文在SpringBoot架構下,使用SpringSecurity配置一個最基礎的身份認證。
引用Spring Security元件
下面粘貼了pom.xml的關鍵部分,需要看到詳細資訊,請檢視的github項目連結
<!--spring security-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
啟動SpringBoot項目
啟動SpringBoot項目,通路http://127.0.0.1:8080/,頁面會自動跳轉到login頁面

當我們引用spring-boot-starter-security時,程式會自動執行以下步驟
- 通過類SecurityAutoConfiguration,讀取類SecurityProperties中的預設配置。其中,使用者名為user,密碼是通過UUID生成的随機數
Spring Security系列-Spring Security簡單身份認證配置(一)前言源代碼 - SecurityContextPersistenceFilter:這個Filter會幫我們把HttpRequest中SessionId提取出來,然後在HttpSessionSecurityContextRepository中找到比對的認證資訊(authentication),最後存放到SecurityContextHolder中
- AnonymousAuthenticationFilter:如果SecurityContextHolder中沒有認證資訊(authentication)時,這個Filter會建立一個匿名的AnonymousAuthenticationToken作為認證資訊,同樣也存放到SecurityContextHolder中
- FilterSecurityInterceptor:這個Filter判斷我們通路的url位址。如果沒有認證,那麼就會跳轉至login頁面
當然Spring Security的整個過程會比上面的步驟更加複雜,後面我也會專門寫一篇關于Spring Security原理的文章。
配置Spring Security
知道了Spring Security是讀取SecurityProperties中配置,那麼我們可以添加application.yml檔案來覆寫預設的配置。
spring:
security:
user:
name: admin
password: 123456
在添加了上面的配置後,我們進入登入頁面時,就可以輸入自己定義的使用者名和密碼了。
源代碼
github項目位址,https://github.com/camellibby/security-demo