2012-07-02 5 views
0

데이터 프록시에 WS 프록시가 있습니다. 클라이언트와 백엔드 모두 HTTP입니다. WSA : 액션 WSA : messageID 설명 WSA : 내 요청과 같은 값이있는 비누 헤더 포함 ReplyTo의 타임 스탬프Datapower 비누 봉투 헤더 값 요청

모든 값이 필요 나던 백엔드를, 그래서 그들은 백엔드에 cnverted 요청을 보내기 전에 박탈된다 그리고 분명히 이것들은 내가 백엔드에서 돌아 오는 응답에 존재하지 않습니다. 이제 Datapower에서 클라이언트에게 응답을 보내면 응답 비누 헤더에이 모든 값이 다시 필요합니다. A

새로 생성 된 타임 스탬프는 5 분 후에 만료됩니다. 조치 메시지 ID 답글

되돌릴 방법이 있습니까? 나는 xslt에서 해보고 싶지 않다. 데이터를 처리 할 수있는 몇 가지 inbuilt 지원이있다.

답변

0

전체 SOAP 헤더 노드 집합을 컨텍스트 변수에 저장하고 응답 규칙으로 바꿉니다. 물론 백엔드가 특정 값을 추가하거나 수정하지 않는 한. 이 경우 복원 할 항목을 선택하여 선택할 수 있습니다.

0

아래 코드에서 tp remove header를 찾아 컨텍스트 변수로 이동하십시오. 그 컨텍스트 변수 값을 다시 사용할 수 있습니다.

XSl1는 : SOAP에 다시 사용자 이름과 암호를 다시 추가하려면 : 컨텍스트에 사용자 이름과 암호를 저장하려면

<?xml version="1.0" encoding="UTF-8"?> 
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
xmlns:dp="http://www.datapower.com/extensions" 
xmlns:dpconfig="http://www.datapower.com/param/config" 
extension-element-prefixes="dp date dpconfig" exclude-result-prefixes=" dp dpconfig "> 
<xsl:template match="/"> 
<xsl:variable name = "User"> 
<xsl:value-of select="/*[local-name()='Envelope']/*[local-name()='Header']/*[local-name()='Security']/*[local-name()='UsernameToken']/*[local-name()='Username']/text()"/> 


</xsl:variable> 
<xsl:variable name = "PWD"> 
<xsl:value-of select="/*[local-name()='Envelope']/*[local-name()='Header']/*[local-name()='Security']/*[local-name()='UsernameToken']/*[local-name()='Password']/text()"/> 
</xsl:variable> 
<xsl:message dp:priority="debug"> 
    User name : <xsl:value-of select="$User"/> 
<xsl:message dp:priority="debug"> 
    Password : <xsl:value-of select="$PWD"/> 
</xsl:message> 
<dp:set-variable name="'var://context/Test/User'" value ="string($User)"/> 
<dp:set-variable name="'var://context/Test/Pws'" value ="string($PWD)"/> 
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" > 
<soapenv:Header> 
</soapenv:Header>   
    <soapenv:Body> 
<xsl:copy-of select="/*[local-name()='Envelope']/*[local-name()='Body']/*" /> 
</soapenv:Body> 
</soapenv:Envelope> 
</xsl:template> 
</xsl:stylesheet> 

XSl2을 variable`.

<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:dp="http://www.datapower.com/extensions" 
xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" 
xmlns:dpconfig="http://www.datapower.com/param/config" 
extension-element-prefixes="dp dpconfig soapenv" exclude-result-prefixes="dp dpconfig"> 
    <xsl:template match="@*|node()"> 
<xsl:copy> 
<xsl:apply-templates select="@*|node()"/> 
</xsl:copy> 
</xsl:template> 
    <xsl:template match = "*[local-name() = 'Header']"> 


<soapenv:Header xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> 
<soap:appid xmlns:soap="http://na.az.com/soaplatform">?</soap:appid> 
<wsse:Security soapenv:mustUnderstand="1" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"> 
<wsse:UsernameToken> 
<wsse:Username> 
<xsl:value-of select="dp:variable('var://context/Test/User')"/> 
</wsse:Username> 
<wsse:Password> 
<xsl:value-of select="dp:variable('var://context/Test/Pws')"/> 
</wsse:Password> 
    </wsse:UsernameToken> 
</wsse:Security> 
</soapenv:Header> 
</xsl:template> 
</xsl:stylesheet>