当前位置: 首页 > 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;}
}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Zookeeper的监听机制及原理解析
  • 算法【前缀和与差分】
  • LeNet5模型搭建
  • 华为OD-D卷小明找位置
  • 学习记录(9):Prompt提示词技巧
  • source insight 3.5快捷键合集
  • 模板方法模式(Template Method Pattern)
  • 三数之和-Leetcode
  • 深入理解 Vuex:Vue.js 应用的状态管理
  • 《最新出炉》系列小成篇-Python+Playwright自动化测试-66 - 等待元素至指定状态(出现、移除、显示和隐藏)
  • mysql数据库:SQL语言基础和基本查询
  • 黑马Java零基础视频教程精华部分_16_递归算法
  • QT下载与安装
  • 第25课 Scratch入门篇:火箭升空
  • 2024下半年国际学术会议一览表
  • 07.Android之多媒体问题
  • Android框架之Volley
  • C++类中的特殊成员函数
  • cookie和session
  • Hibernate【inverse和cascade属性】知识要点
  • iOS动画编程-View动画[ 1 ] 基础View动画
  • Lsb图片隐写
  • Nodejs和JavaWeb协助开发
  • Vue组件定义
  • 精益 React 学习指南 (Lean React)- 1.5 React 与 DOM
  • 前端代码风格自动化系列(二)之Commitlint
  • 使用 @font-face
  • 阿里云API、SDK和CLI应用实践方案
  • # Apache SeaTunnel 究竟是什么?
  • # 手柄编程_北通阿修罗3动手评:一款兼具功能、操控性的电竞手柄
  • (07)Hive——窗口函数详解
  • (27)4.8 习题课
  • (4)Elastix图像配准:3D图像
  • (二)Eureka服务搭建,服务注册,服务发现
  • (二)基于wpr_simulation 的Ros机器人运动控制,gazebo仿真
  • (附源码)ssm高校运动会管理系统 毕业设计 020419
  • (强烈推荐)移动端音视频从零到上手(上)
  • (十六)Flask之蓝图
  • (自用)网络编程
  • .Net mvc总结
  • .Net8 Blazor 尝鲜
  • .net安装_还在用第三方安装.NET?Win10自带.NET3.5安装
  • .NET与 java通用的3DES加密解密方法
  • .xml 下拉列表_RecyclerView嵌套recyclerview实现二级下拉列表,包含自定义IOS对话框...
  • @property @synthesize @dynamic 及相关属性作用探究
  • @RequestMapping 和 @GetMapping等子注解的区别及其用法
  • @我的前任是个极品 微博分析
  • [ 常用工具篇 ] AntSword 蚁剑安装及使用详解
  • [bzoj 3124][sdoi 2013 省选] 直径
  • [BZOJ3223]文艺平衡树
  • [C#]使用PaddleInference图片旋转四种角度检测
  • [CareerCup] 12.3 Test Move Method in a Chess Game 测试象棋游戏中的移动方法
  • [Codeforces1137D]Cooperative Game
  • [daily][archlinux][game] 几个linux下还不错的游戏
  • [Docker]十二.Docker consul集群搭建、微服务部署,Consul集群+Swarm集群部署微服务实战