将自定义授权令牌传递给后端

时间:2017-11-29 18:56:09

标签: wso2

我正在尝试通过WSO2将自定义令牌发送到现有API。

同样,我有一个后端API令牌,我希望它包含在WSO2发送给该API的头文件中。

所有Google查询似乎都会显示this页面。不幸的是,这些说明假定我使用的是本地安装的WSO2云。

是否有关于如何使用本地安装执行此操作的说明?最好没有Eclipse?更优选的是在WSO2 GUI中?

谢谢!

编辑:

根据下面的答案,我取得了一些进展。从here开始,我添加了一些xml

<?xml version="1.0" encoding="UTF-8"?>
<sequence xmlns="http://ws.apache.org/ns/synapse" name="default-endpoint-seq">
     <property name="Authorization" value="<valid token>" scope="transport"/>
</sequence>

然后将其添加到“流入”

下的“邮件调解政策”部分

enter image description here

可悲的是,我仍然被禁止。看到我对这里发生的事情只有最朦胧的想法,这可能并不奇怪。

[编辑3]

现在我已经清理干净了。上面(和下面)的过程确实有效。务必将“Bearer”添加到xml ...

<?xml version="1.0" encoding="UTF-8"?>
<sequence xmlns="http://ws.apache.org/ns/synapse" name="default-endpoint-seq">
     <property name="Authorization" value="Bearer <valid token>" scope="transport"/>
</sequence>

1 个答案:

答案 0 :(得分:2)

有两种方法可以做到这一点。

1)您可以在APIM中保存后端密码。请参阅下面的文档。

设置后端端点的密码:

https://docs.wso2.com/display/AM210/Basic+Auth https://docs.wso2.com/display/AM210/Digest+Auth

加密该密码:

https://docs.wso2.com/display/AM210/Encrypting+Secure+Endpoint+Passwords

2)您可以在请求中发送后端令牌,让APIM将其传递给后端。您可以创建这样的序列并附加到API。

<?xml version="1.0" encoding="UTF-8"?>
<sequence xmlns="http://ws.apache.org/ns/synapse" name="default-endpoint-seq">
     <property name="Authorization" expression="$trp:BackendToken" scope="transport"/>
</sequence>

现在,在您的请求中,您需要发送一个这样的标题。

BackendToken: Bearer <Backend_Token>

然后它将转换到序列内部的下方并发送到后端。

Authorization: Bearer <Backend_Token>

有关详细信息,请参阅以下链接。

https://docs.wso2.com/display/AM210/Adding+Mediation+Extensions