2017-04-20 59 views
0

我试图做后端到后端认证与OAuth2用户

现在我工作的一个Java后端春季为负责管理他从NLP会从api.ai和请求都给出相应的信息。现在我想与使用OAuth2的不同服务交互以从中获取信息/数据。

我在application.properties文件做了什么至今

我已经加入我的服务的凭证。但只找到了一个解决方案,用户可以例如使用他的Facebook凭据登录我的服务。 但我需要让我的服务在其他服务上进行身份验证(使用来自我的属性文件的给定凭据),以便从那里收集数据。

你们知道一个解决方案,tipps,诀窍呢?

回答

1

据我所知,逻辑应该在下面。

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

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

所以,只需从请求头中提取令牌并添加到发送给Service2的请求标头中。可以完成例如通过添加Filter并将认证信息存储在ThreadLocal变量中(或者,如果通过例如运行作业生成新线程,则可继承ThreadLocal)。

Service2依次通过调用OAuth2服务来检查令牌,但令牌有效。

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