代码之家  ›  专栏  ›  技术社区  ›  crowhill

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

  •  0
  • crowhill  · 技术社区  · 8 年前

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

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

    所有谷歌查询似乎都会导致 this 页不幸的是,这些说明假设WSO2云,我在这里使用本地安装。

    有关于如何在本地安装中执行此操作的说明吗?最好没有日食?更优选的是在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]

    现在我把它修好了。上面(和下面)的过程确实有效。请确保在xml中添加“Bearer”。。。

    <?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 回复  |  直到 8 年前
        1
  •  2
  •   Bee    8 年前

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

    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