如何在Spring WebFlux上自定义未经授权的响应
我正在使用SpringWebFlux启动一个新项目,但现在我不知道如何处理401个响应 通常我在使用Tomcat的Spring引导时通过如何在Spring WebFlux上自定义未经授权的响应,spring,spring-boot,spring-security,spring-webflux,Spring,Spring Boot,Spring Security,Spring Webflux,我正在使用SpringWebFlux启动一个新项目,但现在我不知道如何处理401个响应 通常我在使用Tomcat的Spring引导时通过@ExceptionHandler({InvalidTokenException.class,AuthenticationException.class})处理它 以下是我的建议: @ExceptionHandler({ InvalidTokenException.class, AuthenticationException.class }) p
@ExceptionHandler({InvalidTokenException.class,AuthenticationException.class})处理它
以下是我的建议:
@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({InvalidTokenException.class,AuthenticationException.class})
公共响应句柄错误401(ServerHttpRequest请求,异常e){
返回新响应(
单声道(
蜂群反应
.builder()
.成功(错)
.code(ResponseType.AUTHENTICATION\u ERROR.getCode())
.responseType(responseType.AUTHENTICATION\u错误)
.message(“登录失败”)
.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
);
}
@ExceptionHandler({Exception.class})
公共响应句柄错误401(ServerHttpRequest请求,异常e){
返回新响应(
单声道(
蜂群反应
.builder()
.成功(错)
.code(ResponseType.AUTHENTICATION\u ERROR.getCode())
.responseType(responseType.AUTHENTICATION\u错误)
.message(“登录失败”)
.build()
),
HttpStatus.UNAUTHORIZED
);
}
尝试临时将父级异常.class
放入@ExceptionHandler
中,以检查是否获得了预期的异常类型。有时它会被包装到其他类型的异常中,例如未声明的HrowableException
尝试临时将父类异常.class
放入@ExceptionHandler
中,以检查您是否获得了预期的异常类型。有时它会被包装成其他类型的异常,例如未声明的HrowableException
我已经做了更改,但没有成功。。。没有引发异常。我会继续寻找解决办法。当做我已经做出了改变,但我没有成功。。。没有引发异常。我会继续寻找解决办法。当做