使用windows凭据从java客户端调用受保护的IIS web服务

使用windows凭据从java客户端调用受保护的IIS web服务,java,web-services,iis,soap,axis,Java,Web Services,Iis,Soap,Axis,我正在构建一个java应用程序,它需要从web服务获取一些数据。我已经得到了一个wsdl文件和我需要的所有信息,但是我没有得到授权,只能取回401代码。做web服务的人告诉我,IIS中的web服务目录必须关闭匿名身份验证,因此我需要传递windows凭据。我已经在谷歌上搜索了很长一段时间,但是没有找到任何不直接传递用户名和密码的解决方案。我需要做的是使用用户登录到windows的凭据,这样就不再需要输入用户名和密码。有人有过这样的经历吗?我发现了一个名为SPNEGO的东西,但它也直接使用用户名和

我正在构建一个java应用程序,它需要从web服务获取一些数据。我已经得到了一个wsdl文件和我需要的所有信息,但是我没有得到授权,只能取回401代码。做web服务的人告诉我,IIS中的web服务目录必须关闭匿名身份验证,因此我需要传递windows凭据。我已经在谷歌上搜索了很长一段时间,但是没有找到任何不直接传递用户名和密码的解决方案。我需要做的是使用用户登录到windows的凭据,这样就不再需要输入用户名和密码。有人有过这样的经历吗?我发现了一个名为SPNEGO的东西,但它也直接使用用户名和密码


感谢您的帮助。

您没有编写,您使用的是哪种webservice框架(我假设您没有手动创建和发送soap请求)

我假设webservice是通过http基本身份验证来保护的

如果我是你,我会使用测试工具soapUI对你的Web服务进行快速测试,如果是这样的话,我会检查一下 (见:)

如果成功,则需要在http标头区域内传递用户和密码。
(请参阅此处的“客户端”部分:获取示例值)

是的,对不起,忘了提到我正在使用axis。尽管如此,最终还是成功地对服务进行了身份验证,因为它没有使用基本身份验证,而是使用了NTLM。所以现在我做了这样的事情:

    BAWebServiceLocator locator = new BAWebServiceLocator(getEngineConfiguration());
    BAWebServiceSoap baWebServiceSoap = locator.getBAWebServiceSoap(url);

    ((Stub)baWebServiceSoap).setUsername(props.getProperty("username"));
    ((Stub)baWebServiceSoap).setPassword(props.getProperty("password"));
所以我还是要输入我的用户名和密码。我想做的是使用我登录到windows的凭据。有什么想法吗