Ho due sistemi che sto cercando di integrare. Uno è costruito su servlet raw, il nuovo è costruito su JSF con IceFaces. Sto cercando di facilitare l'accesso cross-system. L'idea è che ho un pulsante nel vecchio sistema che invia POST alle informazioni appropriate al nuovo sito e le registra.Generazione manuale di un contesto di facce
Bene, idealmente, mi piacerebbe usare solo un vecchio servlet regolare per facilitare quello sul nuovo sito. Vai al Servlet del nuovo sito, fai ciò che deve fare e l'avanti sul dashboard.
La nostra sicurezza viene gestita tramite un bean gestito. Tuttavia, quando arrivi al Servlet, non c'è un contesto di facce. Quindi, come creerei un nuovo contesto di facce?
Ho un piano di backup in cui posso sempre collegarmi a una pagina fittizia .iface che creerà per me il FacesContext e quindi creare un bean di supporto che eseguirà roba quando verrà instanciata e quindi inoltrerà alla pagina principale . Ma questo sembra molto simile a un hack.
Qualsiasi aiuto sarebbe apprezzato!
MODIFICA: Sono andato con il backup. Fondamentalmente, ho posto a una pagina in questo modo:
<f:view>
<ice:outputText value="#{EntryPoint}"/>
</f:view
Il backing bean cercando in questo modo ...
public EntryPoint() {
try {
HttpServletRequest request = (HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest();
HttpServletResponse response = (HttpServletResponse) FacesContext.getCurrentInstance().getExternalContext().getResponse();
String loginID = request.getParameter("loginID");
//Do some code to load the user/permissions
response.sendRedirect(
//The appropriate page
);
} catch (IOException ex) {
logger.error(null, ex);
} catch (SQLException ex) {
logger.error(null, ex);
}
}
Questo si sente ancora come un hack, ma non sono sicuro di come muoversi Questo. Idealmente, POSSO POSTARE a un servlet, ottenere l'ID di accesso, creare l'utente e inserirlo direttamente nel bean gestito. Ma il FacesContext non esiste a quel punto.
Altre idee?
Il secondo è la risposta che stavo cercando e il primo era il mio piano di backup se non riuscivo a capire il primo. L'idea era che il sito leglet Servlet (la propria webapp e il file WAR) reindirizzasse l'utente con un POST e le credenziali alla nuova webapp. C'è un modo migliore per farlo? – Drew