15.3.6. セキュリティ例外の処理
セキュリティエラー発生時にユーザーがデフォルトの基本エラーページを受け取らないようにするため、
pages.xml を編集してもう少し見栄えのするページにリダイレクトしてください。セキュリティ API により送出される例外には主として 2 つのタイプがあります。
NotLoggedInException- ユーザーがログインすることなく制限された操作やページにアクセスしようとするとこの例外が送出されます。AuthorizationException— 既にログインしているユーザーがアクセス許可を持たない制限された操作やページにアクセスしようとしたときにのみこの例外が送出されます。
NotLoggedInException の場合、 ユーザーをログインページかユーザー登録ページにリダイレクトしてログイン操作を行えるようにすることをお勧めします。 AuthorizationException の場合は、 ユーザーをエラーページにリダイレクトした方が良いでしょう。 以下の例では、 この 2 つのセキュリティ例外をリダイレクトする pages.xml ファイルを示しています。
<pages>
...
<exception class="org.jboss.seam.security.NotLoggedInException">
<redirect view-id="/login.xhtml">
<message>You must be logged in to perform this action</message>
</redirect>
</exception>
<exception class="org.jboss.seam.security.AuthorizationException">
<end-conversation/>
<redirect view-id="/security_error.xhtml">
<message>
You do not have the necessary security privileges to perform this action.
</message>
</redirect>
</exception>
</pages>
ほとんどの Web アプリケーションでより洗練されたログインのリダイレクト処理を必要とします。 Seam では特別な機能も備えており、次項に概要が記載されています。