Java Webapp的登录可以在一台服务器上工作,但不能在另一台服务器上工作
我在一个项目中遇到了一个奇怪的问题,我一直在努力实现一些额外的功能。我已经在我的开发机器和本地测试服务器上运行了它。现在,当我在客户机测试服务器上部署EAR包时,奇怪的事情发生了。该应用程序本身启动正常,但当尝试登录时,它从未成功。密码肯定是正确的。我进入server.log的消息如下:Java Webapp的登录可以在一台服务器上工作,但不能在另一台服务器上工作,java,jakarta-ee,spring-security,jboss-4.0.x,Java,Jakarta Ee,Spring Security,Jboss 4.0.x,我在一个项目中遇到了一个奇怪的问题,我一直在努力实现一些额外的功能。我已经在我的开发机器和本地测试服务器上运行了它。现在,当我在客户机测试服务器上部署EAR包时,奇怪的事情发生了。该应用程序本身启动正常,但当尝试登录时,它从未成功。密码肯定是正确的。我进入server.log的消息如下: 2011-12-21 11:46:17,202 DEBUG [com.foo.impl.AuthenticationServiceImpl] Authentication event Authenticatio
2011-12-21 11:46:17,202 DEBUG [com.foo.impl.AuthenticationServiceImpl] Authentication event AuthenticationFailureBadCredentialsEvent: admin; details: org.acegisecurity.ui.WebAuthenticationDetails@1c07a: RemoteIpAddress: xx.xx.xx.xx; SessionId: 4022FD9349C4BC35553DD7D96134FDE8
2011-12-21 11:46:17,202 INFO [com.foo.impl.AuthenticationServiceImpl] Authentication event AuthenticationFailureBadCredentialsEvent: admin; details: org.acegisecurity.ui.WebAuthenticationDetails@1c07a: RemoteIpAddress: xx.xx.xx.xx; SessionId: 4022FD9349C4BC35553DD7D96134FDE8; exception: Bad credentials
2011-12-21 11:46:17,203 DEBUG [com.foo.web.server.AuthenticationFilter] Updated SecurityContextHolder to contain null Authentication
2011-12-21 11:46:17,203 DEBUG [com.foo.web.server.AuthenticationFilter] Authentication request failed: org.acegisecurity.BadCredentialsException: Bad credentials
我删除了新的软件包,放回了旧的EAR,它已经存在多年了,登录也不起作用。我很确定在我到达那里之前它已经工作了
我们在所有机器上使用JBoss 4.0.5-GA应用服务器,该项目使用acegi-security-1.0.3进行身份验证
为了确保我没有弄糟任何东西,我将整个JBoss文件夹复制到我的pc上,并将其与本地服务器上的文件夹进行了比较。日志文件和postgres-ds.xml中的差异。数据库连接在这两台服务器上都可以工作,因为我可以从打开首页中看到缓存来自数据库的大多数classificator值
我搞不清楚是什么引起的。也许有人有过类似的经历,可以提出一些建议
问候,,
Raido我不是acegi方面的专家,但是 更新的SecurityContextHolder包含空身份验证,警告某些配置可能错误
是否需要启用Cookie或其他功能?结果是,除了我之外,还有人在测试服务器中捣乱。他或她所做的大概是恢复一个旧备份,该备份具有错误版本的Postgre配置。后果该应用程序连接到错误的数据库,这导致密码不匹配,但大多数其他数据与正确数据库中的数据相同
奇怪的是,配置文件的最后一次修改日期要追溯到2007年,因此最容易理解的解释是备份还原。坏凭据异常可能不是来自您的应用程序。检查防火墙etc是否打开,并且您可以通过命令提示符访问数据库。数据库可以通过命令行访问,而防火墙似乎没有阻碍。这真让人难过。