CORS不在WSO2 API Manager中的oAuth2 UserInfo端点上工作

时间:2016-10-23 10:00:53

标签: wso2 cors wso2carbon wso2-am

我无法在oAuth2的UserInfo端点上使CORS工作。我想通过调用oAuth2 UserInfo资源来检索声明(UserInfo)。

据我所知,来自stackoverflow post" WSO2 API Manager CORS" ...通过添加CORSRequest处理程序,在Synapse配置中启用CORS for oAuth2资源,如上面的stackoverflow链接所述。 我为Token en Revoke资源(_TokenAPI_.xml en _RevokeAPI_xml)添加了这个CORSRequest处理程序,如上面的链接所述。而且,它工作! 在这些添加之后,我在我的应用程序中发现了CORS问题,所以我通过将CORSRequestHandler添加到_UserInfoAPI_.xml(包括在服务器wso2server.bat上重启)来执行相同的过程),但我仍然得到相同的CORS错误:

XMLHttpRequest cannot load https://localhost:9443/oauth2/userinfo?schema=openid. Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:4200' is therefore not allowed access.

我不明白CORS正在处理我的令牌资源而不是处理我的userinfo资源?

顺便说一句,我没有使用WSO2 Identity Server,只使用带有oAuth2功能的API Manager。 我检查了一下,我可以看到没有Allow- *标题被我的浏览器(javascript)发送回客户端(在OPTIONS预检期间)。

如果我在 UserInfAPI .xml中添加此处理程序,为什么CORSRequestHandler无法正常工作?

1 个答案:

答案 0 :(得分:2)

您确定使用了curl用于OPTION调用的正确网址吗?

我刚试过,这就是我得到的。

https://localhost:8243/userinfo

如果您使用相同的网址,请发布完整的卷曲请求和回复。