WSO2 API管理器CORS

WSO2 API管理器CORS,wso2,cors,wso2-am,Wso2,Cors,Wso2 Am,我想在我的WSO2 API管理器实例上为所有端点启用CORS。 我已经阅读了文档(非常好),它建议修改repository/conf/api manager.xml文件,因为其中有一个CORS配置节点(如下所示) 真的 * 获取、放置、发布、删除、修补、选项 授权、访问控制允许来源、内容类型 真的 不过,该文件似乎并没有将此CORS配置应用于所有端点。在向已发布的API端点发出请求时,我会收到正确的访问控制标头,但在命中令牌端点时,我不会收到这些标头(默认值为“/token”、““/revo

我想在我的WSO2 API管理器实例上为所有端点启用CORS。 我已经阅读了文档(非常好),它建议修改repository/conf/api manager.xml文件,因为其中有一个CORS配置节点(如下所示)


真的
*
获取、放置、发布、删除、修补、选项
授权、访问控制允许来源、内容类型
真的
不过,该文件似乎并没有将此CORS配置应用于所有端点。在向已发布的API端点发出请求时,我会收到正确的访问控制标头,但在命中令牌端点时,我不会收到这些标头(默认值为“/token”、““/revoke”)


如何实现这一点?

api-manager.xml中的CORS配置将仅应用于通过api manager创建的api。它不会将这些配置应用于令牌API,例如/Token和/revoke

令牌API相关配置位于
{PRODUCT_HOME}/repository/deployment/server/synapse configs/default/API
目录中

如果需要,您可以编辑
\u TokenAPI\u.xml
并添加CORS头。您可以将[1]称为有用的资源


[1] -

CORS配置对于使用发布者应用程序创建的API有效。此配置中不包括令牌API('/token','/revoke')

CORS标头使用处理程序进行处理

org.wso2.carbon.apimgt.gateway.handlers.security.CORSRequestHandler
如果在/repository/deployment/server/synapse configs/default/api中打开api的synapse配置,您将找到此处理程序

您还可以将此处理程序设置为RevokeAPI.xml和TokenAPI.xml。(它们位于相同的位置/存储库/部署/服务器/synapse configs/default/api)。在配置文件中应该是这样的

 <handlers>
    <handler class="org.wso2.carbon.apimgt.gateway.handlers.security.CORSRequestHandler">
     <property name="apiImplementationType" value="ENDPOINT"/>
    </handler>
    <handler class="org.wso2.carbon.apimgt.gateway.handlers.ext.APIManagerCacheExtensionHandler"/>
    <handler class="org.wso2.carbon.apimgt.gateway.handlers.common.SynapsePropertiesHandler"/>
</handlers>


感谢您快速准确的回复。我甚至不知道这些文件!这就是答案——谢谢!我没有足够的声望去投票给你答案,但我会投票给你的@本戴维斯:如果它能回答你的问题。你应该接受它作为我们的答案-堆栈溢出n00b在这里!谢谢
 <handlers>
    <handler class="org.wso2.carbon.apimgt.gateway.handlers.security.CORSRequestHandler">
     <property name="apiImplementationType" value="ENDPOINT"/>
    </handler>
    <handler class="org.wso2.carbon.apimgt.gateway.handlers.ext.APIManagerCacheExtensionHandler"/>
    <handler class="org.wso2.carbon.apimgt.gateway.handlers.common.SynapsePropertiesHandler"/>
</handlers>