【发布时间】:2019-09-23 02:24:58
【问题描述】:
我正在使用 Spring Webflux 开始一个新项目,但现在我无法弄清楚如何处理 401 响应。
通常我通过 @ExceptionHandler({ InvalidTokenException.class, AuthenticationException.class }) 在 Spring Boot 上使用 Tomcat 处理它。
这是我的控制器建议:
@ExceptionHandler({ InvalidTokenException.class, AuthenticationException.class })
public ResponseEntity<Mono<ApiResponse>> handleError401(ServerHttpRequest request, Exception e) {
return new ResponseEntity<Mono<ApiResponse>>(
Mono.just(
ApiResponse
.builder()
.success(false)
.code(ResponseType.AUTHENTICATION_ERROR.getCode())
.responseType(ResponseType.AUTHENTICATION_ERROR)
.message("login failed")
.build()
),
HttpStatus.UNAUTHORIZED
);
}
编辑:
我也试过了,没有抛出异常
@ExceptionHandler({ Exception.class })
public ResponseEntity<Mono<ApiResponse>> handleError401(ServerHttpRequest request, Exception e) {
return new ResponseEntity<Mono<ApiResponse>>(
Mono.just(
ApiResponse
.builder()
.success(false)
.code(ResponseType.AUTHENTICATION_ERROR.getCode())
.responseType(ResponseType.AUTHENTICATION_ERROR)
.message("login failed")
.build()
),
HttpStatus.UNAUTHORIZED
);
}
【问题讨论】:
标签: spring spring-boot spring-security spring-webflux