SpringSecurity6 | 登录成功后的JSON处理

news2024/11/27 14:41:33

公众号封面

✅作者简介:大家好,我是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 {
    @Override
    public 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.coloradmin.cn/o/1300680.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Gilisoft Video Editor——迈出剪辑的第一步

今天博主分享的是又一款剪辑软件——视频剪辑手&#xff08;GiliSoft Video Editor&#xff09;&#xff0c;对剪辑视频感兴趣的小伙伴千万不要错过。这是一款专门用于视频剪辑的软件&#xff0c;功能比较简单&#xff0c;相比于专业的pr是比不了的&#xff0c;但是制作一些简单…

内存映射机制

什么是内存映射 Linux通过将一个虚拟内存区域与一个磁盘上的对象关联起来&#xff0c;以初始化这个虚拟区域的内如&#xff0c;这个过程称为内存映射。 代码示例&#xff1a; /******************************************************************** > File Name: mmap…

如何查询川菜食材配料的API接口

在当今的美食文化中&#xff0c;菜谱不只是一张简单的食谱&#xff0c;更是了解美食文化和饮食知识的重要途径。然而&#xff0c;若没有准确的食材配料&#xff0c;烹制出的每道菜品都将难以达到完美的味道。因此&#xff0c;为了更好地满足人们对于菜谱和食谱的需求&#xff0…

Gitzip插件【Github免翻下载】

今天给大家推荐一个github下载的插件&#xff0c;平常大家下载应该无外乎就是以下两种&#xff1a; Download zip利用git clone 但是这两种各有各的弊端&#xff0c;前者一般需要科学上网才可以&#xff0c;后者下载不稳定经常中途断掉。 今天给推荐一个款浏览器插件-Gitzip.大…

单调栈结构

单调栈 单调栈是一种特殊设计的栈结构&#xff0c;为了解决如下的问题&#xff1a; 给定一个可能含有重复数值的 arr[]&#xff0c;i位置的数一定存在如下两种信息&#xff1a; arr[i]的左侧离 i 最近并且小于&#xff08;或者大于&#xff09;arr[i] 的数在哪&#xff1f;arr…

边缘AI行业报告:发展趋势、相关机遇、产业链及相关公司深度梳理

今天分享的AI系列深度研究报告&#xff1a;《边缘AI行业报告&#xff1a;发展趋势、相关机遇、产业链及相关公司深度梳理》。 &#xff08;报告出品方&#xff1a;慧 博 智 能 投 研&#xff09; 报告共计&#xff1a;31页 边缘计算及边缘 AI 概述 1.边缘AI 边缘 AI(本文指…

第四节JavaScript 条件语句、循环语句、break与continue语句

一、JavaScript条件语句 在通常的代码中&#xff0c;我们有一些需要决定执行不同动作&#xff0c;这就可以在代码中使用条件语句来完成。 下面是我们常使用的条件语句&#xff1a; if语句&#xff1a;只有当指定条件是true时&#xff0c;执行条件内代码。if…else语句&#…

代码序随想录二刷 |二叉树 | 二叉树的层序遍历II

代码序随想录二刷 &#xff5c;二叉树 &#xff5c; 二叉树的层序遍历II 题目描述解题思路代码实现 题目描述 107.二叉树的层序遍历II 给你二叉树的根节点 root &#xff0c;返回其节点值 自底向上的层序遍历 。 &#xff08;即按从叶子节点所在层到根节点所在的层&#xff0…

【Unity动画】Avatar Mask

创建 Avatar Mask可以设置那一部分骨骼运动和不运动 然后放在状态机里面的层中来混合 【后续完善】

JVM虚拟机系统性学习-运行时数据区(堆)

运行时数据区 JVM 由三部分组成&#xff1a;类加载系统、运行时数据区、执行引擎 下边讲一下运行时数据区中的构成 根据线程的使用情况分为两类&#xff1a; 线程独享&#xff08;此区域不需要垃圾回收&#xff09; 虚拟机栈、本地方法栈、程序计数器 线程共享&#xff08;数…

java接入gpt开发

前情提要 本次文章使用编译器为IDEA2020 使用GPT模型为百度旗下的千帆大模型 如果是个人用或者不流传出去&#xff0c;可以无脑入&#xff0c;因为会免费送20块钱&#xff08;够用上万次&#xff09; 代金卷查看 正式教程&#xff1a; 百度智能云控制台 (baidu.com) 按照步…

游戏提示找不到d3dx10_43.dll怎么办?5种方法教你如何修复

在计算机使用过程中&#xff0c;我们经常会遇到一些错误提示&#xff0c;其中之一就是“缺少d3dx10_43.dll文件”。这个错误提示通常出现在运行某些游戏或应用程序时&#xff0c;它意味着系统无法找到所需的动态链接库文件。本文将详细介绍d3dx10_43.dll文件的作用以及导致其丢…

《文化创新比较研究》期刊发表杂志投稿

《文化创新比较研究》是由国家新闻出版总署批准&#xff0c;黑龙江文化产业投资控股集团有限公司主管主办的学术期刊&#xff08;旬刊&#xff09;。 以学术研究为基础&#xff0c;始终坚持双百方针&#xff0c;立足理论前沿&#xff0c;关注学术热点&#xff0c;推动学术文化交…

kotlin - ViewBinding

前言 为什么用ViewBinding&#xff0c;而不用findViewById()&#xff0c;这个有很多优秀的博主都做了讲解&#xff0c;就不再列出了。 可参考下列博主的文章&#xff1a; kotlin ViewBinding的使用 文章里也给出了如何在gradle中做出相应的配置。 &#xff08;我建议先看这位博…

手把手教你玩转DHT11(原理+驱动)

大家生活中一定经常使用温湿度数据&#xff0c;比如&#xff1a;天气预报、智能家居、智慧大屏等等。这些数据可以通过温湿度传感器进行获取。在嵌入式开发中&#xff0c;温湿度传感器是一种十分常用的传感器。本文将为大家介绍温湿度传感器 DHT11&#xff0c;内容包含模块介绍…

Mac电脑投屏AirServer 2024怎么下载安装激活许可期限

对于那些想要将 iPhone、iPad 或其他 iOS 设备上的小屏幕镜像到计算机上的大屏幕的人来说&#xff0c;AirPlay 是一个很好的工具。 基于此&#xff0c;AirServer 非常需要将您的 Mac 或 PC 变成 AirPlay 设备。 但是如何使用计算机上的设置对 iPhone 等 iOS 设备进行屏幕镜像&a…

nginx中Include使用

1.include介绍 自己的理解&#xff1a;如果学过C语言的话&#xff0c;感觉和C语言中的Include引入是一样的&#xff0c;引入的文件中可以写任何东西&#xff0c;比如server相关信息&#xff0c;相当于替换的作用&#xff0c;一般情况下server是写在nginx.conf配置文件中的&…

三. LiDAR和Camera融合的BEV感知算法-BEVFusion实战

目录 前言1. BEVFusion实战 前言 自动驾驶之心推出的《国内首个BVE感知全栈系列学习教程》&#xff0c;链接。记录下个人学习笔记&#xff0c;仅供自己参考 本次课程我们来学习下课程第三章——LiDAR和Camera融合的BEV感知算法&#xff0c;一起去学习下 BEVFusion 的相关代码 课…

理解MyBatis原理、思想

JDBC编码的缺点 结果集解析复杂&#xff0c;列名硬编码&#xff0c;sql变化导致解析代码变化&#xff0c;系统不易维护。Sql语句硬编码&#xff0c;难以维护。 数据库配置硬编码。频繁连接、释放数据库资源&#xff0c;降低系统性能。preparedStatement向占位符号传参数存在硬…

SpringBoot集成系列--xxlJob

文章目录 一、搭建调度中心xxl-job-admin1、下载项目2、调整项目参数3、执行初始化数据库SQL4、启动项目5、访问 二、集成步骤1、添加xxl-job的依赖2、添加xxl-job的依赖3、配置执行器4、创建执行器5、开发任务1&#xff09;方式1&#xff1a;BEAN模式&#xff08;方法形式&…