【问题标题】:Windows support of native GSS-API in Java 6Java 6 中对本机 GSS-API 的 Windows 支持
【发布时间】:2011-03-28 21:23:18
【问题描述】:

来自http://java.sun.com/developer/technicalArticles/J2SE/security/#3

注意:这两个系统属性是 应用程序运行时忽略 还没有的操作系​​统 支持此功能,例如 MS 窗户。

那份文件是 2006 年的,所以事情可能已经改变,但我还没有找到明确的答案。

我想知道最新版本的 Sun Java 6 for Windows 今天是否支持本机 GSS(在不修改注册表的情况下获得 TGT)。

【问题讨论】:

标签: java kerberos jgss


【解决方案1】:

没有

来自http://hg.openjdk.java.net/jdk6/jdk6-gate/jdk/file/78235ae077a1/src/share/classes/sun/security/jgss/GSSManagerImpl.java(47):

   47     static {
   48         USE_NATIVE =
   49             AccessController.doPrivileged(new PrivilegedAction<Boolean>() {
   50                     public Boolean run() {
   51                             String osname = System.getProperty("os.name");
   52                             if (osname.startsWith("SunOS") ||
   53                                 osname.startsWith("Linux")) {
   54                                 return new Boolean(System.getProperty
   55                                     (USE_NATIVE_PROP));
   56                             }
   57                             return Boolean.FALSE;
   58                     }
   59             });
   60 

【讨论】:

  • 这对于贡献的补丁来说是值得的!
  • 这不是对 OpenJDK 实现的引用吗?这不是来自 Sun 的消息来源。您需要查阅文档或尝试一下。 Open JDK 中的代码与 Sun 对这些东西的实现 100% 不匹配。
  • 是的,但 OpenJDK 通常非常接近。试试看,你会发现它不起作用。 Sun 文档还说它在 Windows 中不起作用,正如原始问题所引用的那样。
  • 刚查了一下,jdk1.8.0好像还不支持windows,不过他们加了OSX。
  • 确实有一个补丁是Oracle员工在2009年提交的,但从未进入JDK。您可以阅读更多关于它的信息here(参见“更新1”部分)。伤心。
【解决方案2】:

最后,从 JDK 11 开始,对 Windows SSPI(Windows 有点相当于 GSS-API)的原生支持:

https://stackoverflow.com/a/69871106/1504556

回顾:

  • 您必须至少使用 JDK 11.0.10。
  • 您必须设置-Dsun.security.jgss.native=true
  • 新功能尚未反映在 Accessing Native GSS-API page 中,因此您必须依靠错误跟踪票(见上面的链接)和/或发行说明才能了解新功能。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-09
    • 1970-01-01
    • 2011-12-05
    • 1970-01-01
    • 2016-11-15
    • 2012-08-21
    相关资源
    最近更新 更多