我们的Kerberos票证每10个小时到期(我们与Win2k8r2 AD连接),这使得用户无法登录。至少这是用户所说的。
票证到期是有意义的,但不知何故,Share似乎无法顺利地检索新票据,我相信它应该可以。
我们的设置:
Alfresco方面的一切都很好。 Alfresco Explorer和CIFS很好,但是一旦Share运行了10个小时(AD中的默认票证生命时间),我们就无法登录。首先我们会提示浏览器登录,然后是Windows登录和之后共享登录表单。如果我重新加载页面并输入我的密码几次,它最终会让我进入,我们可以再运行10个小时。另一种解决方案是重新启动Share,然后用户不受此影响。这指向分享的问题,而不是客户端,但我可能是错的。
任何指针都会非常受欢迎,我对这个问题非常感兴趣。
我们得到了这个例外:
13:55:18,443 DEBUG [site.servlet.SSOAuthenticationFilter] Kerberos logon error
java.lang.IllegalStateException: This ticket is no longer valid
at javax.security.auth.kerberos.KerberosTicket.toString(KerberosTicket.java:638)
at java.lang.String.valueOf(String.java:2854)
at java.lang.StringBuilder.append(StringBuilder.java:128)
at sun.security.jgss.krb5.SubjectComber.findAux(SubjectComber.java:150)
at sun.security.jgss.krb5.SubjectComber.find(SubjectComber.java:59)
at sun.security.jgss.krb5.Krb5Util.getTicket(Krb5Util.java:155)
at sun.security.jgss.krb5.Krb5Context$1.run(Krb5Context.java:606)
at sun.security.jgss.krb5.Krb5Context$1.run(Krb5Context.java:599)
at java.security.AccessController.doPrivileged(Native Method)
at sun.security.jgss.krb5.Krb5Context.initSecContext(Krb5Context.java:598)
at sun.security.jgss.GSSContextImpl.initSecContext(GSSContextImpl.java:248)
at sun.security.jgss.GSSContextImpl.initSecContext(GSSContextImpl.java:179)
at org.alfresco.web.site.servlet.KerberosSessionSetupPrivilegedAction.run(KerberosSessionSetupPrivilegedAction.java:127)
at org.alfresco.web.site.servlet.KerberosSessionSetupPrivilegedAction.run(KerberosSessionSetupPrivilegedAction.java:44)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:356)
at org.alfresco.web.site.servlet.SSOAuthenticationFilter.doKerberosLogon(SSOAuthenticationFilter.java:1009)
at org.alfresco.web.site.servlet.SSOAuthenticationFilter.doFilter(SSOAuthenticationFilter.java:441)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1326)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:479)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:119)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:520)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:227)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:940)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:409)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:186)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:874)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117)
at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:250)
at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:149)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:110)
at org.eclipse.jetty.server.Server.handle(Server.java:349)
at org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:441)
at org.eclipse.jetty.server.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:904)
at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:565)
at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:217)
at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:46)
at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:545)
at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:43)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:598)
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:533)
at java.lang.Thread.run(Thread.java:722)
更多信息,java.login.config:
ShareHTTP {
com.sun.security.auth.module.Krb5LoginModule required
storeKey=true
useKeyTab=true
keyTab="/opt/share/kerberos/alfrescohttp.keytab"
principal="HTTP/alfresco.domain.local@DOMAIN.LOCAL";
};
份额-CONFIG-custom.xml:
<config evaluator="string-compare" condition="Kerberos" replace="true">
<kerberos>
<password>password</password>
<realm>DOMAIN.LOCAL</realm>
<endpoint-spn>HTTP/alfresco.domain.local@DOMAIN.LOCAL</endpoint-spn>
<config-entry>ShareHTTP</config-entry>
</kerberos>
</config>
我已按照此处的说明进行操作:http://wiki.alfresco.com/wiki/Alfresco_Authentication_Subsystems#Kerberos所有内容的设置与文档完全相同。
如果我应该提供更多信息,请告诉我。
答案 0 :(得分:3)
在AD用户管理器中选择(高级)ShareHTTP 标签:帐户 选中不要求Kerberos预身份验证
并按照online docs进行操作,这些内容更新,并且经常更新。