gpt4 book ai didi

Alfresco Share - Kerberos SSO 问题

转载 作者:行者123 更新时间:2023-12-04 04:54:31 26 4
gpt4 key购买 nike

我们的 Kerberos 票证每 10 小时就会过期(我们使用 Win2k8r2 AD),这让用户无法登录。至少用户是这么说的。

票证过期是有道理的,但不知何故 Share 似乎无法顺利检索到一张新票,我相信它应该能够。

我们的设置:

  • 在 Ubuntu 12.04 上运行的 Alfresco 4.0.d(社区)
  • JDK7(我们也尝试过 JDK6)
  • Windows 2008R2 AD
  • Kerberos SSO
  • Windows 7 客户端,IE9

  • 在 Alfresco 一侧一切正常。 Alfresco Explorer 和 CIFS 都很好,但是一旦 Share 运行了 10 小时(AD 中的默认票证有效期),我们就无法登录。首先我们会提示浏览器登录,然后是 Windows 登录和之后是共享登录表单。如果我重新加载页面并输入我的密码几次,它最终会让我进入,我们可以再运行 10 个小时。另一种解决方案是重新启动Share,然后用户就不会受此影响。这表明是 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";
    };

    共享配置-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一切都完全按照文档说的那样设置。

    请让我知道我是否应该提供其他信息。

    最佳答案

    在您的 AD 用户管理器(高级)中为 ShareHTTP 选择
    选项卡:帐户
    查询 不需要 Kerberos 预身份验证

    并关注 online docs ,它们是最新的并且更新频率更高。

    关于Alfresco Share - Kerberos SSO 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16944077/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com