Get hands-on experience with 20+ free Google Cloud products and $300 in free credit for new customers.

CORS Error when I use Parameter Reference in KVM

I was using below KVM policy in the shared flow. When consumer was calling the proxy it was working fine.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<KeyValueMapOperations name="XYZ" mapIdentifier="XYZ">
    <Scope>environment</Scope>
    <Get assignTo="private.ClientId">
        <Key>
            <Parameter>ClientId</Parameter>
        </Key>
    </Get>
    <Scope>environment</Scope>
</KeyValueMapOperations>

Then I changed the KVM policy to as below, the consumer started getting CORS error.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<KeyValueMapOperations mapIdentifier="ABC" async="false" continueOnError="false" enabled="true" name="GetKVM">
    <DisplayName>GetKVM</DisplayName>
    <ExpiryTimeInSecs>864000</ExpiryTimeInSecs>
    <Scope>environment</Scope>
    <Get assignTo="ClientId" index="1">
        <Key>
            <Parameter ref="request.header.x-api-key"/>
        </Key>
    </Get>   
</KeyValueMapOperations>

I already have CORS policy added in the target preflow as below

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<AssignMessage name="add-cors" async="false" continueOnError="false" enabled="true">
    <DisplayName>Add CORS</DisplayName>
    <FaultRules/>
    <Properties/>
    <Set>
        <Headers>
            <Header name="Access-Control-Allow-Origin">*</Header>
            <Header name="Access-Control-Allow-Headers">origin, x-requested-with, accept,  content-type, authorization, x-api-key</Header>
            <Header name="Access-Control-Max-Age">3628800</Header>
            <Header name="Access-Control-Allow-Methods">GET, PUT, POST, DELETE</Header>
        </Headers>
    </Set>
    <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables>
    <AssignTo type="response" createNew="false" transport="http"/>
</AssignMessage>

I an using Verify access token and hence using below condition too.

<Step>
<Name>FC-VerifyAccessToken</Name>
<Condition>request.verb != "OPTIONS"</Condition>
</Step>

There error started occurring only after the KVM policy change when I added

<Parameter ref="request.header.x-api-key"/>
1 1 225
1 REPLY 1