2013-02-12 45 views
3

我想知道有什麼方法可以使用JSF,JSTL或JSP將用戶標識和密碼傳遞給另一個應用程序,而不會在用戶看到視圖源中的硬編碼值時不可見在瀏覽器中?將用戶名和密碼從JSF或JSP傳遞到Oracle報告

理想情況下,我想從JSF或JSP頁面調用Oracle報表,因此如何通過不在隱藏字段或輸入字段中添加用戶名和密碼,以便當用戶在瀏覽器中查看查看源時,他/她應該無法看到驗證細節。

我可以像

Map map = new HashMap(); 
map.put("username", "SMITH"); 
map.put("password", "SMT"); 
FacesContext.getCurrentInstance().getExternalContext().getSessionMap() 
     .put("reportParams", map); 
ExternalContext ec = FacesContext.getCurrentInstance().getExternalContext(); 
ec.redirect("http://server:8889/reports/rwservlet"); 

,但不知道如何可以通過與URL或如何調用這個使用JSTL或JSF頁面的地圖添加的東西。即使我作爲參數傳遞,用戶也許會看到參數值。

任何幫助是非常可觀的。

感謝

+5

您是否閱讀過單點登錄(SSO)技術?您的應用程序永遠無法以純文本格式訪問任何用戶的密碼,因此您無法將其發送給其他應用程序。但是,SSO提供了一種無需通過集中式身份驗證點的方法。 – 2013-02-12 12:13:24

+0

「外部」應用程序是否在同一個Web容器中運行? – Uooo 2013-02-12 17:37:46

+0

@AlonsoDominguez我們目前沒有使用SSO。 – user75ponic 2013-02-13 05:14:53

回答

2

在Oracle報表服務器的身份驗證細節可以在cgicmd.dat文件中提供以下方式

myconn: userid=scott/[email protected] report=myreport.jsp %* 

,並使用myconn同時傳遞參數從JSF或JSP到Oracle報告。通過這種方式可以避免用戶名或密碼的硬編碼。

+1

我會給你+1找到一個解決方案,並不意味着以純文本傳遞密碼,很好找! – 2013-02-14 14:42:21

相關問題