Al aprender Spring Security para la autenticación de autorización, la excepción global no captura el controlador de excepciones configurado
Problema : la excepción global captura el controlador de excepciones personalizado de seguridad
Mi clase personalizada de manejo de excepciones es la siguiente:
Solución: atrape estas dos excepciones en la excepción global y luego tírelas directamente:
/**
* 全局捕获security的权限不足异常
*/
@ExceptionHandler(value = AccessDeniedException.class)
public ResponseResult<String> exceptionHandler(AccessDeniedException e) {
String s = CommonUtils.exceptionInfo(e);
log.error("权限不足异常!异常处在:[{}] , 原因是:[{}]", s, e.getMessage());
throw e;
}
/**
* 全局捕获security的认证失败异常
*/
@ExceptionHandler(value = AuthenticationException.class)
public ResponseResult<String> exceptionHandler(AuthenticationException e) {
String s = CommonUtils.exceptionInfo(e);
log.error("用户认证失败异常!异常处在:[{}] , 原因是:[{}]", s, e.getMessage());
throw e;
}