一、该问题的重现步骤是什么?
1. 项目发布到生产环境
2. 登录页面用户名或密码或验证码输入错误
二、你期待的结果是什么?实际看到的又是什么?
期望看到:用户不存在|验证码错误
实际看到:请求未完成,请联系管理员
三、你正在使用的是什么产品,什么版本?在什么操作系统上?
bladeX3.0 SpringCould linux系统
四、请提供详细的错误堆栈信息,这很重要。
blade-auth中抛出UsernameNotFoundException,但是没有进入blade-core-oauth2中的OAuth2ExceptionHandler中,进入了blade-starter-log的BladeRestExceptionTranslator中,由于环境是生产环境所以直接返回了服务器异常
五、若有更多详细信息,请在下面提供。
这主要是网安部门要求我们加的,如果不需要可以把这个生产环境的错误逻辑删掉,然后给tool工程执行mvn clean install刷新依赖就行
有一个疑问,就是在bladex-tool中的blade-core-oauth2中是有一个叫做OAuth2ExceptionHandler的类,这个类正常应该也能处理UsernameNotFoundException把,为什么没进来呢?
(basePackageClasses = {OAuth2AuthorizationEndpoint., OAuth2SocialEndpoint., OAuth2TokenEndPoint.}) OAuth2ExceptionHandler { (OAuth2Exception.) ResponseEntity<?> (OAuth2Exception ex) { ResponseEntity.(OAuth2Response.().ofFailure(ex.getExceptionCode().getCode(), ex.getMessage())); } (SecureException.) ResponseEntity<?> (SecureException ex) { ResponseEntity.(OAuth2Response.().ofFailure(OAuth2ErrorCode., ex.getMessage())); } (JwtException.) ResponseEntity<?> (JwtException ex) { ResponseEntity.(OAuth2Response.().ofFailure(OAuth2ErrorCode., ex.getMessage())); } }
最新版做了单独的处理,认证失败不会到通用的异常捕获逻辑
是我这边的代码不是最新的吗,如果不是最新的也不会进入通用的异常处理吗(OAuth2ExceptionHandler类)
不好意思,上一个图放错了
我这边取消try catch后会正常进,可能你有其他地方修改了导致没扫描到。你按照最新版本加try catch就行,这样在生产环境就不会到通用异常捕获了
扫一扫访问 Blade技术社区 移动端