我所做的只是修改src/main/resources/application.yml以适应我的系统,并在创建SPN和Keytab文件之间来回切换。我的spring应用程序似乎开始的很好。下面是通过控制台输出的Kerberos配置。
Debug为true storeKey为true useTicketCache为false useKeyTab为true doNotPrompt为true ticketCache为null isInitiator为false KeyTab为/etc/client-server.KeyTab refreskrb5config为false principal为http/client-server.example.org@realm tryFirstPass为false useFirstPass为false storePass为false clearPass为false
principal为http/client-server.example.org@realm
将使用KeyTab
提交成功
所以我可以看到客户端app到目前为止已经接受了我的设置。然后我尝试在另一台机器上通过chrome访问Client-Server:8080/hello。我得到的第一个错误是访问被拒绝(用户是匿名的)。它应该重定向到身份验证入口点。然后我得到以下内容,以“无密钥存储”结尾
[nio-8080-exec-4]w.a.spnegoAuthenticationProcessingFilter:收到请求的协商标头客户端-服务器:8080/Favicon.ico:Negotiate YIIHZAYGKWYBBQUCOIIHWDCCB 1 SGMDAUBGK……/9ADSOFH2YA7C
[nio-8080-exec-4]o.s.Authentication.ProviderManager:尝试使用org.springFramework.Security.Kerberos.Authentication.KerberosServiceAuthenticationProvider
[nio-8080-exec-4]进行身份验证。a.KerberosServiceAuthenticationProvider:尝试验证Kerberos令牌
[nio-8080-exec-4]。ationProvider:已成功验证myusername@realm
[nio-8080-exec-4]o.ss.l.s.filterbasedldapusersearch:搜索用户“myusername@realm”,使用用户搜索[searchfilter:“”,searchbase:“dc=xxxxx”,scope:subtree,searchtimelimit:0,dereflinkflag:false]
Debug为真storeKey为真useTicketCache为真useKeyTab为真doNotPrompt为真ticketCache为空isInitiator为真KeyTab为空refreshKrb5Config为假principal为http/client-server.example.org@领域tryFirstPass是false useFirstPass是false storePass是false clearPass是false
从缓存获取T>
主体是http/client-server.example.org@REALM
2015-11-27 11:38:47.906 DEBUG 3183---[nio-8080-exec-4]w.c.httpsessionsecuritycontextrepository:securitycontextitory是空的或内容是匿名的-上下文不会存储在HttpSession中。2015-11-27 11:38:47.906调试3183---[nio-8080-exec-4]S.S.W.C.SecurityContextPersistenceFilter:SecurityContextHolder现在已清除,因为请求处理完成2015-11-27 11:38:47.912错误3183---[nio-8080-exec-4]O.A.C.C.C.[.[/].[dispatcherServlet]:路径为[]的上下文中servlet[dispatcherServlet]:servlet.Service()引发异常org.springframework.ldap.AuthenticationException:没有要存储的密钥;嵌套异常是javax.naming.AuthenticationException:没有要存储的密钥[根异常是例外:没有要存储的密钥]
现在看来,应用程序能够验证我的用户,但我不知道它是否可以找到我的用户信息。在cr.openjdk.java.net/~weijun/7201053/webrev.00/raw_files/new/src/share/classes/com/sun/security/auth/module/krb5loginmodule.java中查看krb5loginmodule.java的源代码,您可以通过简单的搜索找到登录异常,即没有要存储的密钥。代码说我的ktab(我猜是keytab)为空。奇怪的是,当我尝试使用浏览器进行导航时,控制台输出显示keytab为空,尽管在启动应用程序时不是这样。
有没有人知道为什么当我有一个用户试图访问我的应用程序时,我的keytab会变为空?还是我的应用程序或系统配置有其他问题?
我遇到了一个类似的问题,其根本原因实际上是Kinit创建的一个损坏的密钥。解决方案是删除缓存(在/tmp/kbr5cc_[UID]下,以及JAAS配置文件中ticketcache=“/home/solr/cache”设置的值中,并且在启动应用程序之前不运行kinit。
为了找到发生了什么,我向JVM添加了以下标志:-dsun.security.krb5.debug=true
我看到钥匙的开始和结束时间设置为纪元日期:
>>>DEBUG <CCacheInputStream> key type: 0
>>>DEBUG <CCacheInputStream> auth time: Thu Jan 01 00:00:00 UTC 1970
>>>DEBUG <CCacheInputStream> start time: null
>>>DEBUG <CCacheInputStream> end time: Thu Jan 01 00:00:00 UTC 1970
>>>DEBUG <CCacheInputStream> renew_till time: null
我得到的错误是“Access Denied”,这(我认为)意味着id、secret和Vault的url没有问题。但是,我不知道我可以做什么来修复这个错误,也许在Azure门户中有一个设置阻止我读取一个秘密?
我想使用azure密钥库来存储没有azure ad身份验证的控制台应用程序的连接字符串。 那么,没有Azure AD有没有办法访问Azure密钥库呢?
在成功地从heroku克隆了我的repo并添加了另一个远程 在运行第(3)行或使用SourceTree后,仍然会出现此错误 首先,我不明白这条信息在实践中意味着什么。那是耻辱。 其他事实: 看起来一切都很好。
有没有人遇到过这样的情况:当我对一个用户使用管理策略时,它可以工作,但当我使用内联策略时,它说访问被拒绝。我为IAM用户授予了对bucket读取访问权限,即它只能访问bucket。 我也试过这个
我使用Reactjs创建一个网站并将其托管在Firebase上,并使用google cloud函数上的和设置,以处理函数。网站有一个
问题内容: 我试图在服务器上部署Web应用程序,但出现此mysql数据库异常 我试图使用所有的数据库操作从命令提示符处访问数据库。 有什么错误 问题答案: 您需要授予从本地主机对root的访问权限。查看此 ubuntu帮助