首页 > 解决方案 > @Preauthorize 错误返回或异常中的自定义错误处理

问题描述

出于安全目的,我有@preauthorize,但是当这个函数返回 false 时,我得到了

访问被拒绝

在春季作出回应。如何根据我自己的实现处理异常?

@PreAuthorize("hasPermission(#cookie,'balance')")

标签: javascriptangularjsspring-boot

解决方案


您可以创建自定义异常处理程序。在此示例中,您处于 REST 环境中,这就是我将 ResponseEntity 作为返回对象的原因。但是你可以根据你的上下文返回任何你想要的东西。

@ControllerAdvice
@RestController
public class MyResponseEntityExceptionHandler extends ResponseEntityExceptionHandler {

    @ExceptionHandler(AccessDeniedException.class)
    public final ResponseEntity<CustomResponseObject> handleAccessDeniedException(Exception ex, WebRequest request) {
        //code here
        return new ResponseEntity<>(...);
    }
}

推荐阅读