Java 使用OAuth2进行后端到后端身份验证

Java 使用OAuth2进行后端到后端身份验证,java,spring,oauth-2.0,backend,cloud-foundry,Java,Spring,Oauth 2.0,Backend,Cloud Foundry,我想做的事 现在,我正在为一个tweet开发一个JavaSpring后端,它管理他从api.ai从NLP获得的请求,并返回相应的信息。现在我想与使用OAuth2从中获取信息/数据的不同服务进行交互 到目前为止我做了什么 我已在我的应用程序.properties文件中添加了该服务的凭据。但只找到了一个解决方案,例如用户可以在我的服务上使用他的facebook凭据登录。 但我需要让我的服务在另一个服务上进行身份验证(使用属性文件中的给定凭据),以便从那里收集数据 你们知道一个解决方案吗,提普,技巧吗

我想做的事

现在,我正在为一个tweet开发一个JavaSpring后端,它管理他从api.ai从NLP获得的请求,并返回相应的信息。现在我想与使用OAuth2从中获取信息/数据的不同服务进行交互

到目前为止我做了什么

我已在我的
应用程序.properties
文件中添加了该服务的凭据。但只找到了一个解决方案,例如用户可以在我的服务上使用他的facebook凭据登录。 但我需要让我的服务在另一个服务上进行身份验证(使用属性文件中的给定凭据),以便从那里收集数据


你们知道一个解决方案吗,提普,技巧吗?

据我所知,逻辑应该是这样的

由于您有SSO(基于OAuth2),您只需登录一次,就可以从OAuth2服务(访问令牌和刷新令牌)获取令牌。当您调用任何服务时,访问令牌都包含在请求头中。 现在,Service1必须使用相同的身份验证信息调用Service2

在Service1中,调用OAuth2服务来检查令牌是否有效。如果是,您只需要使用相同的令牌来调用Service2

因此,只需从请求头中提取令牌,并将其添加到发送给Service2的请求头中。例如,可以通过添加筛选器并将身份验证信息存储在ThreadLocal变量中(如果通过运行作业等方式生成新线程,则可以使用可继承的ThreadLocal)

反过来,Service2还通过调用OAuth2服务来检查令牌,但令牌是有效的

对我来说,这就是你所需要的