WSO2 API Manager 1.9 - 附加固定标题信息

时间:2015-08-05 07:10:56

标签: wso2 wso2-am

我需要将固定的Authorization标头附加到API端点。这是我的端点系统的特定于应用程序的令牌,因此我不需要API订阅者输入此信息,也不需要知道它们。

之前提出了一个几乎相似的question但尚未得到回答。 文档here没有提供具体的细节,有点模糊,所以我迷失了如何实现这一点。有人这样做过吗?

感谢任何帮助,干杯!

1 个答案:

答案 0 :(得分:0)

是否要将其设置为自定义HTTP标头并将其发送到后端?如果是,那么您可以使用属性介体将其设置为传递范围属性,就在API的seSece内部发送介体之前,如下所示。查看发送中介之前的属性Fixed-Authorization设置。

<?xml version="1.0" encoding="UTF-8"?>
<api xmlns="http://ws.apache.org/ns/synapse"
     name="admin--Hello"
     context="/hello"
     version="1.0.0"
     version-type="url">
   <resource methods="POST GET OPTIONS DELETE PUT"
             url-mapping="/*"
             faultSequence="fault">
      <inSequence>
         <filter source="$ctx:AM_KEY_TYPE" regex="PRODUCTION">
            <then>
            <property name="Fixed-Authorization" value="yourAppToken" scope="transport"/>
               <send>
                  <endpoint name="admin--Hello_APIproductionEndpoint_0">
                     <http uri-template="http://echo.jsontest.com/key/value/one/two"/>
                  </endpoint>
               </send>
            </then>
            <else>
               <sequence key="_sandbox_key_error_"/>
            </else>
         </filter>
      </inSequence>
      <outSequence>
         <send/>
      </outSequence>
   </resource>
   <handlers>
      <handler class="org.wso2.carbon.apimgt.gateway.handlers.security.APIAuthenticationHandler"/>
      <handler class="org.wso2.carbon.apimgt.gateway.handlers.throttling.APIThrottleHandler">
         <property name="id" value="A"/>
         <property name="policyKey" value="gov:/apimgt/applicationdata/tiers.xml"/>
      </handler>
      <handler class="org.wso2.carbon.apimgt.usage.publisher.APIMgtUsageHandler"/>
      <handler class="org.wso2.carbon.apimgt.usage.publisher.APIMgtGoogleAnalyticsTrackingHandler">
         <property name="configKey" value="gov:/apimgt/statistics/ga-config.xml"/>
      </handler>
      <handler class="org.wso2.carbon.apimgt.gateway.handlers.ext.APIManagerExtensionHandler"/>
   </handlers>
</api>

如果您访问API,此属性将作为HTTP标头发送到您的后端端点。您可以参考this post获取更详细的说明。

如果您只想将此应用程序令牌传递给后端(但不是HTTP头),则可以使用JWT将其传递给后端。有关详细信息,请参阅this document