2012-01-25 63 views
1

我正在使用GlassFish 3.1和JSF 2.0/EJB 3.1開發Web應用程序。我的一些網頁是安全的。受保護的URL部分在web.xml中定義爲URL模式。這些頁面通過安全領域進行保護,安全領域重定向到web.xml中定義的登錄頁面login.xhtml。在login.xhtml我的用戶名和密碼inputfields連接到會話域的支持bean,其執行:如何知道在登錄JSF 2頁面之前請求了哪個頁面

ExternalContext ec = getExternalContext(); 
HttpServletRequest request = getHttpServletRequest(ec); 
request.login(username, password); 

EJB容器負責重定向所有傳入請求到安全區域與無效的會話到這個頁面。

但是,例如,用戶正在書籤頁面index.xhtml並且正在請求該頁面。首先他必須登錄login.xhtml。他通過輸入他的用戶名和密碼並單擊提交按鈕進行身份驗證。

的問題是:如何確定目標ADRESS,在這種情況下index.html? 方法request.getRequestURI()顯示login.xhtml而不是index.html。我總是可以重定向到index.xhtml,但如果用戶鍵入xyz.xhtml?有什麼辦法嗎?

由於

阿德姆

回答

2

原始請求信息被存儲在請求對象與以下項:

「javax.servlet.forward.request_uri」

「的javax .servlet.forward.query_string」

+0

比ks的答案。這把我正確的方式來尋找解決方案! – AdemC

+0

是否可以添加一些代碼來說明如何閱讀這些密鑰? :) – simgineer

相關問題