linux上Java程序中使用Kerberos的Windows服务身份验证

linux上Java程序中使用Kerberos的Windows服务身份验证,java,linux,reporting-services,kerberos,Java,Linux,Reporting Services,Kerberos,大家好,几天来我一直在努力解决身份验证问题。我在tomcat7/java7/linux上开发一个web应用程序,需要从该应用程序访问Windows SSRS服务器 当我在我的windows计算机上运行代码时,一切正常,身份验证由windows完成,我只使用: InputStream pdfInStream = new BufferedInputStream(pdfUrl.openStream(), bufferSize); 在linux服务器上,我通过GSS-API javax.securit

大家好,几天来我一直在努力解决身份验证问题。我在tomcat7/java7/linux上开发一个web应用程序,需要从该应用程序访问Windows SSRS服务器

当我在我的windows计算机上运行代码时,一切正常,身份验证由windows完成,我只使用:

InputStream pdfInStream = new BufferedInputStream(pdfUrl.openStream(), bufferSize);
在linux服务器上,我通过GSS-API javax.security.auth.login.LoginContext使用Kerberos,并且我能够针对Kerberos服务器进行身份验证:LoginContext.login()工作正常

现在我被困在这里,这是一个不推荐使用的工具,Oracle文档让我好几天都没说到点子上,SPNEGO()似乎没有解决我的问题

提前谢谢

参考文献: Oracle文档: docs.oracle.com/javase/7/docs/technotes/guides/security/jgss/tutorials/BasicClientServer.html docs.oracle.com/javase/7/docs/technotes/guides/security/jgss/tutorials/ClientServer.html docs.oracle.com/javase/7/docs/technotes/guides/security/jgss/tutorials/AcnAndAzn.html

来自apache的HTTP工具:

大家好

我用不同的方法解决了我的问题。即使在linux机器上运行,我也可以使用NTLM从客户端进行身份验证(但该库也可以使用Kerberos)。多亏了ApacheHttpComponents库,这一切都成为可能

如果您有同样的问题,我建议您停下来:


再见

ssrs中有一个自定义的身份验证方案,只有在您控制了ssrs服务器的情况下,它才能为您的项目提供更大的灵活性。如果没有,您可能需要查看第三方库。谢谢您的回答,我可以控制SSRS服务器,我会查看它。但是,如果可能的话,我希望在我的公司使用kerberos windows身份验证来代替NTLM。