SpringSecurity6 | 登錄成功后的JSON處理

公眾號封面

?作者簡介:大家好,我是Leo,熱愛Java后端開發者,一個想要與大家共同進步的男人😉😉
🍎個人主頁:Leo的博客
💞當前專欄: Java從入門到精通
?特色專欄: MySQL學習
🥭本文內容:SpringSecurity6 | 登錄成功后的JSON處理
📚個人知識庫 :知識庫,歡迎大家訪問

學習參考 :

  • 講師:孫帥老師
  • 課程:孫哥說SpringSecurity6

image-20231030235443828

1.前言

大家好,我是Leo哥🫣🫣🫣,接到上一節,我們學習通過SpringSecurity登錄成功之后的一些頁面的跳轉。這篇文章我們主要來介紹一下我們通過自定義登錄界面之后的一些細節處理。好了,話不多說讓我們開始吧😎😎😎。

2.概述

在我們現在流行的前后端分離開發中,其實后端已經不需要再進行頁面的跳轉,前后端數據的交換都是通過JSON來進行流傳的。

就比如,我們后端登錄之后,只需要給前端返回一段JSON數據,告訴前端登錄成功即可,具體怎么做呢,我們接著向下看。

3.JSON處理

3.1 自定義Handle

首先我們需要自定義AuthenticationSuccessHandle并實現他的一些方法。

package org.javatop.custom.config;import cn.hutool.core.lang.hash.Hash;
import com.fasterxml.jackson.databind.ObjectMapper;
import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.core.Authentication;
import org.springframework.security.web.authentication.AuthenticationSuccessHandler;import java.io.IOException;
import java.util.HashMap;/*** @author : Leo* @version 1.0* @date 2023-12-10 22:03* @description : 響應成功之后的JSON*/
public class MyAuthenticationSuccessHandle implements AuthenticationSuccessHandler {@Overridepublic void onAuthenticationSuccess(HttpServletRequest request, HttpServletResponse response, Authentication authentication) throws IOException, ServletException {HashMap<String, Object> result = new HashMap<>();result.put("msg", "登錄成功");result.put("code", 200);response.setContentType("application/json;charset=utf-8");new ObjectMapper().writeValue(response.getWriter(), result);}
}

3.2 進行配置

在我們的 **MvcCconfig **中進行handler配置。

.successHandler(new MyAuthenticationSuccessHandle()) // 成功之后的JSON處理

然后重啟項目,進行測試。

image-20231210220826802

這個就是我們剛響應的JSON數據。

4.總結

以上便是本文的全部內容,本人才疏學淺,文章有什么錯誤的地方,歡迎大佬們批評指正!我是Leo,一個在互聯網行業的小白,立志成為更好的自己。

如果你想了解更多關于Leo,可以關注公眾號-程序員Leo,后面文章會首先同步至公眾號。

公眾號封面

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/212121.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/212121.shtml
英文地址,請注明出處:http://en.pswp.cn/news/212121.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Android:java.lang.SecurityException: Provider must not be exporte

java.lang.SecurityException: Provider must not be exporte 解決方案 首先在AndroidManifest.xml中添加provider android:authorities&#xff1a; 是用來標識provider的唯一標識&#xff0c;在同一部手機上一個"authority"串只能被一個app使用&#xff0c;沖突的話…

架構LNMP

目錄 1.安裝Nginx服務 2.安裝 MySQL 服務 3.安裝配置 PHP 解析環境 4.部署 Discuz&#xff01;社區論壇 Web 應用 1.安裝Nginx服務 實驗準備 systemctl stop firewalld systemctl disable firewalld setenforce 0 安裝依賴包 yum -y install pcre-devel zlib-devel gcc…

JavaScript中的async await基本使用

目錄 1. async await是什么2. 為什么會出現3. 需要怎么去使用4. 最終的結果解決什么5. 使用的注意點6. 常用的技巧 JavaScript中的async await是一種處理異步代碼的語法糖&#xff0c;它可以讓我們更加方便地處理異步操作&#xff0c;避免了回調地獄和Promise鏈式調用的問題。 …

Jmeter測試實踐:文件下載接口

一 Jmeter步驟 1.打開jmeter4.0&#xff0c;新建測試計劃&#xff0c;添加線程組。根據實際情況配置線程屬性。 2.添加HTTP請求。根據接口文檔進行配置。 Basic部分修改如下&#xff0c;Advanced部分保持默認。這里的參數id是文件的id&#xff0c;我進行了參數化&#xff0c…

vue基本運用之常見問題及案例代碼

前言 一些 Vue.js 的常見問題以及對應的案例代碼 Vue實例生命周期 問題描述:如何在Vue的生命周期鉤子中調用其他鉤子?案例代碼: new Vue({el: #app, created: function () {console.log(m

Redis哨兵(sentinel)

文章目錄 簡介搭建框架具體步驟主要文件參數開始配置 案例分析原有的master掛了 哨兵運行流程和選舉原理主觀下線客觀下線(Objectively Down)選舉出領導者哨兵(哨兵中選出兵王) 選新的master使用建議 簡介 將某一個從庫轉換為新主庫&#xff0c;繼續對外服務將某一個從庫轉換為…

?operator --- 標準運算符替代函數?

源代碼: Lib/operator.py operator 模塊提供了一套與Python的內置運算符對應的高效率函數。例如&#xff0c;operator.add(x, y) 與表達式 xy 相同。 許多函數名與特殊方法名相同&#xff0c;只是沒有雙下劃線。為了向后兼容性&#xff0c;也保留了許多包含雙下劃線的函數。為了…

Java - HashMap

數組和鏈表 數組&#xff1a; 存儲區間是連續&#xff0c;且占用內存嚴重&#xff0c;空間復雜也很大&#xff0c;時間復雜為O&#xff08;1&#xff09; 優點&#xff1a;是隨機讀取效率很高&#xff0c;原因數組是連續&#xff08;隨機訪問性強&#xff0c;查找速度快&#x…

properties配置和讀取

如何配置和讀取屬性文件 1.屬性文件介紹1.1 什么是屬性文件1.2屬性文件規范1.3 屬性文件優缺點 2.屬性文件讀取4.spring和屬性文件4.1利用注解讀取4.2配置文件里直接引用 4.屬性文件寫入5.注意事項5.總結 1.屬性文件介紹 1.1 什么是屬性文件 Java開發中&#xff0c;我們經常需…

Qt6.5類庫實例大全:Qt Creator快速入門

哈嘍大家好&#xff0c;我是20YC編程小二&#xff01;掃碼關注公眾號&#xff0c;現在可免費領取《C程序員》在線視頻教程哦&#xff01;#下面開始今天內容# 1. Qt Creator介紹 Qt Creator是一個輕量級的跨平臺集成開發環境(IDE)&#xff0c;專為使用Qt框架進行應用程序開發而…

華為OD機試真題-攀登者1-2023年OD統一考試(C卷)

題目描述: 攀登者喜歡尋找各種地圖,并且嘗試攀登到最高的山峰。 地圖表示為一維數組,數組的索引代表水平位置,數組的高度代表相對海拔高度。其中數組元素0代表地面。 例如[0,1,2,4,3,1,0,0,1,2,3,1,2,1,0], 代表如下圖所示的地圖,地圖中有兩個山脈位置分別為 1,2,3,4,5和8…

基于深度學習的文本分類研究綜述

摘要 與傳統的機器學習模型相比&#xff0c;深度學習模型試圖模仿人的學習思路&#xff0c;通過計算機自動進行海量數據的特征提取工作。文本分類是自然語言處理中的一個重要應用&#xff0c;在文本信息處理過程中有著關鍵作用。過去幾年&#xff0c;由于深度學習研究的空前成…

NAND閃存市場2023年Q3增長2.9%,Q4有望激增20%

TrendForce報告顯示&#xff0c;NAND閃存市場在2023年第三季度出現了關鍵轉折&#xff0c;主要由三星的戰略性減產決定驅動。最初&#xff0c;市場對終端用戶需求的不確定性以及對平淡旺季的擔憂導致買家采取保守的方法&#xff0c;庫存低、采購慢。然而&#xff0c;隨著三星等…

華為新款筆記本搭載5nm麒麟芯片,來源成謎,可能讓大家失望了~

近日&#xff0c;華為公司悄悄推出了一款基于國產技術打造的全新商用筆記本——華為擎云L540。目前&#xff0c;華為擎云L540在京東平臺悄然上線的&#xff0c;尚未在華為官方渠道公開售賣。華為擎云L540搭載了麒麟9006C處理器&#xff0c;采用先進的5nm制程工藝&#xff0c;8 …

codeforces A. Morning

思路 模擬&#xff0c;按順序移動移動到對應位置貢獻為移動的步數&#xff0c;press的次數。 Think Twice, Code Once #include<bits/stdc.h> #define il inline #define get getchar #define put putchar #define is isdigit #define int long long #define dfor(i,a…

openGauss學習筆記-150 openGauss 數據庫運維-備份與恢復-物理備份與恢復之gs_backup

文章目錄 openGauss學習筆記-150 openGauss 數據庫運維-備份與恢復-物理備份與恢復之gs_backup150.1 背景信息150.2 前提條件150.3 語法150.4 參數說明150.5 示例 openGauss學習筆記-150 openGauss 數據庫運維-備份與恢復-物理備份與恢復之gs_backup 150.1 背景信息 openGaus…

錯題總結(四)

1.【一維數組】輸入10個整數&#xff0c;求平均值 編寫一個程序&#xff0c;從用戶輸入中讀取10個整數并存儲在一個數組中。然后&#xff0c;計算并輸出這些整數的平均值。 int main() {int arr[10];int sum 0;for (int n 0; n < 10; n){scanf("%d", &arr…

[完美解決]Accelerate設置單卡訓練報錯,成功設置單卡訓練

報錯內容 ValueError: Less than two GPU ids were configured and tried to run on on multiple GPUs. Please ensure at least two are specified for --gpu_ids, or use --gpu_idsall. ValueError:配置了少于兩個GPU id&#xff0c;并試圖在多個GPU上運行。請確保為——gpu…

小黑子——springBoot基礎

springBoot簡單學習 一、SpringBoot簡介1.1 springBoot快速入門1.1.1 開發步驟1.1.2 對比1.1.3 官網構建工程1.1.3 SpringBoot工程快速啟動 1.2 springBoot概述1.2.1 起步依賴I. 探索父工程II. 探索依賴III. 小結 1.2.2 程序啟動1.2.3 切換web服務器-jetty 二、配置文件2.1 配置…

C語言精選——選擇題Day43

第一題 1. 使用malloc系統調用分配的內存是在什么上分配的&#xff1f; A&#xff1a;棧 B&#xff1a;堆 答案及解析 B malloc開辟的空間都是在堆上申請的內存空間&#xff0c;但是我們平常定義的定長數組之類的&#xff0c;都是在棧上開辟的空間&#xff1b; 第二題 2. C語言…