我们正在运行Glassfish 3.1.2.2针对Active Directory域进行身份验证。身份验证在绝大多数情况下都能正常运行,但有时候,身份验证会突然对所有用户失败,我们会在服务器日志中看到这样的错误:
[#|2014-03-19T21:37:32.331+0000|WARNING|glassfish3.1.2|javax.enterprise.system.container.web.com.sun.web.security|_ThreadID=1098;_ThreadName=Thread-2;|WEB9102: Web Login Failed: com.sun.enterprise.security.auth.login.common.LoginException: Login failed: Failed file login for jeff.|#]
请注意,错误消息 file 登录失败。似乎Glassfish偶尔会恢复到文件领域而不是活动目录领域。
当出现此问题时,经过一段时间没有任何干预后,身份验证将突然再次启动Active Directory,用户将能够再次登录。
当我们将Glassfish配置为使用Active Directory时,Glassfish偶尔会针对文件域恢复身份验证的任何想法?我应该完全删除文件领域吗?
答案 0 :(得分:0)
我终于确定了触发器。我们一直在将JVisualVM连接到Glassfish实例来监控性能。每次我连接JVisualVM(使用Glassfish管理员凭据通过JMX连接)时,Glassfish立即恢复使用文件领域而不是LDAP领域。我不知道为什么JVisualVM会在Glassfish中引起这种行为,但它始终可以重现。我发现的唯一解决方法是: