[ 
https://issues.apache.org/jira/browse/CXF-4525?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13465884#comment-13465884
 ] 

Shaun Elliott commented on CXF-4525:
------------------------------------

It looks pretty close to me, however, I'm not seeing how you can get at the 
DefaultHttpAsyncClient object from AsyncHTTPConduitFactory. I do see that you 
added a public create method. Are you intending the factory to be subclassed in 
order to alter the DefaultHttpAsyncClient? If that is your intent, then I would 
assume that one would have to override this as well:

{code}
    public AsyncHTTPConduitFactory getAsyncHTTPConduitFactory() {
        return factory;
    }
{code}

In addition, you'd then have to set the subclassed AsyncHTTPConduit on the bus, 
right?

Here is what I am trying to do, I think if you add a getter to the client it 
would work:

{code}
                Client client = ClientProxy.getClient( proxy );
                HTTPConduit http = (HTTPConduit)client.getConduit();
                if ( http instanceof AsyncHTTPConduit ) {
                        AsyncHTTPConduit asyncHTTPConduit = 
(AsyncHTTPConduit)http;
                        DefaultHttpAsyncClient defaultHttpAsyncClient = 
asyncHTTPConduit.getAsyncHTTPConduitFactory().getDefaultHttpAsyncClient();
                        defaultHttpAsyncClient.getCredentialsProvider()
                                .setCredentials( AuthScope.ANY, new 
NTCredentials( _userName, _password, "", _domain ) );
                }
{code}

This would effectively allow CXF to do NTLM authentication via the 
DefaultHttpAsyncClient.
                
> expose http client
> ------------------
>
>                 Key: CXF-4525
>                 URL: https://issues.apache.org/jira/browse/CXF-4525
>             Project: CXF
>          Issue Type: Improvement
>          Components: Transports
>    Affects Versions: 2.7.0
>            Reporter: Shaun Elliott
>            Assignee: Daniel Kulp
>             Fix For: 2.7.0
>
>
> The class: CXFAsyncRequester hides the DefaultHttpAsyncClient, thus 
> preventing interaction from outside classes. One use case would be to 
> leverage the embedded DefaultHttpAsyncClient to do NTLM authentication, which 
> is currently not possible with CXF.
> AsyncHTTPConduit will also need a getter on the factory field.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to