Webapp的登录在一台服务器上运行,但在另一台服务器上运行

时间:2011-12-21 10:15:28

标签: java java-ee spring-security jboss-4.0.x

我有一个项目的奇怪问题,我一直在努力实现一些额外的功能。我在我的开发机器和本地测试服务器上运行它。现在,当我在客户端测试服务器上部署EAR包时,会发生奇怪的事情。应用程序本身启动就好了,但在尝试登录时,它永远不会成功。密码肯定是正确的。我进入server.log的消息如下:

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文件夹复制到我的电脑上并将其与我们本地服务器上的那个进行比较。日志文件和postgres-ds.xml中的差异。数据库连接适用于两台服务器,因为我可以从该开头看到,首页缓存了来自数据库的大多数分类器值。

我无法理解导致它的原因。也许有人有类似的经历,可以提出一些建议吗?

此致 RAIDO

2 个答案:

答案 0 :(得分:0)

我不是acegi的专家,但是 更新了SecurityContextHolder以包含null身份验证“警告某些配置可能是错误的。

是否需要启用Cookie或其他内容?

答案 1 :(得分:0)

事实证明,除了我以外的其他人也在该测试服务器中搞砸了。他或她可能做的是恢复一个错误版本的Postgre配置的旧备份。结果?该应用程序附加到错误的数据库,这导致密码不匹配的问题,但大多数其他数据与正确的数据库中的数据相同。

奇怪的是,配置文件的最后修改日期早在2007年,所以最容易理解的解释是备份恢复。