<?xml version="1.0" encoding="UTF-8"?>
<wsp:Policy xmlns:L7p="http://www.layer7tech.com/ws/policy" xmlns:wsp="http://schemas.xmlsoap.org/ws/2002/12/policy">
<wsp:All wsp:Usage="Required">
<wsp:All wsp:Usage="Required">
<L7p:AuditDetailAssertion>
<L7p:Detail stringValueReference="inline"><![CDATA[Routing Status: ${routingStatus};
Response Content Type: ${response.contentType}]]></L7p:Detail>
</L7p:AuditDetailAssertion>
<L7p:CommentAssertion>
<L7p:Comment stringValue="http://www.iana.org/assignments/http-status-codes/http-status-codes.xml"/>
</L7p:CommentAssertion>
<L7p:CommentAssertion>
<L7p:Comment stringValue="meaningful failure modes for route assertion (fault.code)"/>
</L7p:CommentAssertion>
<L7p:CommentAssertion>
<L7p:Comment stringValue="1: failure occured before request was send to the backend"/>
</L7p:CommentAssertion>
<L7p:CommentAssertion>
<L7p:Comment stringValue="2: request was routed but no response was recieved"/>
</L7p:CommentAssertion>
<L7p:CommentAssertion>
<L7p:Comment stringValue="3: bad response from the backend"/>
</L7p:CommentAssertion>
<L7p:assertionComment>
<L7p:Properties mapValue="included">
<L7p:entry>
<L7p:key stringValue="RIGHT.COMMENT"/>
<L7p:value stringValue="//Informational"/>
</L7p:entry>
</L7p:Properties>
</L7p:assertionComment>
</wsp:All>
<wsp:All wsp:Usage="Required">
<L7p:SetVariable>
<L7p:Base64Expression stringValue="MA=="/>
<L7p:VariableToSet stringValue="fault.code"/>
</L7p:SetVariable>
<L7p:SetVariable>
<L7p:Base64Expression stringValue="VW5hYmxlIHRvIGxvY2F0ZSBlcnJvciBkZXRhaWxzLg=="/>
<L7p:VariableToSet stringValue="failure.messageText"/>
</L7p:SetVariable>
<L7p:SetVariable>
<L7p:Base64Expression stringValue="NTAw"/>
<L7p:VariableToSet stringValue="fault.status"/>
</L7p:SetVariable>
<L7p:SetVariable>
<L7p:Base64Expression stringValue="VW5kZWZpbmVkIGVycm9yIG9jY3VyZWQu"/>
<L7p:VariableToSet stringValue="fault.string"/>
</L7p:SetVariable>
<L7p:SetVariable>
<L7p:Base64Expression stringValue="UGxlYXNlIGNhbGwgdGhlIGhlbHAgZGVzayBmb3IgYXNzaXN0YW5jZS4="/>
<L7p:VariableToSet stringValue="fault.detail"/>
</L7p:SetVariable>
<L7p:assertionComment>
<L7p:Properties mapValue="included">
<L7p:entry>
<L7p:key stringValue="RIGHT.COMMENT"/>
<L7p:value stringValue="//default values"/>
</L7p:entry>
</L7p:Properties>
</L7p:assertionComment>
</wsp:All>
<L7p:ForEachLoop L7p:Usage="Required"
loopVariable="audit.details" variablePrefix="this">
<wsp:OneOrMore wsp:Usage="Required">
<wsp:All wsp:Usage="Required">
<L7p:ComparisonAssertion>
<L7p:CaseSensitive booleanValue="false"/>
<L7p:Expression1 stringValue="${this.current.messageId}"/>
<L7p:Operator operatorNull="null"/>
<L7p:Predicates predicates="included">
<L7p:item dataType="included">
<L7p:Type variableDataType="string"/>
</L7p:item>
<L7p:item binary="included">
<L7p:Operator operator="GT"/>
<L7p:RightValue stringValue="4030"/>
</L7p:item>
<L7p:item binary="included">
<L7p:Operator operator="LT"/>
<L7p:RightValue stringValue="4050"/>
</L7p:item>
</L7p:Predicates>
</L7p:ComparisonAssertion>
<wsp:OneOrMore wsp:Usage="Required">
<wsp:All wsp:Usage="Required">
<L7p:assertionComment>
<L7p:Properties mapValue="included">
<L7p:entry>
<L7p:key stringValue="RIGHT.COMMENT"/>
<L7p:value stringValue="//event 4038: bad http code response from backend"/>
</L7p:entry>
</L7p:Properties>
</L7p:assertionComment>
</wsp:All>
<wsp:All wsp:Usage="Required">
<L7p:assertionComment>
<L7p:Properties mapValue="included">
<L7p:entry>
<L7p:key stringValue="RIGHT.COMMENT"/>
<L7p:value stringValue="//event 4041: timeout"/>
</L7p:entry>
</L7p:Properties>
</L7p:assertionComment>
</wsp:All>
<wsp:All wsp:Usage="Required">
<L7p:ComparisonAssertion>
<L7p:CaseSensitive booleanValue="false"/>
<L7p:Expression1 stringValue="${this.current.messageId}"/>
<L7p:Operator operatorNull="null"/>
<L7p:Predicates predicates="included">
<L7p:item dataType="included">
<L7p:Type variableDataType="string"/>
</L7p:item>
<L7p:item binary="included">
<L7p:RightValue stringValue="4042"/>
</L7p:item>
</L7p:Predicates>
</L7p:ComparisonAssertion>
<L7p:SetVariable>
<L7p:Base64Expression stringValue="JHt0aGlzLmN1cnJlbnQubWVzc2FnZUlkfQ=="/>
<L7p:VariableToSet stringValue="fault.code"/>
</L7p:SetVariable>
<L7p:SetVariable>
<L7p:Base64Expression stringValue="JHt0aGlzLmN1cnJlbnQucGFyYW1zWzFdfQ=="/>
<L7p:VariableToSet stringValue="failure.messageText"/>
</L7p:SetVariable>
<L7p:Split>
<L7p:InputVariable stringValue="failure.messageText"/>
<L7p:OutputVariable stringValue="failure.messageText"/>
<L7p:SplitPattern stringValue=":"/>
<L7p:SplitPatternRegEx booleanValue="false"/>
</L7p:Split>
<wsp:OneOrMore wsp:Usage="Required">
<wsp:All wsp:Usage="Required">
<L7p:CommentAssertion>
<L7p:AssertionComment assertionComment="included">
<L7p:Properties mapValue="included">
<L7p:entry>
<L7p:key stringValue="LEFT.COMMENT"/>
<L7p:value stringValue="/*split on : [3]*/"/>
</L7p:entry>
</L7p:Properties>
</L7p:AssertionComment>
<L7p:Comment stringValue="Received fatal alert: unexpected_message"/>
</L7p:CommentAssertion>
<L7p:ComparisonAssertion>
<L7p:CaseSensitive booleanValue="false"/>
<L7p:Expression1 stringValue="${failure.messageText}"/>
<L7p:MultivaluedComparison multivaluedComparison="ANY"/>
<L7p:Operator operatorNull="null"/>
<L7p:Predicates predicates="included">
<L7p:item dataType="included">
<L7p:Type variableDataType="string"/>
</L7p:item>
<L7p:item binary="included">
<L7p:Operator operator="CONTAINS"/>
<L7p:RightValue stringValue="Received fatal alert: unexpected_message"/>
</L7p:item>
</L7p:Predicates>
</L7p:ComparisonAssertion>
<L7p:assertionComment>
<L7p:Properties mapValue="included">
<L7p:entry>
<L7p:key stringValue="RIGHT.COMMENT"/>
<L7p:value stringValue="//Cannot establish trust with backend server."/>
</L7p:entry>
</L7p:Properties>
</L7p:assertionComment>
</wsp:All>
<wsp:All wsp:Usage="Required">
<L7p:CommentAssertion>
<L7p:AssertionComment assertionComment="included">
<L7p:Properties mapValue="included">
<L7p:entry>
<L7p:key stringValue="LEFT.COMMENT"/>
<L7p:value stringValue="/*split on : [3]*/"/>
</L7p:entry>
</L7p:Properties>
</L7p:AssertionComment>
<L7p:Comment stringValue="java.security.cert.CertificateException: Certificate path validation and/or revocation checking failed. Caused by: Certificate path validation and/or revocation checking failed"/>
</L7p:CommentAssertion>
<L7p:ComparisonAssertion>
<L7p:CaseSensitive booleanValue="false"/>
<L7p:Expression1 stringValue="${failure.messageText}"/>
<L7p:MultivaluedComparison multivaluedComparison="ANY"/>
<L7p:Operator operatorNull="null"/>
<L7p:Predicates predicates="included">
<L7p:item dataType="included">
<L7p:Type variableDataType="string"/>
</L7p:item>
<L7p:item binary="included">
<L7p:Operator operator="CONTAINS"/>
<L7p:RightValue stringValue="Certificate path validation and/or revocation checking failed"/>
</L7p:item>
</L7p:Predicates>
</L7p:ComparisonAssertion>
<L7p:assertionComment>
<L7p:Properties mapValue="included">
<L7p:entry>
<L7p:key stringValue="RIGHT.COMMENT"/>
<L7p:value stringValue="//Certificate path validation and/or revocation checking failed"/>
</L7p:entry>
</L7p:Properties>
</L7p:assertionComment>
</wsp:All>
<wsp:All wsp:Usage="Required">
<L7p:CommentAssertion>
<L7p:AssertionComment assertionComment="included">
<L7p:Properties mapValue="included">
<L7p:entry>
<L7p:key stringValue="LEFT.COMMENT"/>
<L7p:value stringValue="/*split on : [3]*/"/>
</L7p:entry>
</L7p:Properties>
</L7p:AssertionComment>
<L7p:Comment stringValue="Unable to obtain HTTP response from https://your.server.com/service/endpoint.asmx: Host name does not match certificate 'your.server.com'."/>
</L7p:CommentAssertion>
<L7p:ComparisonAssertion>
<L7p:CaseSensitive booleanValue="false"/>
<L7p:Expression1 stringValue="${failure.messageText}"/>
<L7p:MultivaluedComparison multivaluedComparison="ANY"/>
<L7p:Operator operatorNull="null"/>
<L7p:Predicates predicates="included">
<L7p:item dataType="included">
<L7p:Type variableDataType="string"/>
</L7p:item>
<L7p:item binary="included">
<L7p:Operator operator="CONTAINS"/>
<L7p:RightValue stringValue="Host name does not match certificate"/>
</L7p:item>
</L7p:Predicates>
</L7p:ComparisonAssertion>
<L7p:assertionComment>
<L7p:Properties mapValue="included">
<L7p:entry>
<L7p:key stringValue="RIGHT.COMMENT"/>
<L7p:value stringValue="//Host name does not match certificate"/>
</L7p:entry>
</L7p:Properties>
</L7p:assertionComment>
</wsp:All>
<wsp:All wsp:Usage="Required">
<L7p:CommentAssertion>
<L7p:AssertionComment assertionComment="included">
<L7p:Properties mapValue="included">
<L7p:entry>
<L7p:key stringValue="LEFT.COMMENT"/>
<L7p:value stringValue="/*split on : [3]*/"/>
</L7p:entry>
</L7p:Properties>
</L7p:AssertionComment>
<L7p:Comment stringValue="Unable to login using gateway configured account."/>
</L7p:CommentAssertion>
<L7p:ComparisonAssertion>
<L7p:CaseSensitive booleanValue="false"/>
<L7p:Expression1 stringValue="${failure.messageText}"/>
<L7p:MultivaluedComparison multivaluedComparison="ANY"/>
<L7p:Operator operatorNull="null"/>
<L7p:Predicates predicates="included">
<L7p:item dataType="included">
<L7p:Type variableDataType="string"/>
</L7p:item>
<L7p:item binary="included">
<L7p:Operator operator="CONTAINS"/>
<L7p:RightValue stringValue="unsupported_certificate"/>
</L7p:item>
</L7p:Predicates>
</L7p:ComparisonAssertion>
<L7p:assertionComment>
<L7p:Properties mapValue="included">
<L7p:entry>
<L7p:key stringValue="RIGHT.COMMENT"/>
<L7p:value stringValue="//Received fatal alert, unsupported_certificate"/>
</L7p:entry>
</L7p:Properties>
</L7p:assertionComment>
</wsp:All>
<wsp:All wsp:Usage="Required">
<L7p:CommentAssertion>
<L7p:AssertionComment assertionComment="included">
<L7p:Properties mapValue="included">
<L7p:entry>
<L7p:key stringValue="LEFT.COMMENT"/>
<L7p:value stringValue="/*split on : [3]*/"/>
</L7p:entry>
</L7p:Properties>
</L7p:AssertionComment>
<L7p:Comment stringValue="Received close_notify during handshake"/>
</L7p:CommentAssertion>
<L7p:ComparisonAssertion>
<L7p:CaseSensitive booleanValue="false"/>
<L7p:Expression1 stringValue="${failure.messageText}"/>
<L7p:MultivaluedComparison multivaluedComparison="ANY"/>
<L7p:Operator operatorNull="null"/>
<L7p:Predicates predicates="included">
<L7p:item dataType="included">
<L7p:Type variableDataType="string"/>
</L7p:item>
<L7p:item binary="included">
<L7p:Operator operator="CONTAINS"/>
<L7p:RightValue stringValue="close_notify"/>
</L7p:item>
</L7p:Predicates>
</L7p:ComparisonAssertion>
<L7p:assertionComment>
<L7p:Properties mapValue="included">
<L7p:entry>
<L7p:key stringValue="RIGHT.COMMENT"/>
<L7p:value stringValue="//Received close_notify during handshake"/>
</L7p:entry>
</L7p:Properties>
</L7p:assertionComment>
</wsp:All>
<wsp:All wsp:Usage="Required">
<L7p:CommentAssertion>
<L7p:AssertionComment assertionComment="included">
<L7p:Properties mapValue="included">
<L7p:entry>
<L7p:key stringValue="LEFT.COMMENT"/>
<L7p:value stringValue="/*split on : [3]*/"/>
</L7p:entry>
</L7p:Properties>
</L7p:AssertionComment>
<L7p:Comment stringValue=" Timeout when connecting to host 'your.server.com'. Caused by"/>
</L7p:CommentAssertion>
<L7p:ComparisonAssertion>
<L7p:CaseSensitive booleanValue="false"/>
<L7p:Expression1 stringValue="${failure.messageText}"/>
<L7p:MultivaluedComparison multivaluedComparison="ANY"/>
<L7p:Operator operatorNull="null"/>
<L7p:Predicates predicates="included">
<L7p:item dataType="included">
<L7p:Type variableDataType="string"/>
</L7p:item>
<L7p:item binary="included">
<L7p:Operator operator="CONTAINS"/>
<L7p:RightValue stringValue="Timeout when connecting to host"/>
</L7p:item>
</L7p:Predicates>
</L7p:ComparisonAssertion>
<L7p:assertionComment>
<L7p:Properties mapValue="included">
<L7p:entry>
<L7p:key stringValue="RIGHT.COMMENT"/>
<L7p:value stringValue="//Timeout when connecting to host"/>
</L7p:entry>
</L7p:Properties>
</L7p:assertionComment>
</wsp:All>
<wsp:All wsp:Usage="Required">
<L7p:CommentAssertion>
<L7p:AssertionComment assertionComment="included">
<L7p:Properties mapValue="included">
<L7p:entry>
<L7p:key stringValue="LEFT.COMMENT"/>
<L7p:value stringValue="/*split on : [3]*/"/>
</L7p:entry>
</L7p:Properties>
</L7p:AssertionComment>
<L7p:Comment stringValue=" The host did not accept the connection within timeout of 1 ms. Caused by"/>
</L7p:CommentAssertion>
<L7p:ComparisonAssertion>
<L7p:CaseSensitive booleanValue="false"/>
<L7p:Expression1 stringValue="${failure.messageText}"/>
<L7p:MultivaluedComparison multivaluedComparison="ANY"/>
<L7p:Operator operatorNull="null"/>
<L7p:Predicates predicates="included">
<L7p:item dataType="included">
<L7p:Type variableDataType="string"/>
</L7p:item>
<L7p:item binary="included">
<L7p:Operator operator="CONTAINS"/>
<L7p:RightValue stringValue="The host did not accept the connection"/>
</L7p:item>
</L7p:Predicates>
</L7p:ComparisonAssertion>
<L7p:assertionComment>
<L7p:Properties mapValue="included">
<L7p:entry>
<L7p:key stringValue="RIGHT.COMMENT"/>
<L7p:value stringValue="//The host did not accept the connection"/>
</L7p:entry>
</L7p:Properties>
</L7p:assertionComment>
</wsp:All>
<wsp:All wsp:Usage="Required">
<L7p:CommentAssertion>
<L7p:AssertionComment assertionComment="included">
<L7p:Properties mapValue="included">
<L7p:entry>
<L7p:key stringValue="LEFT.COMMENT"/>
<L7p:value stringValue="/*split on : [3]*/"/>
</L7p:entry>
</L7p:Properties>
</L7p:AssertionComment>
<L7p:Comment stringValue=" Unknown host"/>
</L7p:CommentAssertion>
<L7p:ComparisonAssertion>
<L7p:CaseSensitive booleanValue="false"/>
<L7p:Expression1 stringValue="${failure.messageText}"/>
<L7p:MultivaluedComparison multivaluedComparison="ANY"/>
<L7p:Operator operatorNull="null"/>
<L7p:Predicates predicates="included">
<L7p:item dataType="included">
<L7p:Type variableDataType="string"/>
</L7p:item>
<L7p:item binary="included">
<L7p:Operator operator="CONTAINS"/>
<L7p:RightValue stringValue="Unknown host"/>
</L7p:item>
</L7p:Predicates>
</L7p:ComparisonAssertion>
<L7p:assertionComment>
<L7p:Properties mapValue="included">
<L7p:entry>
<L7p:key stringValue="RIGHT.COMMENT"/>
<L7p:value stringValue="//Unknown host"/>
</L7p:entry>
</L7p:Properties>
</L7p:assertionComment>
</wsp:All>
<wsp:All wsp:Usage="Required">
<L7p:CommentAssertion>
<L7p:AssertionComment assertionComment="included">
<L7p:Properties mapValue="included">
<L7p:entry>
<L7p:key stringValue="LEFT.COMMENT"/>
<L7p:value stringValue="/*split on : [3]*/"/>
</L7p:entry>
</L7p:Properties>
</L7p:AssertionComment>
<L7p:Comment stringValue="Multipart stream ended before a terminating boundary was encountered"/>
</L7p:CommentAssertion>
<L7p:ComparisonAssertion>
<L7p:CaseSensitive booleanValue="false"/>
<L7p:Expression1 stringValue="${failure.messageText}"/>
<L7p:MultivaluedComparison multivaluedComparison="ANY"/>
<L7p:Operator operatorNull="null"/>
<L7p:Predicates predicates="included">
<L7p:item dataType="included">
<L7p:Type variableDataType="string"/>
</L7p:item>
<L7p:item binary="included">
<L7p:Operator operator="CONTAINS"/>
<L7p:RightValue stringValue="Multipart stream ended before a terminating boundary was encountered"/>
</L7p:item>
</L7p:Predicates>
</L7p:ComparisonAssertion>
<L7p:assertionComment>
<L7p:Properties mapValue="included">
<L7p:entry>
<L7p:key stringValue="RIGHT.COMMENT"/>
<L7p:value stringValue="//Multipart stream ended before a terminating boundary was encountered"/>
</L7p:entry>
</L7p:Properties>
</L7p:assertionComment>
</wsp:All>
<wsp:All wsp:Usage="Required">
<L7p:CommentAssertion>
<L7p:AssertionComment assertionComment="included">
<L7p:Properties mapValue="included">
<L7p:entry>
<L7p:key stringValue="LEFT.COMMENT"/>
<L7p:value stringValue="/*split on : [3]*/"/>
</L7p:entry>
</L7p:Properties>
</L7p:AssertionComment>
<L7p:Comment stringValue="Unable to read stream: the specified maximum data size limit would be exceeded"/>
</L7p:CommentAssertion>
<L7p:ComparisonAssertion>
<L7p:CaseSensitive booleanValue="false"/>
<L7p:Expression1 stringValue="${failure.messageText}"/>
<L7p:MultivaluedComparison multivaluedComparison="ANY"/>
<L7p:Operator operatorNull="null"/>
<L7p:Predicates predicates="included">
<L7p:item dataType="included">
<L7p:Type variableDataType="string"/>
</L7p:item>
<L7p:item binary="included">
<L7p:Operator operator="CONTAINS"/>
<L7p:RightValue stringValue="Unable to read stream"/>
</L7p:item>
</L7p:Predicates>
</L7p:ComparisonAssertion>
<L7p:assertionComment>
<L7p:Properties mapValue="included">
<L7p:entry>
<L7p:key stringValue="RIGHT.COMMENT"/>
<L7p:value stringValue="//the specified maximum data size limit would be exceeded"/>
</L7p:entry>
</L7p:Properties>
</L7p:assertionComment>
</wsp:All>
<wsp:All wsp:Usage="Required">
<L7p:CommentAssertion>
<L7p:AssertionComment assertionComment="included">
<L7p:Properties mapValue="included">
<L7p:entry>
<L7p:key stringValue="LEFT.COMMENT"/>
<L7p:value stringValue="/*split on : [3]*/"/>
</L7p:entry>
</L7p:Properties>
</L7p:AssertionComment>
<L7p:Comment stringValue="Unable to obtain HTTP response from https://your.server.com:443/service/endpoint: Read timed out"/>
</L7p:CommentAssertion>
<L7p:ComparisonAssertion>
<L7p:CaseSensitive booleanValue="false"/>
<L7p:Expression1 stringValue="${failure.messageText}"/>
<L7p:MultivaluedComparison multivaluedComparison="ANY"/>
<L7p:Operator operatorNull="null"/>
<L7p:Predicates predicates="included">
<L7p:item dataType="included">
<L7p:Type variableDataType="string"/>
</L7p:item>
<L7p:item binary="included">
<L7p:Operator operator="CONTAINS"/>
<L7p:RightValue stringValue="Read timed out"/>
</L7p:item>
</L7p:Predicates>
</L7p:ComparisonAssertion>
<L7p:assertionComment>
<L7p:Properties mapValue="included">
<L7p:entry>
<L7p:key stringValue="RIGHT.COMMENT"/>
<L7p:value stringValue="//Read timed out"/>
</L7p:entry>
</L7p:Properties>
</L7p:assertionComment>
</wsp:All>
<wsp:All wsp:Usage="Required">
<L7p:CommentAssertion>
<L7p:AssertionComment assertionComment="included">
<L7p:Properties mapValue="included">
<L7p:entry>
<L7p:key stringValue="LEFT.COMMENT"/>
<L7p:value stringValue="/*split on : [3]*/"/>
</L7p:entry>
</L7p:Properties>
</L7p:AssertionComment>
<L7p:Comment stringValue=" Connection reset"/>
</L7p:CommentAssertion>
<L7p:ComparisonAssertion>
<L7p:CaseSensitive booleanValue="false"/>
<L7p:Expression1 stringValue="${failure.messageText}"/>
<L7p:MultivaluedComparison multivaluedComparison="ANY"/>
<L7p:Operator operatorNull="null"/>
<L7p:Predicates predicates="included">
<L7p:item dataType="included">
<L7p:Type variableDataType="string"/>
</L7p:item>
<L7p:item binary="included">
<L7p:Operator operator="CONTAINS"/>
<L7p:RightValue stringValue="Connection reset"/>
</L7p:item>
</L7p:Predicates>
</L7p:ComparisonAssertion>
<L7p:assertionComment>
<L7p:Properties mapValue="included">
<L7p:entry>
<L7p:key stringValue="RIGHT.COMMENT"/>
<L7p:value stringValue="//Connection reset"/>
</L7p:entry>
</L7p:Properties>
</L7p:assertionComment>
</wsp:All>
<wsp:All wsp:Usage="Required">
<L7p:CommentAssertion>
<L7p:AssertionComment assertionComment="included">
<L7p:Properties mapValue="included">
<L7p:entry>
<L7p:key stringValue="LEFT.COMMENT"/>
<L7p:value stringValue="/*split on : [3]*/"/>
</L7p:entry>
</L7p:Properties>
</L7p:AssertionComment>
<L7p:Comment stringValue=" The server your.server.com failed to respond with a valid HTTP response"/>
</L7p:CommentAssertion>
<L7p:ComparisonAssertion>
<L7p:CaseSensitive booleanValue="false"/>
<L7p:Expression1 stringValue="${failure.messageText}"/>
<L7p:MultivaluedComparison multivaluedComparison="ANY"/>
<L7p:Operator operatorNull="null"/>
<L7p:Predicates predicates="included">
<L7p:item dataType="included">
<L7p:Type variableDataType="string"/>
</L7p:item>
<L7p:item binary="included">
<L7p:Operator operator="CONTAINS"/>
<L7p:RightValue stringValue="failed to respond with a valid HTTP response"/>
</L7p:item>
</L7p:Predicates>
</L7p:ComparisonAssertion>
<L7p:assertionComment>
<L7p:Properties mapValue="included">
<L7p:entry>
<L7p:key stringValue="RIGHT.COMMENT"/>
<L7p:value stringValue="//failed to respond with a valid HTTP response"/>
</L7p:entry>
</L7p:Properties>
</L7p:assertionComment>
</wsp:All>
<wsp:All wsp:Usage="Required">
<L7p:CommentAssertion>
<L7p:AssertionComment assertionComment="included">
<L7p:Properties mapValue="included">
<L7p:entry>
<L7p:key stringValue="LEFT.COMMENT"/>
<L7p:value stringValue="/*split on : [3]*/"/>
</L7p:entry>
</L7p:Properties>
</L7p:AssertionComment>
<L7p:Comment stringValue="Connection refused"/>
</L7p:CommentAssertion>
<L7p:ComparisonAssertion>
<L7p:CaseSensitive booleanValue="false"/>
<L7p:Expression1 stringValue="${failure.messageText}"/>
<L7p:MultivaluedComparison multivaluedComparison="ANY"/>
<L7p:Operator operatorNull="null"/>
<L7p:Predicates predicates="included">
<L7p:item dataType="included">
<L7p:Type variableDataType="string"/>
</L7p:item>
<L7p:item binary="included">
<L7p:Operator operator="CONTAINS"/>
<L7p:RightValue stringValue="Connection refused"/>
</L7p:item>
</L7p:Predicates>
</L7p:ComparisonAssertion>
<L7p:assertionComment>
<L7p:Properties mapValue="included">
<L7p:entry>
<L7p:key stringValue="RIGHT.COMMENT"/>
<L7p:value stringValue="//Connection refused"/>
</L7p:entry>
</L7p:Properties>
</L7p:assertionComment>
</wsp:All>
<L7p:TrueAssertion/>
</wsp:OneOrMore>
<L7p:assertionComment>
<L7p:Properties mapValue="included">
<L7p:entry>
<L7p:key stringValue="RIGHT.COMMENT"/>
<L7p:value stringValue="//event 4042"/>
</L7p:entry>
</L7p:Properties>
</L7p:assertionComment>
</wsp:All>
</wsp:OneOrMore>
</wsp:All>
<L7p:TrueAssertion/>
</wsp:OneOrMore>
</L7p:ForEachLoop>
<L7p:CustomizeErrorResponse>
<L7p:Content stringValueReference="inline"><![CDATA[<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<soapenv:Fault>
<faultcode>soapenv:Server</faultcode>
<faultstring>${fault.string}</faultstring>
<faultactor>${request.url}</faultactor>
<detail>
<datetime>${request.time}</datetime>
<errorcode>${fault.code}${fault.status}${fault.char}</errorcode>
<message>${fault.detail}</message>
</detail>
</soapenv:Fault>
</soapenv:Body>
</soapenv:Envelope>]]></L7p:Content>
<L7p:ContentType stringValue="text/xml;charset=utf-8"/>
<L7p:ExtraHeaders nameValuePairArray="included"/>
<L7p:HttpStatus stringValue="${fault.status}"/>
</L7p:CustomizeErrorResponse>
<L7p:ExportVariables>
<L7p:AssertionComment assertionComment="included">
<L7p:Properties mapValue="included">
<L7p:entry>
<L7p:key stringValue="RIGHT.COMMENT"/>
<L7p:value stringValue="//for use with alerting"/>
</L7p:entry>
</L7p:Properties>
</L7p:AssertionComment>
<L7p:ExportedVars stringArrayValue="included">
<L7p:item stringValue="failure.messageText"/>
</L7p:ExportedVars>
</L7p:ExportVariables>
<wsp:All wsp:Usage="Required">
<L7p:CommentAssertion>
<L7p:Comment stringValue="failure.messageText: error description for logging and optionally for notifications"/>
</L7p:CommentAssertion>
<L7p:CommentAssertion>
<L7p:Comment stringValue="fault.detail: english readable message for client"/>
</L7p:CommentAssertion>
<L7p:CommentAssertion>
<L7p:Comment stringValue="fault.string: short description for client"/>
</L7p:CommentAssertion>
<L7p:CommentAssertion>
<L7p:Comment stringValue="fault.code: custom event code meaningful only to Layer7 admin team"/>
</L7p:CommentAssertion>
<L7p:CommentAssertion>
<L7p:Comment stringValue="fault.status: HTTP code to send to client"/>
</L7p:CommentAssertion>
<L7p:AuditDetailAssertion>
<L7p:AssertionComment assertionComment="included">
<L7p:Properties mapValue="included">
<L7p:entry>
<L7p:key stringValue="RIGHT.COMMENT"/>
<L7p:value stringValue="//audit"/>
</L7p:entry>
</L7p:Properties>
</L7p:AssertionComment>
<L7p:Detail stringValueReference="inline"><![CDATA[Routing latency: ${httpRouting.latency};
Route Falure: ${failure.messageText};
Route error ${fault.code} found; ${fault.status} sent]]></L7p:Detail>
</L7p:AuditDetailAssertion>
<L7p:assertionComment>
<L7p:Properties mapValue="included">
<L7p:entry>
<L7p:key stringValue="RIGHT.COMMENT"/>
<L7p:value stringValue="//informational"/>
</L7p:entry>
</L7p:Properties>
</L7p:assertionComment>
</wsp:All>
<L7p:FalseAssertion>
<L7p:AssertionComment assertionComment="included">
<L7p:Properties mapValue="included">
<L7p:entry>
<L7p:key stringValue="RIGHT.COMMENT"/>
<L7p:value stringValue="//stop causes error response to be sent to client"/>
</L7p:entry>
</L7p:Properties>
</L7p:AssertionComment>
</L7p:FalseAssertion>
</wsp:All>
</wsp:Policy>