首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GSS-API Java奇怪错误

GSS-API Java奇怪错误
EN

Stack Overflow用户
提问于 2011-07-19 12:01:59
回答 3查看 8.6K关注 0票数 1

我正在运行以下教程:http://download.oracle.com/javase/6/docs/technotes/guides/security/jgss/tutorials/BasicClientServer.html

我得到以下提示:

代码语言:javascript
复制
Connected to server localhost/127.0.0.1
Kerberos username [login]: {I enter my username here}
Kerberos password for login: {I enter my password here}

我得到以下错误:

你能找出这个问题的根本原因吗?

代码语言:javascript
复制
Exception in thread "main" GSSException: No valid credentials provided (Mechanism level: Attempt to obtain new INITIATE credentials failed! (null))
at sun.security.jgss.krb5.Krb5InitCredential.getTgt(Krb5InitCredential.java:333)
at sun.security.jgss.krb5.Krb5InitCredential.getInstance(Krb5InitCredential.java:128)
at sun.security.jgss.krb5.Krb5MechFactory.getCredentialElement(Krb5MechFactory.java:106)
at sun.security.jgss.krb5.Krb5MechFactory.getMechanismContext(Krb5MechFactory.java:172)
at sun.security.jgss.GSSManagerImpl.getMechanismContext(GSSManagerImpl.java:209)
at sun.security.jgss.GSSContextImpl.initSecContext(GSSContextImpl.java:195)
at sun.security.jgss.GSSContextImpl.initSecContext(GSSContextImpl.java:162)
at demo.SampleClient.main(SampleClient.java:145)
Caused by: javax.security.auth.login.LoginException: Message stream modified (41)
at com.sun.security.auth.module.Krb5LoginModule.attemptAuthentication(Krb5LoginModule.java:696)
at com.sun.security.auth.module.Krb5LoginModule.login(Krb5LoginModule.java:542)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at javax.security.auth.login.LoginContext.invoke(LoginContext.java:769)
at javax.security.auth.login.LoginContext.access$000(LoginContext.java:186)
at javax.security.auth.login.LoginContext$5.run(LoginContext.java:706)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.login.LoginContext.invokeCreatorPriv(LoginContext.java:703)
at javax.security.auth.login.LoginContext.login(LoginContext.java:575)
at sun.security.jgss.GSSUtil.login(GSSUtil.java:246)
at sun.security.jgss.krb5.Krb5Util.getTicket(Krb5Util.java:136)
at sun.security.jgss.krb5.Krb5InitCredential$1.run(Krb5InitCredential.java:328)
at java.security.AccessController.doPrivileged(Native Method)
at sun.security.jgss.krb5.Krb5InitCredential.getTgt(Krb5InitCredential.java:325)
... 7 more
Caused by: KrbException: Message stream modified (41)
at sun.security.krb5.KrbKdcRep.check(KrbKdcRep.java:53)
at sun.security.krb5.KrbAsRep.<init>(KrbAsRep.java:96)
at sun.security.krb5.KrbAsReq.getReply(KrbAsReq.java:449)
at sun.security.krb5.Credentials.sendASRequest(Credentials.java:410)
at sun.security.krb5.Credentials.acquireTGT(Credentials.java:378)
at com.sun.security.auth.module.Krb5LoginModule.attemptAuthentication(Krb5LoginModule.java:662)
... 23 more
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-07-19 15:06:01

我想知道这是否有可能(例如,即使设置了注册表项,对本地管理员也是锁定的):

http://cr.openjdk.java.net/~weijun/special/krb5winguide-2/raw_files/new/kwin

已知问题

如果还将AD帐户添加到客户端PC上的本地管理员组,Microsoft将限制此类客户端获取票证的会话密钥(即使您将allowtgtsessionkey注册表项设置为1)。解决方法是:忘记您是登录用户,调用kinit.exe。不依赖于LSA凭据缓存。

票数 2
EN

Stack Overflow用户

发布于 2012-03-02 20:37:48

当Kerberos领域不匹配时,我得到了异常“Message stream modified (41)”。领域(在系统属性java.security.krb5.realm中)必须完全匹配,包括大写/小写。

票数 4
EN

Stack Overflow用户

发布于 2011-07-20 17:07:01

我不能确认这个问题。我在我的机器上拥有管理员权限,并且仍然能够从LSA获取会话密钥。您应该在JGSS和Krb5LoginModule上启用完全调试输出。也分享你的krb5.ini和login.conf。我希望您知道上面的示例无法工作,因为您的客户端无法获得本地主机的票证。它必须是在Active Directory中设置了适当SPN的FQDN。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6742169

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档