如何解决tomcat中的SPNEGO总是提示密码
我的 SPNEGO 配置似乎不起作用,并且总是在我的 tomcat8 中提示输入密码。
安装/配置 SPNEGO install guide
我将库 spnego-r9.jar 添加到“tomcat\lib”文件夹中。 还添加了 .conf 文件。 这里的krb5.conf:
[libdefaults]
dns_lookup_realm = false
ticket_lifetime = 24h
renew_lifetime = 7d
forwardable = true
rdns = false
default_ccache_name = KEYRING:persistent:%{uid}
udp_preference_limit = 1
default_realm=EXAMPLE.COM
default_tkt_enctypes = aes256-cts aes128-cts des3-cbc-sha1 des-cbc-md5 des-cbc-crc aes256-cts-
hmac-sha1-96 rc4-hmac
default_tgs_enctypes = aes256-cts aes128-cts des3-cbc-sha1 des-cbc-md5 des-cbc-crc aes256-cts-
hmac-sha1-96 rc4-hmac
permitted_enctypes = aes256-cts aes128-cts des3-cbc-sha1 des-cbc-md5 des-cbc-crc aes256-cts-
hmac-sha1-96 rc4-hmac
[realms]
EXAMPLE.COM = {
default_domain=example.com
kdc=dc2.example.com:88
}
[domain_realm]
.example.com=EXAMPLE.COM
example.com=EXAMPLE.COM
然后将 SpnegoHttpFilter 添加到 web.xml。 最后但并非最不重要的是,我联系了我们的管理员,并向在 SpnegoHttpFilter 中注册的用户添加了以下内容
setspn.exe -A HTTP/ourserver01.example.com/projectXY exampleUser
setspn.exe -A HTTP/ourserver01/projectXY exampleUser
即使我的访问用户登录到EXAMPLE.COM域,结果也是密码提示。据我所知,这不应该发生。我登录到我们的服务器,发现它的域是一个工作组(在 cmd 中使用 wmic computersystem get domain)这可能是一个问题,我将如何解决这个问题?
编辑: 这里是第二个 .conf 文件:
spnego-client {
com.sun.security.auth.module.Krb5LoginModule required;
};
spnego-server {
com.sun.security.auth.module.Krb5LoginModule required
storeKey=true
isInitiator=false;
};
解决方法
我通过wireshark检查了软件包,发现了未知的prcipalname错误。 感谢提示@Samson Scharfrichter
正确的 spn 注册是 setspn.exe -A HTTP/ourserver01.example.com exampleUser 没有项目本身。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。