Apigee代理SSL CLASSIFICATION_FAILURE 404与301 REDIRECT

时间:2014-06-19 19:35:08

标签: apigee

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

2 个答案:

答案 0 :(得分: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 name="PreFlow">
    <Request>
        <Step>
            <FaultRules/>
            <Name>301tossl</Name>
            <Condition>client.scheme = "http"</Condition>
        </Step>
    </Request>
    <Response/>
</PreFlow>

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

答案 1 :(得分:0)

我会采用类似的方法描述全部捕获的here并重定向。捕获所有代理始终重定向。您无需提出错误,您可以在捕获所有代理的响应流程中执行此操作。