2017-09-14 1 views
0

J'ai un problème avec l'ouverture de la boîte de dialogue en utilisant le cadre de dialogue Primefaces. Nous utilisons la solution SSO pour assurer la sécurité de notre application en intégrant la solution SSO interne de l'entreprise.Structure de dialogue Primefaces + réécriture d'url SSO

En bref. Notre vraie adresse (sans sso) à l'application sur notre serveur est par exemple .: https://appserver1.net/ctx/page.xhtml (où ctx est le contexte racine de notre application) En général, nous obtenons adresse sso: https://ssoaddress.net/junction/page.xhtml où jonction = ctx. Lors de la demande, l'adresse sso est réécrite pour trouver la véritable adresse de notre serveur, obtenir des ressources et réécrire la réponse à l'adresse URL du serveur. Tout fonctionne bien. Mais nous avons obtenu un second env (DEV02) sur lequel, en raison de certaines limitations, nous avons obtenu des addons où jonction! = Ctx comme: https://ssoaddress.net/junction/ctx/page.xhtml. Dans ce cas, lorsque j'essaie d'ouvrir une boîte de dialogue, j'ai reçu des informations: "page.xhtml introuvable dans ExternalContext en tant que ressource".

Code de travail lorsque jonction = 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); 
} 

En raison de fait que la jonction est différent de contexte pendant la réécriture n'est pas possible de trouver demandé page.html. Peut-être que quelqu'un d'entre vous sait comment résoudre ce problème? J'ajoute que je ne peux pas réécrire le contexte de l'application. Informations techniques: primefaces 6.0, JSF2.2, weblogic 12.2.1. structure des ressources: src/main/webapp/pages/page.xhtml

+1

Je m'attendrais à tout échouer si jonction! = Ctx? Pas seulement le cadre de dialogue PF. Par exemple. aussi des 'redirections' normales du côté du serveur ... – Kukeltje

Répondre

0

Étant donné que vous ne pouvez pas corriger la mauvaise réécriture d'url en raison de certaines limitations, il vous reste à la corriger avec une autre réécriture.

Vous pouvez mettre dans un proxy séparé entre votre serveur et sso, qui fait la réécriture.
Ou vous pouvez réécrire directement dans votre application. Vous pouvez créer votre propre filtre de servlet de réécriture ou utiliser une solution tierce, par ex. PrettyFaces.