SpringSecurity 自定義表單登入

2022-09-01 23:36:31 字數 3039 閱讀 9951

本篇主要講解 在springsecurity中 如何 自定義表單登入 , springsecurity預設提供了乙個表單登入,但是實際專案裡肯定無法使用的,本篇就主要講解如何自定義表單登入

1.1 使用idea

先通過idea 建立乙個springboot專案 並且依賴springsecurity,web依賴

此時pom.xml會自動新增

org.springframework.boot

spring-boot-starter-security

websecurityconfigureradapter 是springsecurity 提供的用於我們擴充套件自己的配置

實現websecurityconfigureradapter經常需要重寫的:

2.1 預設 websecurityconfigureradapter 為我們提供了一些基礎配置如下

protected void configure(httpsecurity http) throws exception
2.2 建立自定義的 websecurityconfigurer

1.formlogin() 開啟表單登入,該方法會應用 formloginconfigurer 到httpsecurity上,後續會被轉換為對應的filter

2.loginpage() 配置自定義的表單頁面

3.authorizerequests().anyrequest().authenticated(); 表示任何請求介面都要認證

@configuration

@slf4j

public class mywebsecurityconfig extends websecurityconfigureradapter

}

2.3 mylogin.html

啟動專案 並且直接訪問

http://localhost:8080
會發現瀏覽器報 重定向次數過多,這是什麼原因呢?這是因為 我們上面配置了 loginpage("/mylogin.html") ,但是這個路徑它沒有被允許訪問,也就是當重定向到/mylogin.html路徑後,還是會因為需要認證 被重定向道 /mylogin.html 導致該錯誤

只需要在配置的地方 新增 .antmatchers("/mylogin.html").permitall() 允許這個路徑

再次訪問,我們自定義的表單就顯示出來了(忽略樣式。。。)

此時我們輸入使用者名稱 user 密碼 : 控制台列印

using generated security password: 6bf253eb-c785-42b6-b147-b0fe2971586e
發現又跳轉到 /mylogin.html頁面,這是因為 當我們配置了 loginpage("/mylogin.html")之後 處理表單登入的過濾器它所攔截的請求就不再是 /login (預設是 /login) ,攔截的登入請求位址變成了 和 loginpage一樣的 mylogin.html此時如果將 action位址改成 /mylogin.html ,那麼再登入 就能成功

由於我們上面配置了 loginpage ,則對應登入介面路徑也變成了 loginpage所配置的 mylogin.html,但是當我們不想使用這個作為介面路徑的時候,可以通過以下配置來修改

通過 loginprocessingurl 類配置處理登入請求的路徑

記得和action 對應

至此springsecurity自定義登入頁面的配置 以及注意事項全部說完

本篇主要講解 在springsecurity中 如何 自定義表單登, 是不是非常簡單 ,但是也有一些要注意的點

1.擴充套件websecurityconfigureradapter

2.配置loginpage 頁面路徑

3.允許loginpage 頁面路徑 訪問

4.配置登入請求的路徑 loginprocessingurl

spring security 安全框架

本文 http itblood.com spring security security framework.html 安全常識 acegi介紹 以宣告式方式為基於spring的web應用新增認證和授權控制 acegi體系結構 認證管理器 訪問控制管理器。認證 authenticationproce...

SpringSecurity認證流程

在之前的文章 springboot spring security 基本使用及個性化登入配置 中對springsecurity進行了簡單的使用介紹,基本上都是對於介面的介紹以及功能的實現。這一篇文章嘗試從原始碼的角度來上對使用者認證流程做乙個簡單的分析。在具體分析之前,我們可以先看看springse...

SpringSecurity使用技巧

1 鑑權處理頁通常包括四個方面的設定,分別是鑑權失敗 鑑權成功 未鑑權訪問 已鑑權但訪問了受保護許可權。如何自 定義這四類處理。鑑權失敗的預設處理頁面是 spring security login?login error 其預設處理類為 urlauthenticationfailurehandler...