通过使用服务代理请求设置非个人和客户端凭据,我能够使用Kerberos身份验证来使用WCF服务。
这可以用Java完成吗?
有没有可用的Java库?
启用Kerberos身份验证是在服务器端配置的,而不是在客户端配置的。
WSHttpBinding binding = new WSHttpBinding();
binding.Security.Mode = SecurityMode.Message;
binding.Security.Message.ClientCredentialType = MessageCredentialType.Windows;
我们在客户端设置Kerberos凭据,通常由客户端代理类完成。
ServiceReference1.ServiceClient client = new ServiceReference1.ServiceClient();
client.ClientCredentials.Windows.ClientCredential.Domain = "mydomain";
client.ClientCredentials.Windows.ClientCredential.UserName = "administrator";
client.ClientCredentials.Windows.ClientCredential.Password = "123456";
至于如何在Java中创建代理。这是一些解决方案。 Eclipse项目模板中有一个Web Service Client项目模板,它可以使用WCF公开的WSDL生成客户端代理类,例如在C#中添加服务引用。 http://wiki.eclipse.org/Creating_a_Java_Web_Service_Client https://docs.microsoft.com/en-us/dotnet/framework/wcf/accessing-services-using-a-wcf-client?view=netframework-4.7.2 Java JDK中也存在Wsimport.exe工具,如.Net中的SVCUTIL.EXE工具,它可以通过命令shell生成代理。 https://docs.oracle.com/javase/7/docs/technotes/tools/share/wsimport.html https://docs.microsoft.com/en-us/previous-versions/dotnet/netframework-3.5/aa347733(v=vs.90) 还有第三方库,如Axis2。 http://axis.apache.org/axis2/java/core/download.cgi 最后,您甚至可以通过HttpClient类构造和发送get / post请求来调用服务。 如果有任何我可以帮助的话,请随时与我联系。