【问题标题】:JAVA & GSSAPI: Clearing cacheJAVA & GSSAPI:清除缓存
【发布时间】:2013-04-20 11:42:46
【问题描述】:

我编写了一个简单的 java 应用程序,它使用 GSSAPI 来连接到 Active Directory (Kerberos SSO)。

我有 2 个领域和 KDC:x 和 y。

如果我使用领域/KDC x 运行该工具 - 该工具将起作用。

如果我使用领域/KDC y 运行该工具 - 该工具也可以工作。

如果我将运行该工具以使用领域/KDC x 执行 2 次身份验证(登录、注销、登录、注销) - 有效。

领域/KDC y 的结果相同。

问题是当我尝试在两个领域/KDC 之间切换时:登录 x、注销 x、登录 y、注销 y - 尝试登录第二个时抛出异常:

GSSException:机制级别:消息流已修改 (41))

澄清一下 - 只有当我使用 2 个不同的领域/KDC(当然,每次一个),而不在这两个之间重新启动整个应用程序时,才会出现问题。

我认为 java/gssapi 以某种方式缓存了领域或 krb 票证或其他东西。

问题是我怎样才能清除这个缓存(而不杀死整个应用程序),或者如果没有这样的缓存/静态变量,我怎样才能让它工作?

谢谢!

【问题讨论】:

    标签: java security active-directory kerberos gssapi


    【解决方案1】:

    您的问题可能是 krb5.conf 文件有问题。见这里:GSSException: Message stream modified (41)

    发布您的整个krb5.conf 罚款和访问的 SPN。

    【讨论】:

      猜你喜欢
      • 2014-11-06
      • 1970-01-01
      • 2016-02-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-25
      • 2017-04-06
      相关资源
      最近更新 更多