JSF/IceFaces3 アプリケーションを実行しています。このアプリケーションは、SSO 経由でログインした後、イントラネット環境で実行する必要があります。ボスは、次のように呼び出すことができるリンクを提供するように私に言いました:
http://companieserver/FancyApplcation/indexsso?name=[ユーザー名]&psw=[ユーザーパスワード]
新参者として、サーブレットを作成し、web.xmlで言及しました
<servlet>
<description>SSO Login calling with given Parameters Managed
AuthenticationService</description>
<display-name>SsoLogin</display-name>
<servlet-name>SsoLogin</servlet-name>
<servlet-class>de.bws.bewerberverwaltung.security.SsoLogin</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>SsoLogin</servlet-name>
<url-pattern>/indexsso</url-pattern>
</servlet-mapping>
....
この SsoLogin サーブレットから、JSF/IceFaces3 アプリケーションにリダイレクトしたいと考えています。ここで私のアプローチ:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
FacesContext facesContext = getFacesContext(request, response);
LoginBean loginBean = (LoginBean)getManagedBean("loginBean", facesContext);
String login = request.getParameter("name");
String psw = request.getParameter("psw");
loginBean.setLogin(login);
loginBean.setPassword(psw);
String value = loginBean.login();
System.out.println("SsoLogin result: " + value);
request.getRequestDispatcher(value).forward(request, response);
}
loginBean から得られる値は、私のプロジェクトにある customeroverview.xhtml ファイルです。
動作は、サーバーが私に白いページを表示することです。ページのソースコードを表示すると、そうあるべきように見えます。同じ結果のリダイレクトも送信しようとしました。
サーブレットから直接 JSF アプリケーションにジャンプするのは最善の方法ではないかもしれませんが、明らかにうまくいきました。
この問題を解決するためのヒントはありますか?