Tag: sspi

人们如何让Java SPNEGO客户端在Windows中运行?

要在Windows上使用Java进行客户端HTTP SPNEGO身份validation,您需要设置Windows注册表项allowtgtsessionkey 。 这是有据可查的。 我不明白的是人们如何解决这个问题? 大多数企业站点永远不会接受在Windows中为了单个软件而更改此注册表项。 如果需要在组织中的每个工作站上更改它,请考虑一下麻烦。 但这只是理论,因为我到目前为止还无法说服我们的任何客户更改此注册表项。 我不怪他们。 大多数企业管理员会认为这样可以放松安全性并因此反对它。 我已经读过: 在Java或命令行工具中是否有办法使用本机SSPI API获取服务的Kerberos票证? 但它现在已经很老了。 所以我真的,真的不明白人们如何使Windows + Java客户端+ Kerberos可以在除大学环境,家庭用户等之外的任何地方工作。 我从公司管理员那里得到的问题是“当IE和Firefox等应用程序在没有设置此密钥的情况下执行SPNEGO时,我们为什么需要设置此注册表项?”。 好吧,我知道答案是什么。 这是因为(很可能)IE和Firefox等应用程序基于Windows本机GSS API(SSPI),而Sun的Java使用自己的实现。 我假设使用像WAFFLE这样的东西可以解决问题,但我赞成纯Java解决方案。 我还假设使用基于Java的解决方案(如Spring安全性或Apache HttpClient)无济于事,因为它们都会遇到这个问题。 任何帮助或指示将不胜感激。 更新1 : 我发现Oracle的bug数据库中有一个RFE 。 还有一个Oracle员工就此问题提交的补丁以及有关此function的JDK邮件列表的讨论 。 除了我能理解的这一点,在目前的Java 7中没有这个function,甚至不是实验性的。 对? 更新2 : 现在问题在OpenJDK Security Dev邮件列表上再次存在 。