使用OAuth2后端到后端验证

时间:2017-04-20 07:52:16

标签: java spring oauth-2.0 backend cloudfoundry

我正在尝试做什么

现在我正在为两个Java Spring后端工作,它管理从api.ai从NLP获得的请求并返回相应的信息。现在,我想与使用OAuth2的不同服务进行交互,以便从中获取信息/数据。

到目前为止我做了什么

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

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

1 个答案:

答案 0 :(得分:1)

据我所知,逻辑应遵循。

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

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

因此,只需从请求标头中提取令牌,然后添加到发送给Service2的请求标头中。可以做到,例如通过添加Filter并将auth信息存储在ThreadLocal变量中(如果通过运行Jobs生成新线程,则可以继承ThreadLocal)。

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

对我而言,这就是你所需要的一切。