授权不成功,进入不到自定义的BladeUserDetailsServiceImpl

Bug 未结 2 4153
渊鱼
渊鱼 2020-01-06 19:32

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

  1.  现在版本是2.2.2

  2. 2.png

2. 之前可以用的版本是2.2.0

2.png

3.



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

期待注入的是自定义的BladeUserDetailsServiceImpl但是现在注入的是ClientDetailsUsersDetailsService.为什么不能注入自定义的那个了。

帖子里和auth的提问回答都看过了没有用。


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

商业版2.2.2版本 Windows系统


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


PreparedStatementCallback; bad SQL grammar [select client_id, client_secret, resource_ids, scope, authorized_grant_types, web_server_redirect_uri, authorities, access_token_validity, refresh_token_validity, additional_information, autoapprove from oauth_client_details where client_id = ?]

为什么会注入的是默认的Service呢我就奇了怪了

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



2条回答
  •  admin
    admin (楼主)
    2020-01-07 09:54


     1. 有没有改过源码

     2. 是不是用的master分支上的原版

     3. 2.2.0~2.2.2没有改bean注入逻辑,仅仅是升级了下greenwich的版本,改了点BladeUserDetailService里的业务逻辑

     4. 我本地也是第二次断点进的是clientDetail这个类,但是可以正常返回token,说明不是这个导致的 

     5. 把问题再描述的详细点,调用token接口的时候具体返回什么、控制台报的错是什么、具体错误栈是什么

    作者追问:2020-01-07 09:54

    我们负责人每次更新都会将新代码拉下来,所以版本应该是没有问题。

    现在是2.3.5版本的oauth2依赖。

    源码没有改动过。

    我们改动的地方也是BladeUserDetailService里面的业务逻辑,但是现在全部注释掉了也不行还是进不去,说明不是增加业务逻辑造成的。

    调用token接口不打印日志,因为在框架层就错误掉了

    FG387`EH(IAE55N18C4%FMJ.png

    第一次获取到username是sword然后拿到的这个detailservice里面的数据库链接是默认的sql

    在我们之前版本他这里获取的应该是你们自定义的sql才对表应该访问的是blade_client才对。跟踪异常是PreparedStatementCallback; bad SQL grammar [select client_id, client_secret, resource_ids, scope, authorized_grant_types, web_server_redirect_uri, authorities, access_token_validity, refresh_token_validity, additional_information, autoapprove from oauth_client_details where client_id = ?]

    肯定是这个 因为肯定没有这个表。

    回答: 2020-01-07 09:54

    这样描述不太好帮忙确定问题所在。这样试试看
    让你们负责人下载最新的master分支的2.2.2.RELEASE。你们分几个人都导入最原版的工程,然后跑一下看看是不是都报错了

    作者追问:2020-01-07 09:54

    现在就是不知道为什么导致的默认sql没有设置为自定义的sql。 打过断点那个自定义设置方法也走过。但是到访问的时候那个ClientDetailsUserDetailsService里面的sql又变成默认的了。导致查询不到客户端信息直接异常退出了。异常就是badSql

    回答: 2020-01-07 09:54

    这个问题很奇怪啊,商业群内好像其他人都没这个问题,你们试着用不同的人的开发机来导入跑跑看。

    如果还不行去私服下载dev分支的bladex和bladex-tool,先给dev的bladex-tool执行mvn clean install,然后打开bladex,再跑一下看看

    作者追问:2020-01-07 09:54

    第一个是负责人下载的最新版的然后我运行的auth是可以授权成功的

    XVW)E3~_3%SCE]XZ@~R_IFQ.png

    第二个是我们现在授权不成功的

    SCZ@D$}3MB{3~62Q~K%6(RI.png

    第一个好像是有代理修改了里面的值,第二个好像是没有了。我比对了一下pom文件没有差别。我们自定义只是增加了一个外部调用api并且增加了一个serviceBean来调用外部的feign

    作者追问:2020-01-07 09:54

    ***************************

    APPLICATION FAILED TO START

    ***************************


    Description:


    Parameter 6 of constructor in org.springblade.auth.config.BladeAuthorizationServerConfiguration required a bean of type 'org.springframework.security.oauth2.provider.error.WebResponseExceptionTranslator' that could not be found.



    Action:


    Consider defining a bean of type 'org.springframework.security.oauth2.provider.error.WebResponseExceptionTranslator' in your configuration.


    Disconnected from the target VM, address: '127.0.0.1:63276', transport: 'socket'


    Process finished with exit code 1


提交回复