krb5.conf 文件被 tomcat 忽略

Posted

技术标签:

【中文标题】krb5.conf 文件被 tomcat 忽略【英文标题】:krb5.conf file ignored by tomcat 【发布时间】:2016-03-21 08:25:42 【问题描述】:

我正在尝试使用 tomcat 设置 kerberos/spnego 身份验证。我在 tomcat 目录下添加了一个 krb5.conf 文件,并在 SpnegoFilterConfig 中读取了值并设置了 java.security.krb5.conf ,但似乎没有考虑到它。无论文件是否存在,我都会得到相同的结果。

javax.servlet.ServletException: GSSException: Failure unspecified at GSS-API level (Mechanism level: Encryption type AES256 CTS mode with HMAC SHA1-96 is not supported/enabled)

如果我将 jce 安全文件放在 lib/security 中,我会得到

javax.servlet.ServletException: GSSException: Failure unspecified at GSS-API level (Mechanism level: Invalid argument (400) - Cannot find key of appropriate type to decrypt AP REP - AES256 CTS mode with HMAC SHA1-96)

但是,无论我是否拥有 krb5.conf,都会发生这种情况。

【问题讨论】:

【参考方案1】:

您是否已将安全策略文件替换为适用于 Java 的 Unlimited Strength Jurisdiction Policy Files?

http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html

【讨论】:

是的,如果我这样做,我会得到“无效参数 (400) - 找不到合适类型的密钥来解密 AP REP - AES256 CTS 模式与 HMAC SHA1-96)” 如果我尝试使用 spnego 网站上的 HelloKDC 示例并使用 krb5.conf 文件,我会得到预期的错误(例如,如果我设置了我的 kdc 不支持的加密类型),但在 tomcat 上,我可以删除 krb5.conf 文件或在其中放入任何内容,但仍然会从上面得到错误

以上是关于krb5.conf 文件被 tomcat 忽略的主要内容,如果未能解决你的问题,请参考以下文章

如何在docker中初始化keytab?

通过sbt使用java选项运行项目

kerberos的简单使用

Kerberos安装&使用

AWS Elastic Beanstalk:Tomcat 忽略了我的 WAR 文件

身份验证中的问题