我有一个使用struts2与旧式servlet结合的java-web-application。 使用Acegi安全性。request.getRemoteUser()有时会返回null
在我的servlets中,我正在记录用户正在尝试做什么以及它是哪个用户。为了让用户即时使用request.getRemoteUser()
但是对于我的大供应来说,结果并不一致。大多数时候getRemoteUser()
返回正确的用户名,但每隔一段时间我会得到一个空值。
这背后的原因是什么?
编辑: 经过您的反馈,我发现servlet-urls根本没有被安全覆盖。所以这可能导致getRemoteUser()
为空。我现在将为这些实现安全性,并在回发结果之前进行更多测试。
根据的JavaDoc“返回用户的登录提出这个要求,如果用户已经通过认证,或NULL,如果用户没有通过验证。用户名是否与每个后续请求一起发送取决于浏览器和验证类型,与CGI变量REMOTE_USER的值相同。“所以它可能是Acegi/Browser没有按预期设置远程用户。 –