开发者

Logging unencrypted SOAP messages in WSE

开发者 https://www.devze.com 2022-12-16 19:24 出处:网络
I\'m trying to log raw SOAP messages being sent and recieved. I have a SoapExtension, eve开发者_开发知识库rything\'s generally working fine, but there\'s a problem, though. We\'re using WS-DeathStars\

I'm trying to log raw SOAP messages being sent and recieved. I have a SoapExtension, eve开发者_开发知识库rything's generally working fine, but there's a problem, though. We're using WS-DeathStars' encryption and message signing, so what gets logged is an encrypted SOAP message. What I need is to find a way to insert my SoapExtension right after message decryption extension and right before message encryption routine. How do I do that?


OK, I got it working. This can be solved by implementing a custom SoapFilter, which should be the first one in filter chain:

public class TraceAssertion : PolicyAssertion
{
    public override SoapFilter CreateClientInputFilter(FilterCreationContext context)
    {
        return new SoapTraceFilter();
    }

    public override SoapFilter CreateClientOutputFilter(FilterCreationContext context)
    {
        return new SoapTraceFilter();
    }

    public override SoapFilter CreateServiceInputFilter(FilterCreationContext context)
    {
        return null;
    }

    public override SoapFilter CreateServiceOutputFilter(FilterCreationContext context)
    {
        return null;
    }
}

public class SoapTraceFilter : SoapFilter
{
    public override SoapFilterResult ProcessMessage(SoapEnvelope envelope)
    {
        envelope.Save("c:\\log\\" + DateTime.Now.Ticks + ".soap.xml");
        return SoapFilterResult.Continue;
    }
}
0

精彩评论

暂无评论...
验证码 换一张
取 消