Axis2 currently only has support for NTLMv1. This may explain the
problem. See also AXIS2-4318.

Andreas

On Tue, Jun 16, 2009 at 11:11, Andrew Bruno<andrew.br...@gmail.com> wrote:
> Hello all,
>
> I have been developing an ExchangeWebServices client using axis2 (xmlbeans),
> and cannot seem to get NTLM working.
> Basic Authentication is working.
>
> I have a class that extends the generated stub.
>
> It has a constructor
>
>     public ExchangeWebServiceBinding(String userName, String passWord,
> boolean secure, String ewsPath, String host, String ntDomain, int port)
>             throws RemoteException {
>         super(createTargetEndPointUrl(ewsPath, secure, host, port,
> ewsPath));
>         setAuthenticationParameters(userName, passWord, host, ntDomain,
> port);
>     }
>
> The setAuthenticationParameters does the authentication:
>
>     private void setAuthenticationParameters(String userName, String
> passWord, String host, String ntDomain, int port) throws RemoteException {
>         Protocol AlcHttpsProtocol = new Protocol(HTTPS, new
> EasySSLProtocolSocketFactory(), port);
>         Protocol.registerProtocol(HTTPS, AlcHttpsProtocol);
>
>         Options options = this._getServiceClient().getOptions();
>
>         HttpTransportProperties.Authenticator ntlmAuthentication =  new
> HttpTransportProperties.Authenticator();
>         ntlmAuthentication.setUsername(userName);
>         ntlmAuthentication.setPassword(passWord);
>         ntlmAuthentication.setHost(host);
>         ntlmAuthentication.setPort(port);
>         ntlmAuthentication.setRealm(null);
>         ntlmAuthentication.setDomain(ntDomain);
>         ntlmAuthentication.setAllowedRetry(true);
>
>         ArrayList authSchemes = new ArrayList();
>         authSchemes.add(AuthPolicy.NTLM);
>         ntlmAuthentication.setAuthSchemes(authSchemes);
>
>         options.setProperty(HTTPConstants.AUTHENTICATE, ntlmAuthentication);
>
>             // Set to 5 minutes
>         options.setTimeOutInMilliSeconds(300000);
>
>         this._getServiceClient().setOptions(options);
>
>         logger.info("Authentication parameters set for user [" + userName +
> "]");
>     }
>
>
> I have setup SBS2008 with "Windows Authentication" enabled on the
> SERVER\Sites\SBS Web Applications\EWS folder, and all others disabled.
>
> I keep getting 401 errors.  If I change the AuthPolicy.NTLM to
> AuthPolicy.BASIC, and enable BASIC on the server it works.
>
> Does anyone have any ideas?  Is what I am doing above correct? or is there
> another way?
>
> Thanks
> Andrew
>
> P.S.  Also, http://ws.apache.org/axis2/1_3/http-transport.html talks about
> NTCredentials.  Do I need to use these?  How to I set them in the stub?
>
>
>
>

Reply via email to