0

私の文脈では:

Context
 |
 |->  Login.zul
 |->  Home.zul
 |->  page1.zul
 |->  page2.zul

Home.zulへのリンクをクリックした場合、認証されていない場合はログインにリダイレクトします。同様に、認証が行われていない場合はすべてのzulについて、ログイン画面にリダイレクトします。

私の解決策:認証されていない場合は、すべてのコントローラーで認証チェックを実行し、Login.zulにリダイレクトします。

しかし、私には多くのzulと多くのコントローラーがあり、各コントローラーに入れたくないので、同じことを行うと、各クラスに行って変更を加えることなく、アイデアを思いつくことができます。web.xmlまたはzk.xmlにある可能性がありますが、同じ結果を取得するために、または同じ結果を取得するためにクライアント側のスクリプトを実行するために、私が知らない任意のタグを追加できます。

4

4 に答える 4

1

リクエストインターセプターを使用できるはずです。

あなたのコメントに関連して、あなたが使用できるかもしれないDesktopInitSessionInitクラスがあるように見えます。ただし、ユーザーのセッションが無期限に続く場合を除いて、リクエストインターセプターがないと、セッションタイムアウトを処理できるかどうかわかりません(ユーザーがアクセスされたすべての場所で有効なセッションがあることを明示的に確認しない限り)。これもセキュリティ上の問題です。

于 2012-06-14T10:48:20.587 に答える
0

答えは、Filters
フィルターは一度作成され、で構成されることですweb.xml
Webアプリのすべてのリソースまたは選択したリソースにフィルターを設定できます。フィルタは、リソースに対する各要求をインターセプトできます。フィルタを使用すると、ブラウザから送信されたものを調べてユーザーを認証できます。また、それを使用してコンテンツをcookie変更することもできます。 役立つリンク:http ://www.javaworld.com/jw-06-2001/jw-0622-filters.htmlrequestresponse

于 2012-06-14T10:53:46.440 に答える
0

これはJavaWebアプリケーションですか?その場合は、web-inf/web.xmlファイルで構成できます。

サーブレットフィルターを作成して、要求がコントローラーに到着する前にユーザーのログインステータスを確認することもできます。

于 2012-06-14T10:53:53.320 に答える
0

この目的でSpringSecurityを使用できます。

于 2012-06-14T15:13:36.263 に答える