生产环境登录提示

Blade 未结 1 451
qazwsx
qazwsx 剑童 2024-12-31 15:33

一、该问题的重现步骤是什么?

1. 项目发布到生产环境

2. 登录页面用户名或密码或验证码输入错误


二、你期待的结果是什么?实际看到的又是什么?

期望看到:用户不存在|验证码错误

实际看到:请求未完成,请联系管理员


三、你正在使用的是什么产品,什么版本?在什么操作系统上?

bladeX3.0 SpringCould linux系统


四、请提供详细的错误堆栈信息,这很重要。

blade-auth中抛出UsernameNotFoundException,但是没有进入blade-core-oauth2中的OAuth2ExceptionHandler中,进入了blade-starter-log的BladeRestExceptionTranslator中,由于环境是生产环境所以直接返回了服务器异常

image.png

五、若有更多详细信息,请在下面提供。

1条回答
  • 2024-12-31 15:47

    这主要是网安部门要求我们加的,如果不需要可以把这个生产环境的错误逻辑删掉,然后给tool工程执行mvn clean install刷新依赖就行

    作者追问:2024-12-31 15:50

    有一个疑问,就是在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()));
        }
    }


    回答: 2024-12-31 15:59

    最新版做了单独的处理,认证失败不会到通用的异常捕获逻辑

    CleanShot20241231155804@2x.png

    作者追问:2024-12-31 16:09

    是我这边的代码不是最新的吗,如果不是最新的也不会进入通用的异常处理吗(OAuth2ExceptionHandler类)

    image.png

    作者追问:2024-12-31 16:10

    不好意思,上一个图放错了

    image.png

    回答: 2024-12-31 16:16

    我这边取消try catch后会正常进,可能你有其他地方修改了导致没扫描到。你按照最新版本加try catch就行,这样在生产环境就不会到通用异常捕获了

    CleanShot20241231161453@2x.png

    0 讨论(0)
代码语言
提交回复