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

Bug 未结 2 3950
渊鱼
渊鱼 剑者 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条回答
  • 2020-01-06 20:11

    image.png本来第一次注入没问题后来又注入一次这个把自定义的那个替换掉了是什么情况


    image.png这个地方的设置没有设置成功的感觉,ClientDeatailsUserDetailsService那个会去找oauth_details_client这个默认库,但是显然他没有生效


    image.png为什么会这样呢,设置完最后还是默认的sql我死了!!!找一天了!!!

    0 讨论(3)
  • 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 10:20

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

    现在是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 10:23

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

    作者追问:2020-01-07 10:24

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

    回答: 2020-01-07 10:57

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

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

    作者追问:2020-01-07 11:38

    第一个是负责人下载的最新版的然后我运行的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 11:57

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

    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


    0 讨论(3)
提交回复