我想做什么,
现在,我正在开发一个Java后端,用于管理来自api.ai的NLP请求,并返回相应的信息。现在,我想与使用OAuth2获取信息/数据的不同服务进行交互。
我到目前为止所做的
我已经在application.properties文件中添加了该服务的凭据。但只能找到一个解决方案,例如,用户可以在我的服务上登录他的facebook凭据。但是,我需要让我的服务在另一个服务上进行身份验证(使用属性文件中给定的凭据),以便从那里收集数据。
你们知道解决办法,小费,技巧吗?
发布于 2017-04-20 08:06:05
据我所知,逻辑应该是遵循的。
由于您有SSO (基于OAuth2的),您只需要登录一次,并从OAuth2服务(访问令牌和刷新令牌)获取令牌。当您调用任何服务时,访问令牌都包含在请求标头中。现在,Service1必须使用相同的auth信息调用Service2。
在Service1中,您可以调用OAuth2服务来检查令牌是否有效。如果是,则只需使用相同的令牌来调用Service2。
因此,只需从请求标头中提取令牌,并将其添加到发送到Service2的请求头。例如,可以通过添加过滤器并将auth信息存储在ThreadLocal变量中(如果通过运行作业生成新线程,则可以继承ThreadLocal )。
Service2也通过调用OAuth2服务来检查令牌,但是令牌是有效的。
对我来说,这就是你所需要的。
https://stackoverflow.com/questions/43513400
复制相似问题