2017-09-14 98 views
0

我有使用Primefaces對話框框架打開對話框的問題。我們正在使用SSO解決方案,通過與內部公司SSO解決方案集成來爲我們的應用程序提供安全性Primefaces對話框框架+ SSO URL重寫

總之。 我們的服務器上的應用程序的真實地址是(例如sso),例如:https://appserver1.net/ctx/page.xhtml(其中ctx是我們應用程序的根環境) 在正常情況下,我們得到sso地址例如:https://ssoaddress.net/junction/page.xhtml 其中junction = ctx。在請求sso地址被重寫,以找到我們的服務器的真實地址,獲取資源和響應再次重寫爲sso url地址。一切正常。但是我們獲得了第二個環境(DEV02),由於某些限制,我們得到了sso地址,其中junction = = ctx如:https://ssoaddress.net/junction/ctx/page.xhtml。在這種情況下,當我試圖打開對話框我得到的信息:「page.xhtml在外部上下文中找不到作爲資源」。

當結= CTX工作代碼:

public void openTestPage() {   
    Map<String,Object> options = new HashMap<String, Object>(); 
    options.put("resizable", false); 
    options.put("draggable", true); 
    options.put("modal", true); 
    options.put("height", 250); 
    options.put("contentHeight", "100%"); 
    options.put("closable", true); 
    RequestContext.getCurrentInstance().openDialog("/pages/page", options, null); 
} 

由於事實結重寫比在不同的情況下是不可能找到請求page.html中。也許你們中有人知道如何解決這個問題?我補充說我不能重寫應用程序的上下文。 技術信息:primefaces 6.0,JSF2.2,weblogic 12.2.1。 資源結構:src/main/webapp/pages/page.xhtml

+1

我希望一切都會失敗if junction!= ctx?不僅是PF對話框架。例如。從服務器端也正常'重定向'... – Kukeltje

回答

0

由於某些限制,您無法修復由於某些限制導致網址重寫不正確的問題,因此您只能通過其他重寫修復它。

你可以在你的服務器和sso之間放置一個單獨的代理服務器,它可以進行重寫。
或者你可以在你的應用程序中重寫。您可以創建自己的重寫servlet過濾器或使用第三方解決方案,例如PrettyFaces