我有一个在JBoss 7.1.1上运行的Java EE 6 Web应用程序,其中一些页面需要身份验证,而许多页面则不需要。对于已经认证的页面,我正在使用Servlet 3.0编程安全性,如此前帖子所述。
在我的web.xml文件中,我有以下条目
<login-config>
<auth-method>FORM</auth-method>
<form-login-config>
<form-login-page>/login</form-login-page>
<form-error-page>/loginError</form-error-page>
</form-login-config>
</login-config>
在我的登录类中,我有一个用
@PostConstruct
注释的方法,用于捕获请求的页面:
String previousURL = (String) FacesContext.getCurrentInstance().getExternalContext().getRequestMap().get(RequestDispatcher.FORWARD_QUERY_STRING)
然而,它计算的是/login页面本身,而不是用户最初点击并由JBoss根据web.xml中的login-config设置转发到的页面。因此,当我转发到previousURL时,它只会将我带回登录页面,而不是最初用户点击的页面。我做错了什么?
执行查询:select password from PRINCIPAL where username = ?,使用用户名:admin ... 用户 'admin' 已通过身份验证,loginOk=true 提交,loginOk=true ... 将用户分配给 Administration 角色 ... 用户:admin 已通过身份验证
- Anand