背景 : 微服务接口调用的时候报错,原来有一个rest服务用的不多,平时用的都是一些基础的服务,然后客户需要我们开放一个外部接口给他们,然后我寻思着就在这里面写接口。然后调用的时候就报如下的错。

 后面跟踪源码发现 SpringSeurity 在进行身份验证的时候会首先在ProviderManager中的authenticate方法进行验证
断点继续走会进入到AuthenticaionProvider里面这是一个接口。
 
 这个接口的实现类很多如下图。
接着往下走调用 retrieveUser方法传入的参数是当前用户和authentication信息

又是一个抽象方法看具体实现类DaoAuthenticaionProvider

进入UserDetailService的loadUserByUsername()方法
 
又是一个接口看具体实现类 ClientDetailsUserDetailsService

 继续跟 进入loadClientByClientId方法
还是一个抽象方法

继续跟进入JdbcClientDetailService实现方法

继续跟踪打印发现sql t_sys_oauth_client_details 表关系不存在。这个错误在控制台是看不到的。
最后看了一下nacos关于auth服务的数据源配置发现这个数据库配的是一张测试库的地址。。。。。。。。。。更改一下nacos的数据源配置为正确的数据源地址后问题解决。



![[从零开始]用python制作识图翻译器·一](https://img-blog.csdnimg.cn/95f3b38473e14a2eb54b290773a95eef.gif)

![Azure 深入浅出[3]: 如何在MS Visio里面画专业的Azure技术架构图?](https://img-blog.csdnimg.cn/71b9737f0a0743eb83699132587761ba.png)













