通过WSO2 API Manager

时间:2018-04-16 02:41:05

标签: spring-security wso2 microservices

我有一个项目,其中有几个微服务使用spring oauth2保护。我已经在WSO2 API管理器上发布了这些服务并禁用了WSO2的oauth2功能,因为我的服务已经使用spring oauth2保护了。当我访问时我的服务在WSO2上发布,使用spring oauth2的令牌我得到响应状态代码0“无响应”或状态代码403未授权。这可能是问题。

1 个答案:

答案 0 :(得分:0)

WSO2AM(API Manager)使用OAuth协议授权客户端,后端服务应该信任提供服务授权的WSO2AM。

API MAnager无法(默认情况下)验证后端服务的令牌。

据我所知,WSO2 AM清除后端服务的“授权”标头。 (当我错的时候纠正我。)

您的选择:

  1. 设置适当的环境,其中APIM用于授权用户。 APIM可以使用用户身份和属性向后端服务发送JWT令牌,后端服务将验证并信任包含用户身份和属性的APIM JWT令牌。我真的建议你坚持APIM的工作方式而不是试图强迫它以其他方式工作

  2. 如果您真的必须使用自己的OAuth令牌,则可以在不同的标头中发送授权令牌(不会被清除)

  3. 您可以创建自定义中介流以将授权标头重新输入到请求中(我不确定您是否还需要更新公开的api中介流,或者不要跳过默认授权程序)。