<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<l7:Bundle xmlns:l7="http://ns.l7tech.com/2010/04/gateway-management">
    <l7:References>
        <l7:Item>
            <l7:Name>opa</l7:Name>
            <l7:Id>8ad8b824d4d26e388f4f7a18647ca46a</l7:Id>
            <l7:Type>FOLDER</l7:Type>
            <l7:TimeStamp>2022-03-15T11:46:36.712Z</l7:TimeStamp>
            <l7:Resource>
                <l7:Folder folderId="0000000000000000ffffffffffffec76" id="8ad8b824d4d26e388f4f7a18647ca46a" version="0">
                    <l7:Name>opa</l7:Name>
                </l7:Folder>
            </l7:Resource>
        </l7:Item>
        <l7:Item>
            <l7:Name>OPA Validation</l7:Name>
            <l7:Id>8ad8b824d4d26e388f4f7a18647ca4e3</l7:Id>
            <l7:Type>POLICY</l7:Type>
            <l7:TimeStamp>2022-03-15T11:46:36.726Z</l7:TimeStamp>
            <l7:Resource>
                <l7:Policy guid="7700ab29-3be4-4453-b9a2-73d2870f658b" id="8ad8b824d4d26e388f4f7a18647ca4e3" version="10">
                    <l7:PolicyDetail folderId="8ad8b824d4d26e388f4f7a18647ca46a" guid="7700ab29-3be4-4453-b9a2-73d2870f658b" id="8ad8b824d4d26e388f4f7a18647ca4e3" version="10">
                        <l7:Name>OPA Validation</l7:Name>
                        <l7:PolicyType>Include</l7:PolicyType>
                        <l7:Properties>
                            <l7:Property key="hasRouting">
                                <l7:BooleanValue>true</l7:BooleanValue>
                            </l7:Property>
                            <l7:Property key="revision">
                                <l7:LongValue>11</l7:LongValue>
                            </l7:Property>
                            <l7:Property key="soap">
                                <l7:BooleanValue>false</l7:BooleanValue>
                            </l7:Property>
                        </l7:Properties>
                    </l7:PolicyDetail>
                    <l7:Resources>
                        <l7:ResourceSet tag="policy">
                            <l7:Resource type="policy">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;wsp:Policy xmlns:L7p=&quot;http://www.layer7tech.com/ws/policy&quot; xmlns:wsp=&quot;http://schemas.xmlsoap.org/ws/2002/12/policy&quot;&gt;
    &lt;wsp:All wsp:Usage=&quot;Required&quot;&gt;
        &lt;L7p:CommentAssertion&gt;
            &lt;L7p:Comment stringValue=&quot;Policy Fragment: OPA Validation&quot;/&gt;
        &lt;/L7p:CommentAssertion&gt;
        &lt;L7p:HttpRoutingAssertion&gt;
            &lt;L7p:FailOnErrorStatus booleanValue=&quot;false&quot;/&gt;
            &lt;L7p:HttpMethod httpMethod=&quot;POST&quot;/&gt;
            &lt;L7p:ProtectedServiceUrl stringValue=&quot;${opaUrl}${opaPackage}&quot;/&gt;
            &lt;L7p:ProxyPassword stringValueNull=&quot;null&quot;/&gt;
            &lt;L7p:ProxyUsername stringValueNull=&quot;null&quot;/&gt;
            &lt;L7p:RequestHeaderRules httpPassthroughRuleSet=&quot;included&quot;&gt;
                &lt;L7p:ForwardAll booleanValue=&quot;true&quot;/&gt;
                &lt;L7p:Rules httpPassthroughRules=&quot;included&quot;&gt;
                    &lt;L7p:item httpPassthroughRule=&quot;included&quot;&gt;
                        &lt;L7p:Name stringValue=&quot;Cookie&quot;/&gt;
                    &lt;/L7p:item&gt;
                    &lt;L7p:item httpPassthroughRule=&quot;included&quot;&gt;
                        &lt;L7p:Name stringValue=&quot;SOAPAction&quot;/&gt;
                    &lt;/L7p:item&gt;
                &lt;/L7p:Rules&gt;
            &lt;/L7p:RequestHeaderRules&gt;
            &lt;L7p:RequestMsgSrc stringValue=&quot;opainputmessage&quot;/&gt;
            &lt;L7p:RequestParamRules httpPassthroughRuleSet=&quot;included&quot;&gt;
                &lt;L7p:ForwardAll booleanValue=&quot;true&quot;/&gt;
                &lt;L7p:Rules httpPassthroughRules=&quot;included&quot;/&gt;
            &lt;/L7p:RequestParamRules&gt;
            &lt;L7p:ResponseHeaderRules httpPassthroughRuleSet=&quot;included&quot;&gt;
                &lt;L7p:ForwardAll booleanValue=&quot;true&quot;/&gt;
                &lt;L7p:Rules httpPassthroughRules=&quot;included&quot;&gt;
                    &lt;L7p:item httpPassthroughRule=&quot;included&quot;&gt;
                        &lt;L7p:Name stringValue=&quot;Set-Cookie&quot;/&gt;
                    &lt;/L7p:item&gt;
                &lt;/L7p:Rules&gt;
            &lt;/L7p:ResponseHeaderRules&gt;
            &lt;L7p:SamlAssertionVersion intValue=&quot;2&quot;/&gt;
        &lt;/L7p:HttpRoutingAssertion&gt;
        &lt;L7p:EvaluateJsonPathExpressionV2&gt;
            &lt;L7p:Expression stringValue=&quot;.result.allow&quot;/&gt;
            &lt;L7p:Target target=&quot;RESPONSE&quot;/&gt;
            &lt;L7p:VariablePrefix stringValue=&quot;opaResult&quot;/&gt;
        &lt;/L7p:EvaluateJsonPathExpressionV2&gt;
        &lt;wsp:OneOrMore wsp:Usage=&quot;Required&quot;&gt;
            &lt;L7p:ComparisonAssertion&gt;
                &lt;L7p:CaseSensitive booleanValue=&quot;false&quot;/&gt;
                &lt;L7p:Expression1 stringValue=&quot;${opaResult.result}&quot;/&gt;
                &lt;L7p:Expression2 stringValue=&quot;true&quot;/&gt;
                &lt;L7p:Predicates predicates=&quot;included&quot;&gt;
                    &lt;L7p:item binary=&quot;included&quot;&gt;
                        &lt;L7p:CaseSensitive booleanValue=&quot;false&quot;/&gt;
                        &lt;L7p:RightValue stringValue=&quot;true&quot;/&gt;
                    &lt;/L7p:item&gt;
                &lt;/L7p:Predicates&gt;
            &lt;/L7p:ComparisonAssertion&gt;
            &lt;wsp:All wsp:Usage=&quot;Required&quot;&gt;
                &lt;L7p:CustomizeErrorResponse&gt;
                    &lt;L7p:Content stringValueReference=&quot;inline&quot;&gt;&lt;![CDATA[{
  &quot;message&quot;: &quot;forbidden&quot;
}]]&gt;&lt;/L7p:Content&gt;
                    &lt;L7p:ContentType stringValue=&quot;application/json; charset=UTF-8&quot;/&gt;
                    &lt;L7p:ExtraHeaders nameValuePairArray=&quot;included&quot;/&gt;
                    &lt;L7p:HttpStatus stringValue=&quot;403&quot;/&gt;
                &lt;/L7p:CustomizeErrorResponse&gt;
                &lt;L7p:FalseAssertion/&gt;
            &lt;/wsp:All&gt;
        &lt;/wsp:OneOrMore&gt;
    &lt;/wsp:All&gt;
&lt;/wsp:Policy&gt;
                            </l7:Resource>
                        </l7:ResourceSet>
                    </l7:Resources>
                </l7:Policy>
            </l7:Resource>
        </l7:Item>
        <l7:Item>
            <l7:Name>Validate JWT</l7:Name>
            <l7:Id>a349ecb6d7d2ac409cb020e8aaef2752</l7:Id>
            <l7:Type>POLICY</l7:Type>
            <l7:TimeStamp>2022-03-15T11:46:36.729Z</l7:TimeStamp>
            <l7:Resource>
                <l7:Policy guid="3d6b7e2d-d594-497e-bf6a-f96429b695dc" id="a349ecb6d7d2ac409cb020e8aaef2752" version="7">
                    <l7:PolicyDetail folderId="8ad8b824d4d26e388f4f7a18647ca46a" guid="3d6b7e2d-d594-497e-bf6a-f96429b695dc" id="a349ecb6d7d2ac409cb020e8aaef2752" version="7">
                        <l7:Name>Validate JWT</l7:Name>
                        <l7:PolicyType>Include</l7:PolicyType>
                        <l7:Properties>
                            <l7:Property key="hasRouting">
                                <l7:BooleanValue>false</l7:BooleanValue>
                            </l7:Property>
                            <l7:Property key="revision">
                                <l7:LongValue>8</l7:LongValue>
                            </l7:Property>
                            <l7:Property key="soap">
                                <l7:BooleanValue>false</l7:BooleanValue>
                            </l7:Property>
                        </l7:Properties>
                    </l7:PolicyDetail>
                    <l7:Resources>
                        <l7:ResourceSet tag="policy">
                            <l7:Resource type="policy">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;wsp:Policy xmlns:L7p=&quot;http://www.layer7tech.com/ws/policy&quot; xmlns:wsp=&quot;http://schemas.xmlsoap.org/ws/2002/12/policy&quot;&gt;
    &lt;wsp:All wsp:Usage=&quot;Required&quot;&gt;
        &lt;L7p:CommentAssertion&gt;
            &lt;L7p:Comment stringValue=&quot;Policy Fragment: Validate JWT&quot;/&gt;
        &lt;/L7p:CommentAssertion&gt;
        &lt;L7p:Split&gt;
            &lt;L7p:InputVariable stringValue=&quot;jwt&quot;/&gt;
            &lt;L7p:OutputVariable stringValue=&quot;jwt&quot;/&gt;
            &lt;L7p:SplitPattern stringValue=&quot; &quot;/&gt;
        &lt;/L7p:Split&gt;
        &lt;L7p:DecodeJsonWebToken&gt;
            &lt;L7p:FailUnverifiedSignature booleanValue=&quot;true&quot;/&gt;
            &lt;L7p:SignatureSecret stringValue=&quot;${sharedSecret}&quot;/&gt;
            &lt;L7p:SourcePayload stringValue=&quot;${jwt[1]}&quot;/&gt;
            &lt;L7p:TargetVariablePrefix stringValue=&quot;jwt&quot;/&gt;
            &lt;L7p:ValidationType stringValue=&quot;Using Secret&quot;/&gt;
        &lt;/L7p:DecodeJsonWebToken&gt;
        &lt;L7p:SetVariable&gt;
            &lt;L7p:Base64Expression stringValue=&quot;JHtqd3QucGF5bG9hZH0=&quot;/&gt;
            &lt;L7p:ContentType stringValue=&quot;application/json; charset=utf-8&quot;/&gt;
            &lt;L7p:DataType variableDataType=&quot;message&quot;/&gt;
            &lt;L7p:VariableToSet stringValue=&quot;jwt.payload&quot;/&gt;
        &lt;/L7p:SetVariable&gt;
        &lt;L7p:EvaluateJsonPathExpressionV2&gt;
            &lt;L7p:Expression stringValue=&quot;.user&quot;/&gt;
            &lt;L7p:OtherTargetMessageVariable stringValue=&quot;jwt.payload&quot;/&gt;
            &lt;L7p:Target target=&quot;OTHER&quot;/&gt;
            &lt;L7p:VariablePrefix stringValue=&quot;user&quot;/&gt;
        &lt;/L7p:EvaluateJsonPathExpressionV2&gt;
    &lt;/wsp:All&gt;
&lt;/wsp:Policy&gt;
                            </l7:Resource>
                        </l7:ResourceSet>
                    </l7:Resources>
                </l7:Policy>
            </l7:Resource>
        </l7:Item>
        <l7:Item>
            <l7:Name>Validate JWT</l7:Name>
            <l7:Id>a349ecb6d7d2ac409cb020e8aaef2762</l7:Id>
            <l7:Type>ENCAPSULATED_ASSERTION</l7:Type>
            <l7:TimeStamp>2022-03-15T11:46:36.729Z</l7:TimeStamp>
            <l7:Resource>
                <l7:EncapsulatedAssertion id="a349ecb6d7d2ac409cb020e8aaef2762" version="2">
                    <l7:Name>Validate JWT</l7:Name>
                    <l7:Guid>7dc4d634-c2b1-4e6d-811c-70db8a9fa433</l7:Guid>
                    <l7:PolicyReference id="a349ecb6d7d2ac409cb020e8aaef2752" resourceUri="http://ns.l7tech.com/2010/04/gateway-management/policies"/>
                    <l7:EncapsulatedArguments>
                        <l7:EncapsulatedAssertionArgument>
                            <l7:Ordinal>1</l7:Ordinal>
                            <l7:ArgumentName>jwt</l7:ArgumentName>
                            <l7:ArgumentType>string</l7:ArgumentType>
                            <l7:GuiLabel>JWT</l7:GuiLabel>
                            <l7:GuiPrompt>true</l7:GuiPrompt>
                        </l7:EncapsulatedAssertionArgument>
                        <l7:EncapsulatedAssertionArgument>
                            <l7:Ordinal>2</l7:Ordinal>
                            <l7:ArgumentName>sharedSecret</l7:ArgumentName>
                            <l7:ArgumentType>string</l7:ArgumentType>
                            <l7:GuiLabel>Shared Secret</l7:GuiLabel>
                            <l7:GuiPrompt>true</l7:GuiPrompt>
                        </l7:EncapsulatedAssertionArgument>
                    </l7:EncapsulatedArguments>
                    <l7:EncapsulatedResults>
                        <l7:EncapsulatedAssertionResult>
                            <l7:ResultName>user.result</l7:ResultName>
                            <l7:ResultType>string</l7:ResultType>
                        </l7:EncapsulatedAssertionResult>
                    </l7:EncapsulatedResults>
                    <l7:Properties>
                        <l7:Property key="allowTracing">
                            <l7:StringValue>false</l7:StringValue>
                        </l7:Property>
                        <l7:Property key="description">
                            <l7:StringValue>Validate a HS256 JWT with shared secret</l7:StringValue>
                        </l7:Property>
                        <l7:Property key="paletteFolder">
                            <l7:StringValue>policyLogic</l7:StringValue>
                        </l7:Property>
                        <l7:Property key="passMetricsToParent">
                            <l7:StringValue>false</l7:StringValue>
                        </l7:Property>
                        <l7:Property key="policyGuid">
                            <l7:StringValue>3d6b7e2d-d594-497e-bf6a-f96429b695dc</l7:StringValue>
                        </l7:Property>
                    </l7:Properties>
                </l7:EncapsulatedAssertion>
            </l7:Resource>
        </l7:Item>
        <l7:Item>
            <l7:Name>OPA Validation</l7:Name>
            <l7:Id>8ad8b824d4d26e388f4f7a18647ca4f3</l7:Id>
            <l7:Type>ENCAPSULATED_ASSERTION</l7:Type>
            <l7:TimeStamp>2022-03-15T11:46:36.729Z</l7:TimeStamp>
            <l7:Resource>
                <l7:EncapsulatedAssertion id="8ad8b824d4d26e388f4f7a18647ca4f3" version="0">
                    <l7:Name>OPA Validation</l7:Name>
                    <l7:Guid>d54aa78b-7b25-4024-a327-10f93f71077c</l7:Guid>
                    <l7:PolicyReference id="8ad8b824d4d26e388f4f7a18647ca4e3" resourceUri="http://ns.l7tech.com/2010/04/gateway-management/policies"/>
                    <l7:EncapsulatedArguments>
                        <l7:EncapsulatedAssertionArgument>
                            <l7:Ordinal>1</l7:Ordinal>
                            <l7:ArgumentName>opaUrl</l7:ArgumentName>
                            <l7:ArgumentType>string</l7:ArgumentType>
                            <l7:GuiLabel>OPA URL</l7:GuiLabel>
                            <l7:GuiPrompt>true</l7:GuiPrompt>
                        </l7:EncapsulatedAssertionArgument>
                        <l7:EncapsulatedAssertionArgument>
                            <l7:Ordinal>2</l7:Ordinal>
                            <l7:ArgumentName>opaPackage</l7:ArgumentName>
                            <l7:ArgumentType>string</l7:ArgumentType>
                            <l7:GuiLabel>OPA Package</l7:GuiLabel>
                            <l7:GuiPrompt>true</l7:GuiPrompt>
                        </l7:EncapsulatedAssertionArgument>
                        <l7:EncapsulatedAssertionArgument>
                            <l7:Ordinal>3</l7:Ordinal>
                            <l7:ArgumentName>opaInputMessage</l7:ArgumentName>
                            <l7:ArgumentType>message</l7:ArgumentType>
                            <l7:GuiLabel>Input Message</l7:GuiLabel>
                            <l7:GuiPrompt>true</l7:GuiPrompt>
                        </l7:EncapsulatedAssertionArgument>
                        <l7:EncapsulatedAssertionArgument>
                            <l7:Ordinal>4</l7:Ordinal>
                            <l7:ArgumentName>failOnRejection</l7:ArgumentName>
                            <l7:ArgumentType>boolean</l7:ArgumentType>
                            <l7:GuiLabel>Fail on Rejection</l7:GuiLabel>
                            <l7:GuiPrompt>true</l7:GuiPrompt>
                        </l7:EncapsulatedAssertionArgument>
                    </l7:EncapsulatedArguments>
                    <l7:EncapsulatedResults/>
                    <l7:Properties>
                        <l7:Property key="allowTracing">
                            <l7:StringValue>false</l7:StringValue>
                        </l7:Property>
                        <l7:Property key="description">
                            <l7:StringValue>This assertion validates requests against Open Policy Agent.</l7:StringValue>
                        </l7:Property>
                        <l7:Property key="paletteFolder">
                            <l7:StringValue>accessControl</l7:StringValue>
                        </l7:Property>
                        <l7:Property key="passMetricsToParent">
                            <l7:StringValue>false</l7:StringValue>
                        </l7:Property>
                        <l7:Property key="policyGuid">
                            <l7:StringValue>7700ab29-3be4-4453-b9a2-73d2870f658b</l7:StringValue>
                        </l7:Property>
                    </l7:Properties>
                </l7:EncapsulatedAssertion>
            </l7:Resource>
        </l7:Item>
        <l7:Item>
            <l7:Name>Gateway Validated JWT</l7:Name>
            <l7:Id>8ad8b824d4d26e388f4f7a18647ca4a7</l7:Id>
            <l7:Type>SERVICE</l7:Type>
            <l7:TimeStamp>2022-03-15T11:46:36.754Z</l7:TimeStamp>
            <l7:Resource>
                <l7:Service id="8ad8b824d4d26e388f4f7a18647ca4a7" version="5">
                    <l7:ServiceDetail folderId="8ad8b824d4d26e388f4f7a18647ca46a" id="8ad8b824d4d26e388f4f7a18647ca4a7" version="5">
                        <l7:Name>Gateway Validated JWT</l7:Name>
                        <l7:Enabled>true</l7:Enabled>
                        <l7:ServiceMappings>
                            <l7:HttpMapping>
                                <l7:UrlPattern>/v1/account/*</l7:UrlPattern>
                                <l7:Verbs>
                                    <l7:Verb>GET</l7:Verb>
                                    <l7:Verb>POST</l7:Verb>
                                    <l7:Verb>PUT</l7:Verb>
                                    <l7:Verb>DELETE</l7:Verb>
                                </l7:Verbs>
                            </l7:HttpMapping>
                        </l7:ServiceMappings>
                        <l7:Properties>
                            <l7:Property key="hasRouting">
                                <l7:BooleanValue>true</l7:BooleanValue>
                            </l7:Property>
                            <l7:Property key="internal">
                                <l7:BooleanValue>false</l7:BooleanValue>
                            </l7:Property>
                            <l7:Property key="policyRevision">
                                <l7:LongValue>23</l7:LongValue>
                            </l7:Property>
                            <l7:Property key="soap">
                                <l7:BooleanValue>false</l7:BooleanValue>
                            </l7:Property>
                            <l7:Property key="tracingEnabled">
                                <l7:BooleanValue>false</l7:BooleanValue>
                            </l7:Property>
                            <l7:Property key="wssProcessingEnabled">
                                <l7:BooleanValue>false</l7:BooleanValue>
                            </l7:Property>
                        </l7:Properties>
                    </l7:ServiceDetail>
                    <l7:Resources>
                        <l7:ResourceSet tag="policy">
                            <l7:Resource type="policy" version="22">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;wsp:Policy xmlns:L7p=&quot;http://www.layer7tech.com/ws/policy&quot; xmlns:wsp=&quot;http://schemas.xmlsoap.org/ws/2002/12/policy&quot;&gt;
    &lt;wsp:All wsp:Usage=&quot;Required&quot;&gt;
        &lt;L7p:Encapsulated&gt;
            &lt;L7p:EncapsulatedAssertionConfigGuid stringValue=&quot;7dc4d634-c2b1-4e6d-811c-70db8a9fa433&quot;/&gt;
            &lt;L7p:EncapsulatedAssertionConfigName stringValue=&quot;Validate JWT&quot;/&gt;
            &lt;L7p:Parameters mapValue=&quot;included&quot;&gt;
                &lt;L7p:entry&gt;
                    &lt;L7p:key stringValue=&quot;jwt&quot;/&gt;
                    &lt;L7p:value stringValue=&quot;${request.http.header.Authorization}&quot;/&gt;
                &lt;/L7p:entry&gt;
                &lt;L7p:entry&gt;
                    &lt;L7p:key stringValue=&quot;sharedSecret&quot;/&gt;
                    &lt;L7p:value stringValue=&quot;cONSCerytArcHisOmBRopHelieTRailiStr&quot;/&gt;
                &lt;/L7p:entry&gt;
            &lt;/L7p:Parameters&gt;
        &lt;/L7p:Encapsulated&gt;
        &lt;L7p:Split&gt;
            &lt;L7p:InputVariable stringValue=&quot;request.http.uri&quot;/&gt;
            &lt;L7p:OutputVariable stringValue=&quot;uriParams&quot;/&gt;
            &lt;L7p:SplitPattern stringValue=&quot;/&quot;/&gt;
        &lt;/L7p:Split&gt;
        &lt;L7p:SetVariable&gt;
            &lt;L7p:Base64Expression stringValue=&quot;eyAgDQogICAgImlucHV0Ijogew0KICAgICAgICAicGF0aCI6IFsiJHt1cmlQYXJhbXNbMV19IiwgIiR7dXJpUGFyYW1zWzJdfSIsICIke3VyaVBhcmFtc1szXX0iXSwNCiAgICAgICAgIm1ldGhvZCI6ICIke3JlcXVlc3QuaHR0cC5tZXRob2R9IiwNCiAgICAgICAgInN1YmplY3QiOiAiJHt1c2VyLnJlc3VsdH0iLA0KICAgICAgICAicmVzb3VyY2UiOiAiYWNjb3VudHMiLA0KICAgICAgICAiYWN0aW9uIjogIiR7cmVxdWVzdC5odHRwLmhlYWRlci5hY3Rpb259Ig0KICAgIH0NCn0=&quot;/&gt;
            &lt;L7p:ContentType stringValue=&quot;application/json; charset=utf-8&quot;/&gt;
            &lt;L7p:DataType variableDataType=&quot;message&quot;/&gt;
            &lt;L7p:VariableToSet stringValue=&quot;opa&quot;/&gt;
        &lt;/L7p:SetVariable&gt;
        &lt;L7p:Encapsulated&gt;
            &lt;L7p:EncapsulatedAssertionConfigGuid stringValue=&quot;d54aa78b-7b25-4024-a327-10f93f71077c&quot;/&gt;
            &lt;L7p:EncapsulatedAssertionConfigName stringValue=&quot;OPA Validation&quot;/&gt;
            &lt;L7p:Parameters mapValue=&quot;included&quot;&gt;
                &lt;L7p:entry&gt;
                    &lt;L7p:key stringValue=&quot;failOnRejection&quot;/&gt;
                    &lt;L7p:value stringValue=&quot;true&quot;/&gt;
                &lt;/L7p:entry&gt;
                &lt;L7p:entry&gt;
                    &lt;L7p:key stringValue=&quot;opaInputMessage&quot;/&gt;
                    &lt;L7p:value stringValue=&quot;opa&quot;/&gt;
                &lt;/L7p:entry&gt;
                &lt;L7p:entry&gt;
                    &lt;L7p:key stringValue=&quot;opaPackage&quot;/&gt;
                    &lt;L7p:value stringValue=&quot;layer7/rbac&quot;/&gt;
                &lt;/L7p:entry&gt;
                &lt;L7p:entry&gt;
                    &lt;L7p:key stringValue=&quot;opaUrl&quot;/&gt;
                    &lt;L7p:value stringValue=&quot;http://opa.opa.svc.cluster.local:8181/v1/data/&quot;/&gt;
                &lt;/L7p:entry&gt;
            &lt;/L7p:Parameters&gt;
        &lt;/L7p:Encapsulated&gt;
        &lt;L7p:HardcodedResponse&gt;
            &lt;L7p:Base64ResponseBody stringValue=&quot;ewogICJtZXNzYWdlIjogInN1Y2Nlc3MiCn0=&quot;/&gt;
            &lt;L7p:ResponseContentType stringValue=&quot;application/json; charset=UTF-8&quot;/&gt;
        &lt;/L7p:HardcodedResponse&gt;
    &lt;/wsp:All&gt;
&lt;/wsp:Policy&gt;
                            </l7:Resource>
                        </l7:ResourceSet>
                    </l7:Resources>
                </l7:Service>
            </l7:Resource>
        </l7:Item>
        <l7:Item>
            <l7:Name>Generate Simple JWT</l7:Name>
            <l7:Id>a349ecb6d7d2ac409cb020e8aaef26da</l7:Id>
            <l7:Type>SERVICE</l7:Type>
            <l7:TimeStamp>2022-03-15T11:46:36.758Z</l7:TimeStamp>
            <l7:Resource>
                <l7:Service id="a349ecb6d7d2ac409cb020e8aaef26da" version="3">
                    <l7:ServiceDetail folderId="8ad8b824d4d26e388f4f7a18647ca46a" id="a349ecb6d7d2ac409cb020e8aaef26da" version="3">
                        <l7:Name>Generate Simple JWT</l7:Name>
                        <l7:Enabled>true</l7:Enabled>
                        <l7:ServiceMappings>
                            <l7:HttpMapping>
                                <l7:UrlPattern>/jwt</l7:UrlPattern>
                                <l7:Verbs>
                                    <l7:Verb>GET</l7:Verb>
                                    <l7:Verb>POST</l7:Verb>
                                    <l7:Verb>PUT</l7:Verb>
                                    <l7:Verb>DELETE</l7:Verb>
                                </l7:Verbs>
                            </l7:HttpMapping>
                        </l7:ServiceMappings>
                        <l7:Properties>
                            <l7:Property key="hasRouting">
                                <l7:BooleanValue>true</l7:BooleanValue>
                            </l7:Property>
                            <l7:Property key="internal">
                                <l7:BooleanValue>false</l7:BooleanValue>
                            </l7:Property>
                            <l7:Property key="policyRevision">
                                <l7:LongValue>7</l7:LongValue>
                            </l7:Property>
                            <l7:Property key="soap">
                                <l7:BooleanValue>false</l7:BooleanValue>
                            </l7:Property>
                            <l7:Property key="tracingEnabled">
                                <l7:BooleanValue>false</l7:BooleanValue>
                            </l7:Property>
                            <l7:Property key="wssProcessingEnabled">
                                <l7:BooleanValue>false</l7:BooleanValue>
                            </l7:Property>
                        </l7:Properties>
                    </l7:ServiceDetail>
                    <l7:Resources>
                        <l7:ResourceSet tag="policy">
                            <l7:Resource type="policy" version="6">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;wsp:Policy xmlns:L7p=&quot;http://www.layer7tech.com/ws/policy&quot; xmlns:wsp=&quot;http://schemas.xmlsoap.org/ws/2002/12/policy&quot;&gt;
    &lt;wsp:All wsp:Usage=&quot;Required&quot;&gt;
        &lt;L7p:SetVariable&gt;
            &lt;L7p:Base64Expression stringValue=&quot;ew0KICAidXNlciI6ICIke3JlcXVlc3QuaHR0cC5wYXJhbWV0ZXJzLnVzZXJ9IiwNCiAgImF6cCI6ICIke3JlcXVlc3QuaHR0cC5wYXJhbWV0ZXJzLnVzZXJ9Ig0KfQ==&quot;/&gt;
            &lt;L7p:VariableToSet stringValue=&quot;body&quot;/&gt;
        &lt;/L7p:SetVariable&gt;
        &lt;L7p:EncodeJsonWebToken&gt;
            &lt;L7p:SignPayload booleanValue=&quot;true&quot;/&gt;
            &lt;L7p:SignatureAlgorithm stringValue=&quot;HS256&quot;/&gt;
            &lt;L7p:SignatureSecretKey stringValue=&quot;cONSCerytArcHisOmBRopHelieTRailiStr&quot;/&gt;
            &lt;L7p:SourceVariable stringValue=&quot;${body}&quot;/&gt;
            &lt;L7p:TargetVariable stringValue=&quot;jwt&quot;/&gt;
        &lt;/L7p:EncodeJsonWebToken&gt;
        &lt;L7p:HardcodedResponse&gt;
            &lt;L7p:Base64ResponseBody stringValue=&quot;ewogICJ0b2tlbiI6ICIke2p3dC5jb21wYWN0fSIKfQ==&quot;/&gt;
            &lt;L7p:ResponseContentType stringValue=&quot;application/json; charset=UTF-8&quot;/&gt;
        &lt;/L7p:HardcodedResponse&gt;
    &lt;/wsp:All&gt;
&lt;/wsp:Policy&gt;
                            </l7:Resource>
                        </l7:ResourceSet>
                    </l7:Resources>
                </l7:Service>
            </l7:Resource>
        </l7:Item>
        <l7:Item>
            <l7:Name>OPA Validated JWT</l7:Name>
            <l7:Id>a349ecb6d7d2ac409cb020e8aaef2717</l7:Id>
            <l7:Type>SERVICE</l7:Type>
            <l7:TimeStamp>2022-03-15T11:46:36.764Z</l7:TimeStamp>
            <l7:Resource>
                <l7:Service id="a349ecb6d7d2ac409cb020e8aaef2717" version="3">
                    <l7:ServiceDetail folderId="8ad8b824d4d26e388f4f7a18647ca46a" id="a349ecb6d7d2ac409cb020e8aaef2717" version="3">
                        <l7:Name>OPA Validated JWT</l7:Name>
                        <l7:Enabled>true</l7:Enabled>
                        <l7:ServiceMappings>
                            <l7:HttpMapping>
                                <l7:UrlPattern>/v2/account/*</l7:UrlPattern>
                                <l7:Verbs>
                                    <l7:Verb>GET</l7:Verb>
                                    <l7:Verb>POST</l7:Verb>
                                    <l7:Verb>PUT</l7:Verb>
                                    <l7:Verb>DELETE</l7:Verb>
                                </l7:Verbs>
                            </l7:HttpMapping>
                        </l7:ServiceMappings>
                        <l7:Properties>
                            <l7:Property key="hasRouting">
                                <l7:BooleanValue>true</l7:BooleanValue>
                            </l7:Property>
                            <l7:Property key="internal">
                                <l7:BooleanValue>false</l7:BooleanValue>
                            </l7:Property>
                            <l7:Property key="policyRevision">
                                <l7:LongValue>11</l7:LongValue>
                            </l7:Property>
                            <l7:Property key="soap">
                                <l7:BooleanValue>false</l7:BooleanValue>
                            </l7:Property>
                            <l7:Property key="tracingEnabled">
                                <l7:BooleanValue>false</l7:BooleanValue>
                            </l7:Property>
                            <l7:Property key="wssProcessingEnabled">
                                <l7:BooleanValue>false</l7:BooleanValue>
                            </l7:Property>
                        </l7:Properties>
                    </l7:ServiceDetail>
                    <l7:Resources>
                        <l7:ResourceSet tag="policy">
                            <l7:Resource type="policy" version="10">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;wsp:Policy xmlns:L7p=&quot;http://www.layer7tech.com/ws/policy&quot; xmlns:wsp=&quot;http://schemas.xmlsoap.org/ws/2002/12/policy&quot;&gt;
    &lt;wsp:All wsp:Usage=&quot;Required&quot;&gt;
        &lt;L7p:Split&gt;
            &lt;L7p:InputVariable stringValue=&quot;request.http.uri&quot;/&gt;
            &lt;L7p:OutputVariable stringValue=&quot;uriParams&quot;/&gt;
            &lt;L7p:SplitPattern stringValue=&quot;/&quot;/&gt;
        &lt;/L7p:Split&gt;
        &lt;L7p:Split&gt;
            &lt;L7p:InputVariable stringValue=&quot;request.http.header.Authorization&quot;/&gt;
            &lt;L7p:OutputVariable stringValue=&quot;auth&quot;/&gt;
            &lt;L7p:SplitPattern stringValue=&quot; &quot;/&gt;
        &lt;/L7p:Split&gt;
        &lt;L7p:SetVariable&gt;
            &lt;L7p:Base64Expression stringValue=&quot;eyAgDQogICAgImlucHV0Ijogew0KICAgICAgICAicGF0aCI6IFsiJHt1cmlQYXJhbXNbMV19IiwgIiR7dXJpUGFyYW1zWzJdfSIsICIke3VyaVBhcmFtc1szXX0iXSwNCiAgICAgICAgIm1ldGhvZCI6ICIke3JlcXVlc3QuaHR0cC5tZXRob2R9IiwNCiAgICAgICAgInRva2VuIjogIiR7YXV0aFsxXX0iLA0KICAgICAgICAic2hhcmVkU2VjcmV0IjogImNPTlNDZXJ5dEFyY0hpc09tQlJvcEhlbGllVFJhaWxpU3RyIiwNCiAgICAgICAgInJlc291cmNlIjogImFjY291bnRzIiwNCiAgICAgICAgImFjdGlvbiI6ICIke3JlcXVlc3QuaHR0cC5oZWFkZXIuYWN0aW9ufSINCiAgICB9DQp9&quot;/&gt;
            &lt;L7p:ContentType stringValue=&quot;application/json; charset=utf-8&quot;/&gt;
            &lt;L7p:DataType variableDataType=&quot;message&quot;/&gt;
            &lt;L7p:VariableToSet stringValue=&quot;opa&quot;/&gt;
        &lt;/L7p:SetVariable&gt;
        &lt;L7p:Encapsulated&gt;
            &lt;L7p:EncapsulatedAssertionConfigGuid stringValue=&quot;d54aa78b-7b25-4024-a327-10f93f71077c&quot;/&gt;
            &lt;L7p:EncapsulatedAssertionConfigName stringValue=&quot;OPA Validation&quot;/&gt;
            &lt;L7p:Parameters mapValue=&quot;included&quot;&gt;
                &lt;L7p:entry&gt;
                    &lt;L7p:key stringValue=&quot;failOnRejection&quot;/&gt;
                    &lt;L7p:value stringValue=&quot;true&quot;/&gt;
                &lt;/L7p:entry&gt;
                &lt;L7p:entry&gt;
                    &lt;L7p:key stringValue=&quot;opaInputMessage&quot;/&gt;
                    &lt;L7p:value stringValue=&quot;opa&quot;/&gt;
                &lt;/L7p:entry&gt;
                &lt;L7p:entry&gt;
                    &lt;L7p:key stringValue=&quot;opaPackage&quot;/&gt;
                    &lt;L7p:value stringValue=&quot;layer7/jwt&quot;/&gt;
                &lt;/L7p:entry&gt;
                &lt;L7p:entry&gt;
                    &lt;L7p:key stringValue=&quot;opaUrl&quot;/&gt;
                    &lt;L7p:value stringValue=&quot;http://opa.opa.svc.cluster.local:8181/v1/data/&quot;/&gt;
                &lt;/L7p:entry&gt;
            &lt;/L7p:Parameters&gt;
        &lt;/L7p:Encapsulated&gt;
        &lt;L7p:HardcodedResponse&gt;
            &lt;L7p:Base64ResponseBody stringValue=&quot;ewogICJtZXNzYWdlIjogInN1Y2Nlc3MiCn0=&quot;/&gt;
            &lt;L7p:ResponseContentType stringValue=&quot;application/json; charset=UTF-8&quot;/&gt;
        &lt;/L7p:HardcodedResponse&gt;
    &lt;/wsp:All&gt;
&lt;/wsp:Policy&gt;
                            </l7:Resource>
                        </l7:ResourceSet>
                    </l7:Resources>
                </l7:Service>
            </l7:Resource>
        </l7:Item>
    </l7:References>
    <l7:Mappings>
        <l7:Mapping action="NewOrExisting" srcId="0000000000000000ffffffffffffec76" srcUri="https://ssg-gateway-74889d888c-gq8sk:8443/restman/1.0/folders/0000000000000000ffffffffffffec76" type="FOLDER">
            <l7:Properties>
                <l7:Property key="FailOnNew">
                    <l7:BooleanValue>true</l7:BooleanValue>
                </l7:Property>
            </l7:Properties>
        </l7:Mapping>
        <l7:Mapping action="NewOrExisting" srcId="8ad8b824d4d26e388f4f7a18647ca46a" srcUri="https://ssg-gateway-74889d888c-gq8sk:8443/restman/1.0/folders/8ad8b824d4d26e388f4f7a18647ca46a" type="FOLDER"/>
        <l7:Mapping action="NewOrExisting" srcId="00000000000000000000000000000002:SSL" srcUri="https://ssg-gateway-74889d888c-gq8sk:8443/restman/1.0/privateKeys/00000000000000000000000000000002:SSL" type="SSG_KEY_ENTRY">
            <l7:Properties>
                <l7:Property key="FailOnNew">
                    <l7:BooleanValue>true</l7:BooleanValue>
                </l7:Property>
            </l7:Properties>
        </l7:Mapping>
        <l7:Mapping action="NewOrExisting" srcId="8ad8b824d4d26e388f4f7a18647ca4e3" srcUri="https://ssg-gateway-74889d888c-gq8sk:8443/restman/1.0/policies/8ad8b824d4d26e388f4f7a18647ca4e3" type="POLICY"/>
        <l7:Mapping action="NewOrExisting" srcId="a349ecb6d7d2ac409cb020e8aaef2752" srcUri="https://ssg-gateway-74889d888c-gq8sk:8443/restman/1.0/policies/a349ecb6d7d2ac409cb020e8aaef2752" type="POLICY"/>
        <l7:Mapping action="NewOrExisting" srcId="a349ecb6d7d2ac409cb020e8aaef2762" srcUri="https://ssg-gateway-74889d888c-gq8sk:8443/restman/1.0/encapsulatedAssertions/a349ecb6d7d2ac409cb020e8aaef2762" type="ENCAPSULATED_ASSERTION"/>
        <l7:Mapping action="NewOrExisting" srcId="8ad8b824d4d26e388f4f7a18647ca4f3" srcUri="https://ssg-gateway-74889d888c-gq8sk:8443/restman/1.0/encapsulatedAssertions/8ad8b824d4d26e388f4f7a18647ca4f3" type="ENCAPSULATED_ASSERTION"/>
        <l7:Mapping action="NewOrExisting" srcId="8ad8b824d4d26e388f4f7a18647ca4a7" srcUri="https://ssg-gateway-74889d888c-gq8sk:8443/restman/1.0/services/8ad8b824d4d26e388f4f7a18647ca4a7" type="SERVICE"/>
        <l7:Mapping action="NewOrExisting" srcId="a349ecb6d7d2ac409cb020e8aaef26da" srcUri="https://ssg-gateway-74889d888c-gq8sk:8443/restman/1.0/services/a349ecb6d7d2ac409cb020e8aaef26da" type="SERVICE"/>
        <l7:Mapping action="NewOrExisting" srcId="a349ecb6d7d2ac409cb020e8aaef2717" srcUri="https://ssg-gateway-74889d888c-gq8sk:8443/restman/1.0/services/a349ecb6d7d2ac409cb020e8aaef2717" type="SERVICE"/>
    </l7:Mappings>
</l7:Bundle>