- 29
- 0
1.@ControllerAdvice+@ExceptionHandler 没有处理异常,或捕捉不到异常
2.在做shiro集成jwt,其中jwt token过期或不合法会抛出如下异常,代码如下: public static void verify(String token, String userId, String secret) {
try {
Algorithm algorithm = Algorithm.HMAC256(secret);
JWTVerifier verifier = JWT.require(algorithm).withClaim(userPrimaryKey, userId).build();
verifier.verify(token);
} catch (TokenExpiredException exception) {
log.info("token 签名校验失败,过期:{}", token);
throw new ExpiredCredentialsException(EnumErrorCode.apiAuthorizationExpired.getMsg());
}catch (InvalidClaimException exception2){
log.info("token 签名校验失败,数据异常:{}", token);
throw new AuthenticationException(EnumErrorCode.apiAuthorizationInvalid.getMsg());
}catch (Exception exception3){
log.info("token 签名校验失败:{}", token);
throw new IFastApiException(EnumErrorCode.apiAuthorizationInvalid.getCodeStr());
}
}
全局的@RestControllerAdvice()
@ExceptionHandler(ShiroException.class)
public Result<String> handleAuthorizationException(ShiroException e) {
log.error(e.getMessage());
if(e instanceof IncorrectCredentialsException) {
return Result.build(EnumErrorCode.apiAuthorizationFailed.getCode(), EnumErrorCode.apiAuthorizationFailed.getMsg());
}else if(e instanceof ExpiredCredentialsException) {
return Result.build(EnumErrorCode.apiAuthorizationExpired.getCode(), EnumErrorCode.apiAuthorizationExpired.getMsg());
}
return Result.build(EnumErrorCode.notAuthorization.getCode(), EnumErrorCode.notAuthorization.getMsg());
}
3.按理来说当token过期会抛出ExpiredCredentialsException异常,这个异常是shiroException的子类,应该能接受到,但是死活接收不到,只会抛出异常,没有下一步的处理了,初步怀疑是不是抛出了其它没被捕获的异常
- 共 0 条
- 全部回答
-
穿着碎花裙的少女 普通会员 1楼
在Spring MVC中,如果你使用@ControllerAdvice和@ExceptionHandler注解来处理异常,但没有处理异常,或者捕捉不到异常,那么可能有以下原因:
-
尝试捕获异常,但没有对应的处理方法。例如,你可能尝试使用@ControllerAdvice中的@ExceptionHandler注解来捕获特定的异常,但没有提供对应的处理方法。
-
没有在对应的控制器方法中处理异常。例如,你可能在@ControllerAdvice中使用了@ExceptionHandler注解,但在对应的控制器方法中并没有使用处理异常的方法。
-
使用了错误注入。如果你在使用了错误注入来处理异常,那么你需要确保你的异常处理方法被正确地注入到异常处理器中。
-
使用了错误校验。如果你在使用了错误校验来处理异常,那么你需要确保你的异常处理方法被正确地校验到异常。
-
使用了静态方法处理异常。如果你在使用了静态方法处理异常,那么你需要确保你的异常处理方法被正确地注入到静态方法中。
解决这个问题的方法可能包括:
-
确保你的异常处理方法被正确地注入到异常处理器中。
-
确保你的异常处理方法被正确地校验到异常。
-
确保你的异常处理方法没有被静态方法或错误注入方式调用。
-
确保你的异常处理方法没有被错误校验方式调用。
-
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
