【问题标题】:Apigee proxy SSL CLASSIFICATION_FAILURE 404 vs. 301 REDIRECTApigee 代理 SSL CLASSIFICATION_FAILURE 404 与 301 REDIRECT
【发布时间】:2014-06-20 12:29:56
【问题描述】:

当我有一个只接受 HTTPS 的 API 并且我发出一个 HTTP 请求时,默认值似乎是 404 错误。有没有办法自动重定向到 HTTPS URL?

【问题讨论】:

    标签: apigee


    【解决方案1】:

    一个简单的方法是使用有条件的 RaiseFault 策略。

    这是一个简单的例子

    RaiseFault 策略如下所示:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <RaiseFault async="false" continueOnError="false" enabled="true" name="301tossl">
    <DisplayName>301toSSL</DisplayName>
    <FaultRules/>
    <Properties/>
    <FaultResponse>
        <Set>
            <Headers>
              <Header name="Location">https://{request.header.host}{request.uri}</Header>
          </Headers>
            <Payload contentType="text/plain">SSL Required.
            </Payload>
            <StatusCode>301</StatusCode>
            <ReasonPhrase>Moved Permanently</ReasonPhrase>
        </Set>
    </FaultResponse>
    <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables>
    </RaiseFault>
    

    下面是一个在策略上设置条件的示例(在本例中为 preflow):

    <PreFlow name="PreFlow">
        <Request>
            <Step>
                <FaultRules/>
                <Name>301tossl</Name>
                <Condition>client.scheme = "http"</Condition>
            </Step>
        </Request>
        <Response/>
    </PreFlow>
    

    如果你想下载,我这里有一个示例 -> https://github.com/carloseberhardt/edge-samples/tree/master/proxies/301ssl

    【讨论】:

      【解决方案2】:

      我会采用here 描述的类似方法,即全部捕获并重定向。捕获所有代理总是重定向。您无需提出错误,您可以在 catch all proxy 的响应流中进行。

      【讨论】:

        猜你喜欢
        • 2014-07-19
        • 2019-05-10
        • 1970-01-01
        • 1970-01-01
        • 2014-02-02
        • 2010-09-10
        • 2014-08-29
        • 2014-07-01
        • 2014-03-01
        相关资源
        最近更新 更多