我有一个J2EE web应用程序,既有受保护的页面,也有不受保护的页面。一旦我成功地进行了身份验证并访问了受保护的页面,我就会立即访问未受保护的页面。此时,getRemoteUser()返回null,就好像我从未进行过身份验证一样。这是J2EE安全方面的预期行为吗?
我已经看过servlet规范(2.4)和J2EE教程(1.4)的安全部分,但是我还没有找到任何关于访问不受保护的资源是否应该保留用户身份验证状态的专门评论。
编辑:在呈现未受保护的页面之前,我将在当前HttpServletRequest对象上调用getRemoteUser()。
编辑:我还检查了HttpServletRequest.getRemoteUser()和HttpServletRequest.getUserPrincipal()的JavaDoc,他们也没有对这个问题发表评论。
发布于 2010-11-16 21:11:57
除非您正在使用JAAS (例如:JOSSO),否则它属于RFC-2617 HTTP Authentication: Basic and Digest Access Authentication。
然后归结为客户端是否随请求一起发送凭据。对于基本身份验证,这是基于需要凭据的请求的URI。当您访问该树分支之外的路径时,除非遇到401,否则不会发送凭据。
所以,是的,我希望是null。
https://stackoverflow.com/questions/4198457
复制