当前位置: 首页 > news >正文

【开端】JAVA Mono<Void>向前端返回没有登陆或登录超时 暂无权限访问信息组装

一、绪论

   JAVA接口返回信息ServerHttpResponse response

等登录接口token过期时需要给前端返回相关状态码和状态信息

二、Mono<Void>向前端返回没有登陆或登录超时 暂无权限访问信息组装

返回Mono对象

public abstract class Mono<T> implements CorePublisher<T>

	/*** 无权限* * @param response* @return*/private Mono<Void> noLogin(ServerHttpResponse response) {log.info("没有登陆或登录超时 暂无权限访问===========");String responseDataStr = JSON.toJSON(ResponseData.error(HttpStatus.UNAUTHORIZED.value(), "The Token has expired")).toString();byte[] bytes = responseDataStr.getBytes(StandardCharsets.UTF_8);DataBuffer buffer = response.bufferFactory().wrap(bytes);response.setStatusCode(HttpStatus.UNAUTHORIZED);return response.writeWith(Mono.just(buffer));}

信息组装。

1、返回ResponseData对象,输出状态码和状态信息:The Token has expired

ResponseData.error(HttpStatus.UNAUTHORIZED.value(), "The Token has expired")

转换成json信息

byte[] bytes = responseDataStr.getBytes(StandardCharsets.UTF_8);

转换成字节流

输出:

response.writeWith(Mono.just(buffer));

公共返回体封装:ResponseData

public class ResponseData<T> implements Serializable {/*** */private static final long serialVersionUID = 7098362967623367826L;/*** 响应状态码*/private Integer code;/*** 响应信息*/private String message;/*** 响应对象*/private T data;/** 是否加密返回参数*/private boolean encrypt;public Integer getCode() {return code;}public void setCode(Integer code) {this.code = code;}public String getMessage() {return message;}public void setMessage(String message) {this.message = message;}public T getData() {return data;}public void setData(T data) {this.data = data;}public static <T> ResponseData<T> success() {return success(ResponseCode.SUCCESS);}public static <T> ResponseData<T> success(ResponseCode code) {return success(code, null);}public static <T> ResponseData<T> success(T object) {return success(ResponseCode.SUCCESS, object);}public static <T> ResponseData<T> success(ResponseCode code, T object) {return success(code.getCode(), code.getMessage(), object);}public static <T> ResponseData<T> success(Integer code, String message, T data) {ResponseData<T> response = new ResponseData<>();response.setCode(code);response.setMessage(message);response.setData(data);return response;}public static <T> ResponseData<T> error() {return error(ResponseCode.FAILED);}public static <T> ResponseData<T> error(ResponseCode code) {return error(code, null);}public static <T> ResponseData<T> error(String message) {return error(ResponseCode.FAILED.getCode(), message, null);}public static <T> ResponseData<T> error(Integer code, String message) {return error(code, message, null);}public static <T> ResponseData<T> error(ResponseCode code, T data) {return error(code.getCode(), code.getMessage(), data);}public static <T> ResponseData<T> error(Integer code, String message, T data) {ResponseData<T> response = new ResponseData<>();response.setCode(code);response.setMessage(message);response.setData(data);return response;}public boolean isEncrypt() {return encrypt;}public void setEncrypt(boolean encrypt) {this.encrypt = encrypt;}
}

相关文章:

【开端】JAVA Mono<Void>向前端返回没有登陆或登录超时 暂无权限访问信息组装

一、绪论 JAVA接口返回信息ServerHttpResponse response 等登录接口token过期时需要给前端返回相关状态码和状态信息 二、Mono<Void>向前端返回没有登陆或登录超时 暂无权限访问信息组装 返回Mono对象 public abstract class Mono<T> implements CorePublisher…...

Python(模块---pandas+matplotlib+pyecharts)

import pandas as pd import matplotlib.pyplot as plt dfpd.read_excel(简易数据.xlsx) # print(df) plt.rcParams[font.sans-serif][SimHei] #设置画布的大小 plt.figure(figsize(10,6)) labelsdf[电影中文名] ydf[国籍] # print(labels) # print(y)# import pandas as pd im…...

解决使用Navicat连接数据库时,打开数据库表很慢的问题

今天使用Navicat连接数据库时&#xff0c;发现不管表中数据多少&#xff0c;打开数据库表非常慢。 解决方法&#xff1a; Navicat - 右键编辑数据库连接 - 高级 - 勾选保持连接间隔 - 输入框设置为20 - 点击确定&#xff01; 参考文章&#xff1a;https://51.ruyo.net/14030.…...

nginx重启报错nginx: [error] invalid PID number

nginx重启报错nginx: [error] invalid PID numb 解决亲测有用 问题描述解决方式 问题描述 编译安装完 nginx 后&#xff0c;启动 nginx时&#xff0c;出现nginx已经在运行&#xff0c;然后输入 ./nginx -s reload时,出现了 nginx: [error] invalid PID number “” in “/us…...

人工智能深度学习系列—深度学习中的相似性追求:Triplet Loss 全解析

人工智能深度学习系列—深度解析&#xff1a;交叉熵损失&#xff08;Cross-Entropy Loss&#xff09;在分类问题中的应用 人工智能深度学习系列—深入解析&#xff1a;均方误差损失&#xff08;MSE Loss&#xff09;在深度学习中的应用与实践 人工智能深度学习系列—深入探索KL…...

26. Hibernate 如何自动生成 SQL 语句

1. 前言 本节和大家一起聊聊 Hibernate 是如何自动生成 SQL 语句的。通过本节的学习&#xff0c;你将了解到&#xff1a; 反射在框架中的重要性&#xff1b;元数据描述对 Hibernate 的重要性。 2. 理想状态 Hibernate 是全自动的 JDBC 框架&#xff0c;能自动构建 SQL 语句、…...

预言机(Oracle machine)

预言机&#xff08;Oracle machine&#xff09;是一个在多个领域中有不同应用和解释的概念。以下是从不同角度对预言机的详细解析&#xff1a; 一、计算复杂度理论与可计算性理论中的预言机 在计算复杂度理论与可计算性理论中&#xff0c;预言机是一种抽象电脑&#xff0c;用…...

55、PHP实现插入排序、二分查找

题目&#xff1a; PHP实现插入排序 描述&#xff1a; 思路:选择一个带插入的元素(假设从第一个开始),分别和已经插入有顺序的元素比较,如果要插入元素比比较元素小,则位置交换 function insertSort($arr){if(!is_array($arr)) return false;//外层循环插入次数for($i1;$i<…...

[Git][分支设计规范]详细讲解

目录 0.概览1.master分支2.release分支3.develop分支4.feature分支5.hotfix分支 0.概览 以下是常用的分支和环境的搭配&#xff0c;可视情况而定不同的策略 分支名称适用环境master主分支生产环境release预发布分支预发布/测试环境develop开发分支开发环境feature需求开发分支本…...

c#中winfrom需要了解的

如何用代码实现label1的字体大小 方法1&#xff1a;在设计视图中设置 打开你的Windows Forms项目。 在设计视图中&#xff0c;选中你想要更改字体大小的Label控件。 在属性窗口中&#xff0c;找到Font属性&#xff0c;点击旁边的省略号(...)。 在弹出的字体对话框中&#x…...

操作系统03:调度算法和文件系统

文章目录 调度算法进程调度算法先来先服务调度算法最短作业优先调度算法高响应比优先调度算法时间片轮转调度算法最高优先级调度算法 内存页面置换算法最佳页面置换算法&#xff08;OPT&#xff09;先进先出置换算法&#xff08;FIFO&#xff09;最近最久未使用的置换算法&…...

大量中国高清地图,必须收藏!!

1、中国人口密度 2、中国干湿区 3、中国温度带和干湿状况 4、中国气温分布 5、中国高陆状况 6、国家级高新技术产业开发区 7、中国工业布局的变化 8、中国旱灾 9、中国常年河与时令河 10、中国科斯塔地貌分布图 11、中国泥石流、滑坡崩塌灾害分布 12、中国森林和主要牧区分布图…...

无线领夹麦克风哪个品牌好,2024年收音麦哪个品牌好一点

在自媒体的浪潮中&#xff0c;内容创作者对于高质量音频的需求日益增长&#xff0c;这直接推动了无线领夹麦克风的兴起。过去&#xff0c;创作者们可能更倾向于使用传统的有线麦克风&#xff0c;但随着技术的进步和市场的变化&#xff0c;无线领夹麦克风以其便携性和灵活性的优…...

如何解决.NET8 类库Debug时,Debug文件夹中不包含Packages中引入的文件

最近在开发中使用了.NET8 Razor类库项目&#xff0c;但是惊讶的发现Debug时&#xff0c;Debug文件夹中不包含Packages中引入的文件&#xff0c;本以为是非常小的问题&#xff0c;但是被困住了竟然足足4个小时。 其实它也本就是个非常非常小的问题…… 只需引入<CopyLocalL…...

域名安全详解

域名安全是网络安全的重要组成部分,涉及多个方面。以下是域名安全的详细介绍: 1. 域名劫持防护 域名劫持是指攻击者通过各种手段,将用户访问的域名解析到非法IP地址上。 防护措施: 使用DNSSEC(域名系统安全扩展)定期监控域名解析记录选择可靠的域名注册商和DNS服务提供…...

使用gstreamer命令行解析RTSP流

1、解析成图片&#xff1a; gst-launch-1.0 rtspsrc locationrtsp://xxxx protocolstcp ! rtph264depay ! h264parse ! queue ! avdec_h264 ! videoconvert ! videorate ! videoscale ! videoconvert ! capsfilter capsvideo/x-raw,formatI420,width640,height480,framerate30…...

如何基于离线包中“事件热点”进行二次开发

720漫游支持基于作品离线包中的自定义按钮/热点-事件进行二次开发来实现与自己业务相关的扩展功能。 开发者可以基于离线包二次开发自定义设置点击热点图标需要执行什么操作&#xff1f;比如打开实时监控画面弹窗&#xff0c;调用自己后台的数据并弹窗显示等。 操作流程&…...

使用继电器实现门电路(1)常用门电路的简化实现

非门INC 常闭x1 反向输入信号 与门AND 常开x1 当A和B都为1时&#xff0c;O才为1&#xff0c;否则O为0。 或门OR 常开x1 当A和B中任意一个为1时&#xff0c;O为1&#xff0c;只有当A和B都为0时&#xff0c;O才为0。 或非门NOR 当A和B中任意一个为1时&#xff0c;O为0&…...

程序员常用单词分类

程序员在编程、软件开发、系统维护等工作中&#xff0c;会频繁使用到一系列特定的单词和术语。这些单词可以根据其功能、用途或所属领域进行分类。以下是一些常见的分类及其示例单词&#xff1a; 1. 数据类型与变量 数据类型&#xff1a;整型&#xff08;Integer&#xff09;…...

c语言11天笔记

函数的概述 函数&#xff1a;实现一定功能的&#xff0c;独立的代码模块。我们的函数一定是先定义&#xff0c;后使用。 使用函数的优势&#xff1a; 1. 我们可以通过函数提供功能给别人使用。当然我们也可以使用别人提供的函数&#xff0c;减少代码量。 2. 借助函数可以减…...

YSYX学习记录(八)

C语言&#xff0c;练习0&#xff1a; 先创建一个文件夹&#xff0c;我用的是物理机&#xff1a; 安装build-essential 练习1&#xff1a; 我注释掉了 #include <stdio.h> 出现下面错误 在你的文本编辑器中打开ex1文件&#xff0c;随机修改或删除一部分&#xff0c;之后…...

蓝牙 BLE 扫描面试题大全(2):进阶面试题与实战演练

前文覆盖了 BLE 扫描的基础概念与经典问题蓝牙 BLE 扫描面试题大全(1)&#xff1a;从基础到实战的深度解析-CSDN博客&#xff0c;但实际面试中&#xff0c;企业更关注候选人对复杂场景的应对能力&#xff08;如多设备并发扫描、低功耗与高发现率的平衡&#xff09;和前沿技术的…...

MMaDA: Multimodal Large Diffusion Language Models

CODE &#xff1a; https://github.com/Gen-Verse/MMaDA Abstract 我们介绍了一种新型的多模态扩散基础模型MMaDA&#xff0c;它被设计用于在文本推理、多模态理解和文本到图像生成等不同领域实现卓越的性能。该方法的特点是三个关键创新:(i) MMaDA采用统一的扩散架构&#xf…...

工程地质软件市场:发展现状、趋势与策略建议

一、引言 在工程建设领域&#xff0c;准确把握地质条件是确保项目顺利推进和安全运营的关键。工程地质软件作为处理、分析、模拟和展示工程地质数据的重要工具&#xff0c;正发挥着日益重要的作用。它凭借强大的数据处理能力、三维建模功能、空间分析工具和可视化展示手段&…...

React19源码系列之 事件插件系统

事件类别 事件类型 定义 文档 Event Event 接口表示在 EventTarget 上出现的事件。 Event - Web API | MDN UIEvent UIEvent 接口表示简单的用户界面事件。 UIEvent - Web API | MDN KeyboardEvent KeyboardEvent 对象描述了用户与键盘的交互。 KeyboardEvent - Web…...

SpringTask-03.入门案例

一.入门案例 启动类&#xff1a; package com.sky;import lombok.extern.slf4j.Slf4j; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cache.annotation.EnableCach…...

ios苹果系统,js 滑动屏幕、锚定无效

现象&#xff1a;window.addEventListener监听touch无效&#xff0c;划不动屏幕&#xff0c;但是代码逻辑都有执行到。 scrollIntoView也无效。 原因&#xff1a;这是因为 iOS 的触摸事件处理机制和 touch-action: none 的设置有关。ios有太多得交互动作&#xff0c;从而会影响…...

Map相关知识

数据结构 二叉树 二叉树&#xff0c;顾名思义&#xff0c;每个节点最多有两个“叉”&#xff0c;也就是两个子节点&#xff0c;分别是左子 节点和右子节点。不过&#xff0c;二叉树并不要求每个节点都有两个子节点&#xff0c;有的节点只 有左子节点&#xff0c;有的节点只有…...

如何理解 IP 数据报中的 TTL?

目录 前言理解 前言 面试灵魂一问&#xff1a;说说对 IP 数据报中 TTL 的理解&#xff1f;我们都知道&#xff0c;IP 数据报由首部和数据两部分组成&#xff0c;首部又分为两部分&#xff1a;固定部分和可变部分&#xff0c;共占 20 字节&#xff0c;而即将讨论的 TTL 就位于首…...

LeetCode - 199. 二叉树的右视图

题目 199. 二叉树的右视图 - 力扣&#xff08;LeetCode&#xff09; 思路 右视图是指从树的右侧看&#xff0c;对于每一层&#xff0c;只能看到该层最右边的节点。实现思路是&#xff1a; 使用深度优先搜索(DFS)按照"根-右-左"的顺序遍历树记录每个节点的深度对于…...