cxf-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Louis Orenstein (JIRA)" <>
Subject [jira] [Created] (CXF-6651) POST request to Exchange Web Services failing with largish data via NTLM
Date Wed, 21 Oct 2015 15:58:27 GMT
Louis Orenstein created CXF-6651:

             Summary: POST request to Exchange Web Services failing with largish data via
                 Key: CXF-6651
             Project: CXF
          Issue Type: Bug
            Reporter: Louis Orenstein

As documented here (
), I'm seeing issues when attempting to send largish POST requests to Exchange Web Services
when using NTLM authentication using CXF version 3.1.3 .

When the server only has Basic authentication enabled I can get POST requests larger than
256k to succeed but only if I provide my own IOUtils class that removes these lines from the
copy method defined on line 180:
if (avail > 262144) {
	avail = 262144;

Here is the code I'm using to configure the SOAP client:
        ExchangeWebService exchangeWebService = new ExchangeWebService();
        ExchangeServicePortType exchangeConn = exchangeWebService.getExchangeWebPort();

                new NTCredentials(finalUsername, password, null, finalDomain));
        ((BindingProvider) exchangeConn).getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY,

        Client client = ClientProxy.getClient(exchangeConn);

        Bus bus = client.getBus();
        bus.setExtension(new AsyncHTTPConduitFactory(bus) {
            protected void adaptClientBuilder(HttpAsyncClientBuilder httpAsyncClientBuilder)
                httpAsyncClientBuilder.setTargetAuthenticationStrategy(new TargetAuthenticationStrategy()
                    protected boolean isCachable(AuthScheme authScheme) {
                        return false;

            public HTTPConduit createConduit(HTTPTransportFactory f, Bus bus, EndpointInfo
localInfo, EndpointReferenceType target) throws IOException {
                HTTPConduit newConduit = super.createConduit(f, bus, localInfo, target);
                HTTPClientPolicy clientPolicy = newConduit.getClient();
                if (clientPolicy == null) {
                    clientPolicy = new HTTPClientPolicy();
                return newConduit;
        }, HTTPConduitFactory.class);

I'll be attaching wireshark network captures from the Exchange Web Services server along with
debug logging from the client.

This message was sent by Atlassian JIRA

View raw message