Raf*_*le' 5 java jsf redirect login jaas
是否可以在 JAAS 重定向之前检索用户请求的 URL?
我的 web.xml 是这样的:
<login-config>
<auth-method>FORM</auth-method>
<form-login-config>
<form-login-page>/login.jsf</form-login-page>
<form-error-page>/login.jsf</form-error-page>
</form-login-config>
</login-config>
Run Code Online (Sandbox Code Playgroud)
所以,当我没有登录并尝试去前。www.blah.com/myApp/users.jsf
然后应用程序将我重定向到login.jsf,但 URL 仍然与用户请求的相同。
然后我填写登录表单并单击登录,这将转到我的 backbean,在那里调用我的 loginModule 和 callbackHandler 例如:
public String actionLogin(){
//do my login and stuff
return "page that user requested";
}
Run Code Online (Sandbox Code Playgroud)
我尝试了很多方法来获取用户请求的页面。 request.getRequestURL()
都还给我: www.blah.com/myApp/login.jsf
有什么办法可以得到请求的页面? www.blah.com/myApp/users.jsf
问候
登录页面由服务器端转发内部打开RequestDispatcher#forward()。因此,这意味着最初请求的页面可作为请求属性使用,其名称在RequestDispatcher.FORWARD_REQUEST_URI常量中指定。用 JSF 术语来说,它的可用方式如下:
String originalURI = (String) externalContext.getRequestMap().get(RequestDispatcher.FORWARD_REQUEST_URI);
String originalQuery = (String) externalContext.getRequestMap().get(RequestDispatcher.FORWARD_QUERY_STRING);
if (originalQuery != null) {
originalURI+= "?" + originalQuery;
}
Run Code Online (Sandbox Code Playgroud)
(请记住,在返回的情况下要有一个后备 URL null,即直接打开而不先点击受限制的 URL 时)
收集它的最佳位置是@ViewScoped与登录页面关联的 bean 的(后)构造函数。
| 归档时间: |
|
| 查看次数: |
2699 次 |
| 最近记录: |