天天看點

Spring Security系列-Spring Security簡單身份認證配置(一)前言源代碼

前言

本文在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 Security系列-Spring Security簡單身份認證配置(一)前言源代碼

當我們引用spring-boot-starter-security時,程式會自動執行以下步驟

  1. 通過類SecurityAutoConfiguration,讀取類SecurityProperties中的預設配置。其中,使用者名為user,密碼是通過UUID生成的随機數
    Spring Security系列-Spring Security簡單身份認證配置(一)前言源代碼
  2. SecurityContextPersistenceFilter:這個Filter會幫我們把HttpRequest中SessionId提取出來,然後在HttpSessionSecurityContextRepository中找到比對的認證資訊(authentication),最後存放到SecurityContextHolder中
  3. AnonymousAuthenticationFilter:如果SecurityContextHolder中沒有認證資訊(authentication)時,這個Filter會建立一個匿名的AnonymousAuthenticationToken作為認證資訊,同樣也存放到SecurityContextHolder中
  4. 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

繼續閱讀