NTLM 身份验证方案选择错误

问题描述 投票:0回答:2

我正在用java开发一个应用程序,以从交换服务器(版本10)获取电子邮件附件,我有Windows 7(32位)电脑。我的代码编译成功,但在运行时出错,说-

May 20, 2013 5:58:46 PM org.apache.commons.httpclient.auth.AuthChallengeProcessor selectAuthScheme
INFO: NTLM authentication scheme selected
May 20, 2013 5:58:47 PM org.apache.commons.httpclient.HttpMethodDirector processWWWAuthChallenge
INFO: Failure authenticating with NTLM <any realm>@autodiscover.mydomain.com:443


我的代码是-

ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2010);
    ExchangeCredentials credentials;
    credentials = new WebCredentials("myuser", "mypwd","mydomain");
    service.setCredentials(credentials);
    service.autodiscoverUrl("[email protected]");

如何解决此 NTLM 身份验证错误?

java web-services api exchange-server exchange-server-2010
2个回答
0
投票

启用跟踪:

service.setTraceEnabled(true);
您确定您的 Exchange 版本是 2010 吗?使用这个指南来检查

也尝试删除

service.autodiscoverUrl("[email protected]");


0
投票

就我而言,这是身份验证首选项的错误顺序。 我只是通过编辑代码来更改它们。 我正在使用 EX_2007_SP3。

microsoft.exchange.webservices.data.HttpClientWebRequest:prepareConnection()
prepareAsyncConnection()
方法中,我更改了身份验证偏好顺序

来自,

authPrefs.add(AuthPolicy.NTLM);
authPrefs.add(AuthPolicy.BASIC);
authPrefs.add(AuthPolicy.DIGEST);

到,

authPrefs.add(AuthPolicy.BASIC);
authPrefs.add(AuthPolicy.NTLM);
authPrefs.add(AuthPolicy.DIGEST);

而且它仍然有效:) 我看到一些开发人员也使用 NEGOTIATE。

希望这有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.