gpt4 book ai didi

spring-security - 从 Java 6 升级到 Java 7 后 Kerberos 损坏

转载 作者:行者123 更新时间:2023-12-04 02:23:15 25 4
gpt4 key购买 nike

我有一个使用 spring-security kerberos 扩展的工作应用程序,在 jboss 上运行,运行 java 6。

我正在将我的 jvm 从 java 6 升级到 java 7。当我这样做时,使用与 java 6 相同的代码库和相同的 keytab,我现在在使用 java 7 时收到错误。

我一直收到:
java.security.PrivilegedActionException: GSSException: 在 GSS-API 级别未指定失败
(机制级别:无效参数 (400) -
找不到合适类型的 key 来解密 AP REP - RC4 与 HMAC)

我尝试使用其他论坛中描述的不同/crypto 选项重新生成 key 表,但无济于事。

我已经调试了 java 7 代码,确实,处理在启动时读取 key 表的类从 6 更改为 7。是不是我的 key 表不再正确读入应用程序了?我在使用 Java6 启动时看到的一些调试消息不再出现在 7 中,但我不知道这是设计使然还是表明还有其他东西在起作用?有没有其他人在从 6 升级到 7 时遇到问题并且他们的 kerberos 集成中断了?有什么建议吗?

使用 spnego 和 kerberos 调试登录启动时,我的日志显示:

2012-12-10 10:29:30,886  Debug is  true storeKey true useTicketCache false useKeyTab true doNotPrompt true ticketCache is null isInitiator false KeyTab is jndi:/localhost/docfinity/WEB-INF/classes/config/common/security/http-docfinity.keytab refreshKrb5Config is false principal is HTTP/VMMSSDEV.TESTING.LOCAL@TESTING.LOCAL tryFirstPass is false useFirstPass is false storePass is false clearPass is false
2012-12-10 10:30:26,322 principal is HTTP/VMMSSDEV.TESTING.LOCAL@TESTING.LOCAL
2012-12-10 10:30:29,794 Will use keytab
2012-12-10 10:30:29,807 Ordering keys wrt default_tkt_enctypes list
2012-12-10 10:30:29,821 Config name: C:\Windows\krb5.ini
2012-12-10 10:30:29,827 Using builtin default etypes for default_tkt_enctypes
2012-12-10 10:30:29,832 default etypes for default_tkt_enctypes:
2012-12-10 10:30:29,837 17 aes128-cts-hmac-sha1-96
2012-12-10 10:30:29,839 16 des3-cbc-sha1-kd
2012-12-10 10:30:29,842 23 rc4-hmac
2012-12-10 10:30:29,846 1 des-cbc-crc
2012-12-10 10:30:29,849 3 des-cbc-md5
2012-12-10 10:30:29,851 .
2012-12-10 10:30:29,855 Commit Succeeded

另一个问题 - 您会看到它正在尝试读取 C:\Windows\krb5.ini。我的服务器上没有这样的文件。我需要一个吗?我也没有使用 java 6 的,并且有效。

亚伦

最佳答案

是的!我们修补了 SunJaasKerberosTicketValidator 使其看起来像这样,它起作用了:

String keyTabPath = this.keyTabLocation.getURL().toExternalForm();
String runtimeVersion = System.getProperty("java.version");
if (runtimeVersion.startsWith("1.7"))
{
LOG.info("Detected jdk 7. Modifying keytabpath");
if (keyTabPath != null)
{
if (keyTabPath.startsWith("file:"))
{
keyTabPath = keyTabPath.substring(5);
}
}
}
LOG.info("KeyTabPath: " + keyTabPath);
LoginConfig loginConfig = new LoginConfig(keyTabPath, this.servicePrincipal,
this.debug);

关于spring-security - 从 Java 6 升级到 Java 7 后 Kerberos 损坏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13803458/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com