SpringSecurity使用json登陸


   

一、創建項目並導入依賴

   

<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>

   

   

二、相關配置和代碼

   

2.1)application.properties配置密碼

   

注:我這里從簡,可以先去看https://www.cnblogs.com/fernfei/p/12185186.html如何配置密碼

   

spring.security.user.name=admin

spring.security.user.password=123

   

2.2)創建自定義的身份過濾類

   

   

2.3)寫json登陸之前先看一下源碼,了解一下它是如何表單登錄的

   

2.3.1)在Idea中連按連下shift鍵,搜索UsernamePasswordAuthenticationFilter類

   

   

2.3.2)進入后再按Ctrl+F12可以查看該類的所有方法

   

   

2.3.3)進入方法

   

   

   

2.3.4)我們只需要在request.getParameter()那里重寫一下不就可以實現json登陸

   

重寫attemptAuthentication(HttpServletRequestrequest,HttpServletResponseresponse)方法

   

只需要復制父類的方法,多加一個判斷json的方法。就能同時支持key-value形式可json形式的參數了

   

   

   

3)創建SecurityConfig配置類

   

   

注:自定義的過濾類和security原來那個表單登陸過濾設置是分開的

   

體現在filter.setFilterProcessesUrl()和loginProcessingUrl

因此表單登陸和json登陸的,successHandler判斷也要分開寫,

一會下面有效果圖也可以印證這一點

   

   

4)創建controller

   

   

   

三、效果圖

   

   

測試工具PostMan

   

訪問被保護的hello路徑

   

   

json登陸

   

   

表單登陸

   

   

由此證明這倆個登陸的配置要分開設置


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM