AccessDeniedException y AuthenticationEntryPointException en Spring Security no se detectan globalmente

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:
inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí

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;
}

Supongo que te gusta

Origin blog.csdn.net/qq_60361946/article/details/128406026
Recomendado
Clasificación