我的spnego配置似乎不起作用,总是在tomcat8中提示输入密码。
安装/配置spnego安装指南
我将库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;
};
1条答案
按热度按时间but5z9lq1#
我通过wireshark检查了软件包,发现了未知的pricipalname错误。谢谢你的提示@samson scharfrichter
正确的spn注册是setspn.exe-一个没有项目本身的http/ourserver01.example.com exampleuser。