【问题标题】:SSO error for some users in alfresco露天部分用户的 SSO 错误
【发布时间】:2012-09-03 17:06:12
【问题描述】:

我们在集群环境(Alfresco 和 tomcat)中有两个节点,配置了 passthru 身份验证以及 ldap 和 NTLM。协议顺序是 TCPIP、NETBIOS。它在大多数情况下都可以正常工作,但有时对于某些用户而言,身份验证屏幕会一次又一次地出现。

下面是堆栈跟踪。任何指针都会有所帮助。

net.sf.acegisecurity.AuthenticationServiceException:I/O 错误;嵌套的 例外是 java.net.SocketException: 套接字关闭于 org.alfresco.repo.security.authentication.ntlm.NTLMAuthenticationComponentImpl.authenticatePassthru(NTLMAuthenticationComponentImpl.java:908) 在 org.alfresco.repo.security.authentication.ntlm.NTLMAuthenticationComponentImpl.authenticate(NTLMAuthenticationComponentImpl.java:555) 在 sun.reflect.GeneratedMethodAccessor812.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 在 java.lang.reflect.Method.invoke(Method.java:597) 在 org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307) 在 org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183) 在 org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150) 在 org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:107) 在 org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) 在 org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202) 在 $Proxy220.authenticate(未知来源) org.alfresco.repo.webdav.auth.BaseNTLMAuthenticationFilter.processType3(BaseNTLMAuthenticationFilter.java:536) 在 org.alfresco.repo.webdav.auth.BaseNTLMAuthenticationFilter.authenticateRequest(BaseNTLMAuthenticationFilter.java:291) 在 org.alfresco.repo.webdav.auth.BaseSSOAuthenticationFilter.doFilter(BaseSSOAuthenticationFilter.java:134) 在 sun.reflect.GeneratedMethodAccessor543.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 在 java.lang.reflect.Method.invoke(Method.java:597) 在 org.alfresco.repo.management.subsystems.ChainingSubsystemProxyFactory$1.invoke(ChainingSubsystemProxyFactory.java:103) 在 org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) 在 org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202) 在 $Proxy229.doFilter(Unknown Source) 在 org.alfresco.repo.web.filter.beans.BeanProxyFilter.doFilter(BeanProxyFilter.java:82) 在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 在 org.alfresco.web.app.servlet.WebScriptSSOAuthenticationFilter.doFilter(WebScriptSSOAuthenticationFilter.java:128) 在 sun.reflect.GeneratedMethodAccessor543.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 在 java.lang.reflect.Method.invoke(Method.java:597) 在 org.alfresco.repo.management.subsystems.ChainingSubsystemProxyFactory$1.invoke(ChainingSubsystemProxyFactory.java:103) 在 org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) 在 org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202) 在 $Proxy229.doFilter(Unknown Source) 在 org.alfresco.repo.web.filter.beans.BeanProxyFilter.doFilter(BeanProxyFilter.java:82) 在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 在 org.alfresco.web.app.servlet.GlobalLocalizationFilter.doFilter(GlobalLocalizationFilter.java:58) 在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 在 org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) 在 org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) 在 org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) 在 org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 在 org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 在 org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298) 在 org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852) 在 org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588) 在 org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) 在 java.lang.Thread.run(Thread.java:662) 引起: java.net.SocketException:套接字关闭于 java.net.SocketInputStream.read(SocketInputStream.java:162) 在 java.io.DataInputStream.read(DataInputStream.java:132) 在 org.alfresco.jlan.netbios.NetBIOSSession.Receive(NetBIOSSession.java:1836) 在 org.alfresco.jlan.server.auth.passthru.SMBPacket.ExchangeSMB(SMBPacket.java:286) 在 org.alfresco.jlan.server.auth.passthru.AuthenticateSession.doSessionSetup(AuthenticateSession.java:1158) 在 org.alfresco.jlan.server.auth.passthru.AuthenticateSession.doSessionSetup(AuthenticateSession.java:992) 在 org.alfresco.repo.security.authentication.ntlm.NTLMAuthenticationComponentImpl.authenticatePassthru(NTLMAuthenticationComponentImpl.java:834) ... 48 更多

【问题讨论】:

    标签: authentication single-sign-on alfresco ntlm passthru


    【解决方案1】:

    您没有提及您使用哪种类型的域控制器进行身份验证以及您的网络架构是什么,但根据堆栈跟踪,看起来连接正在意外关闭。

    这可能表明网络或 DC 存在问题,但您需要查看通过线路的流量才能真正了解发生了什么。

    最后,可能还值得检查您的 DC 的日志,看看它是否从头开始报告任何问题。

    【讨论】:

    • 我无法命名域控制器,但我可能会找出是否需要它。
    • 有时异常会随机出现在所有或部分用户身上。我们相信这是由于授权套接字在几个未经身份验证的请求后关闭。但是,对于某些用户来说,它会定期出现。此外,我们在具有相同基本文件的相同服务器上还有一些其他 Alfresco 应用程序。这些应用程序也不例外。似乎当访问某些 Web 脚本时,会弹出无法克服的凭据框的身份验证问题。我们无法命名这些脚本,也没有努力寻找这些脚本,因为我们想要一些永久的解决方案。
    • 一种理论是 IE 可能发送了错误的凭据。当我们在 Firefox 中访问应用程序时,我们必须第一次提供凭据,但之后再也不会询问凭据。在 IE 凭据框中不断弹出。
    • 同样来自日志文件:客户端发送了一条 NTLMv1 类型 3 消息,而会话中没有先前的类型 1
    • 您是否尝试过将您的服务器(托管 alfresco)的 IP 或主机名添加到 Firefox 或 IE 中的受信任站点?
    猜你喜欢
    • 2020-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-06
    • 1970-01-01
    • 2022-10-13
    • 1970-01-01
    相关资源
    最近更新 更多