2011-10-11 10 views
0

我有兩臺服務器 其中一臺僅用於身份驗證,並且在頭部參數中帶有userId的轉發請求 其他服務器在JSF(1.2)上運行應用程序。 如何從請求中檢索參數並將其放入備份bean中。將html頭參數轉發給jsf後端bean

+0

你混合術語「請求頭」和「請求參數」和你的問題是模糊的,因此和混亂。請編輯並明確指定「請求標題」或「請求參數」。請求頭是HTTP頭字段中的任何內容(並且在URL中不可見)。請求參數是'?'部分後請求URL中的任何內容。此外,從服務器X到服務器Y的「轉發」是不可能的。你可能在這裏意思是「重定向」。考慮到這一點,在發送重定向時,不可能讓瀏覽器添加另一個請求頭。那麼,你真的*有什麼需要做的? – BalusC

+0

詳細說明和沿着代碼示例詳細說明您如何調用其他服務器將對理解您*真正擁有和正在做的事情有幫助。你正在使用例如'URLConnection'或某些特定的API? – BalusC

+0

我讀過你的文章在JSF中交流,這非常有趣。 我的問題開始於: 我是一名Spring Struts用戶,也是JSF的新成員。管理員告訴我的是,userId將位於請求的http標頭中,該標頭將登錄到我的應用程序起始頁面。我需要從請求中提取信息,並將其放入將在會話中使用的輔助bean中。我在開始編碼之前試圖理解。 –

回答

2

我對身份驗證模塊上的單點登錄做了類似的操作。代理服務器將用戶名插入到HTTP請求標頭中。這可以從FacesContext像這樣進行檢索:

Map<String, String> requestHeaders = context.getExternalContext().getRequestHeaderMap(); 
String userName = requestHeaders.get(requestHeaderName); 
+0

非常感謝。這件事聽起來很令人鼓舞,但我有一個問題。 jsf如何將此轉發給後臺bean?或者只是在後臺bean中執行此操作會自動將其提取出來? –

+0

只要其他服務器始終添加此請求標頭並轉發給JSF應用程序,則在輔助bean中添加此代碼應自動將其選中。 –

+0

謝謝你的回覆。 我是JSF的新手。是不是上下文打開所有會話? 我會嘗試它併發送它進行部署和測試,並查看它是如何工作的。只要我得到任何積極的結果,我會更新。 –

相關問題