もちろん、セッション ID がないと、この successAuth.xhtml はユーザー セッションに接続されません。
サーブレットコンテナが URL 書き換えをサポートしている場合 (デフォルトでは、すべてサポートしています)、セッション ID を URL パスフラグメントとして渡すだけです。
HttpSession session = (HttpSession) externalContext.getSession();
String callbackURL = "http://www.myJsfApp.com/successAuth.xhtml;jsessionid=" + session.getId();
// ...
以下も参照してください。
このページは「生の」xhtml ファイル (すべてのタグを含む) であり、html はありません。
FacesServlet
が呼び出されていないときに発生します。FacesServlet
リクエスト URL は、それを呼び出すためにの URL パターンと一致する必要があります。したがって、たとえば/faces/*
URL をリッスンするように構成した場合は、明らかに URL を に変更する必要がありますfaces/successAuth.xhtml
。
HttpSession session = (HttpSession) externalContext.getSession();
String callbackURL = "http://www.myJsfApp.com/faces/successAuth.xhtml;jsessionid=" + session.getId();
// ...
FacesServlet
または、単にonをマップすることもでき*.xhtml
ます。この方法では、仮想 URL をいじる必要はありません。
以下も参照してください。