我目前遇到了 WAS 8.5.5.5 上的密钥表的 Kerberos 票证过期问题。同样的过程在 Tomcat 8 上可以正常工作,我认为主要区别在于 JDK/JAAS 客户端配置。我以原始配置运行两者(除了内存/堆大小之外没有服务器配置)。
以下是在 Websphere 上运行时日志文件的一个示例 -
2015-12-01 19:49:42,393 WARN [UserGroupInformation] PriviledgedActionException as:principal/fqdn@place (auth:KERBEROS) cause:javax.security.sasl.SaslException: Failure to initialize security context [Caused by org.ietf.jgss.GSSException, major code: 8, minor code: 0
major string: Credential expired
minor string: Kerberos credential has expired]
是否有任何自定义 JAAS 配置可供我在 WAS 本身内使用,而无需编写代码来规避 IBM JDK 的不同行为?我看到尝试重新登录,但似乎没有处理过期(就像在 Oracle JDK 上一样)。
2015-12-01 20:06:30,718 INFO [UserGroupInformation] Initiating logout for principal/fqdn@place
2015-12-01 20:06:30,718 DEBUG [UserGroupInformation] hadoop logout
2015-12-01 20:06:30,718 INFO [UserGroupInformation] Initiating re-login for artimapp/qa01-ost-tesla-h-ds02.td.local
2015-12-01 20:06:30,731 DEBUG [UserGroupInformation] hadoop login
2015-12-01 20:06:30,731 DEBUG [UserGroupInformation] hadoop login commit
2015-12-01 20:06:30,731 DEBUG [UserGroupInformation] using existing subject:[principal/fqdn@place, principal/fqdn@place]
任何帮助都将不胜感激。
我碰到过这个链接 -https://issues.apache.org/jira/browse/HADOOP-9969 。
我也在 Spring Security 中遇到过类似的问题,其中为 IBM 编写了一个自定义 Kerberos 客户端来镜像 SunJaasKerberosTicketValidator -https://jira.spring.io/browse/SES-15。
我的偏好是避免等待 Hadoop JIRA 解决,并且必须编写自定义客户端才能使 Websphere 正常工作。