当前位置:   article > 正文

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

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

一、绪论

   JAVA接口返回信息ServerHttpResponse response

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

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

返回Mono对象

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

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

信息组装。

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

  1. public class ResponseData<T> implements Serializable {
  2. /**
  3. *
  4. */
  5. private static final long serialVersionUID = 7098362967623367826L;
  6. /**
  7. * 响应状态码
  8. */
  9. private Integer code;
  10. /**
  11. * 响应信息
  12. */
  13. private String message;
  14. /**
  15. * 响应对象
  16. */
  17. private T data;
  18. /** 是否加密返回参数*/
  19. private boolean encrypt;
  20. public Integer getCode() {
  21. return code;
  22. }
  23. public void setCode(Integer code) {
  24. this.code = code;
  25. }
  26. public String getMessage() {
  27. return message;
  28. }
  29. public void setMessage(String message) {
  30. this.message = message;
  31. }
  32. public T getData() {
  33. return data;
  34. }
  35. public void setData(T data) {
  36. this.data = data;
  37. }
  38. public static <T> ResponseData<T> success() {
  39. return success(ResponseCode.SUCCESS);
  40. }
  41. public static <T> ResponseData<T> success(ResponseCode code) {
  42. return success(code, null);
  43. }
  44. public static <T> ResponseData<T> success(T object) {
  45. return success(ResponseCode.SUCCESS, object);
  46. }
  47. public static <T> ResponseData<T> success(ResponseCode code, T object) {
  48. return success(code.getCode(), code.getMessage(), object);
  49. }
  50. public static <T> ResponseData<T> success(Integer code, String message, T data) {
  51. ResponseData<T> response = new ResponseData<>();
  52. response.setCode(code);
  53. response.setMessage(message);
  54. response.setData(data);
  55. return response;
  56. }
  57. public static <T> ResponseData<T> error() {
  58. return error(ResponseCode.FAILED);
  59. }
  60. public static <T> ResponseData<T> error(ResponseCode code) {
  61. return error(code, null);
  62. }
  63. public static <T> ResponseData<T> error(String message) {
  64. return error(ResponseCode.FAILED.getCode(), message, null);
  65. }
  66. public static <T> ResponseData<T> error(Integer code, String message) {
  67. return error(code, message, null);
  68. }
  69. public static <T> ResponseData<T> error(ResponseCode code, T data) {
  70. return error(code.getCode(), code.getMessage(), data);
  71. }
  72. public static <T> ResponseData<T> error(Integer code, String message, T data) {
  73. ResponseData<T> response = new ResponseData<>();
  74. response.setCode(code);
  75. response.setMessage(message);
  76. response.setData(data);
  77. return response;
  78. }
  79. public boolean isEncrypt() {
  80. return encrypt;
  81. }
  82. public void setEncrypt(boolean encrypt) {
  83. this.encrypt = encrypt;
  84. }
  85. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/988257
推荐阅读
相关标签
  

闽ICP备14008679号