15.6.4. ページ単位のセキュリティ
ページセキュリティを使用する場合には
pages.xml ファイルが必要になります。 ページセキュリティの設定は簡単です。 保護したい page のエレメントに <restrict/> エレメントを含ませるだけです。 restrict エレメントで明示的な制限が指定されていない場合、 Faces 以外 (GET) の要求によるアクセスには暗黙的な /viewId.xhtml:render パーミッションが必要となり、 また JSF ポストバック (フォームのサブミッション) がそのページから発生する場合には /viewId.xhtml:restore パーミッションが必要となります。 これ以外は、 指定した制限は標準のセキュリティ式で評価が行われます。 以下にいくつかの例を示します。
<page view-id="/settings.xhtml"> <restrict/> </page>
<page view-id="/settings.xhtml">
<restrict/>
</page>
このページでは Faces 以外の要求には
/settings.xhtml:render の暗黙のパーミッションを必要とし、 Faces 要求には /settings.xhtml:restore の暗黙のパーミッションが必要となります。
<page view-id="/reports.xhtml">
<restrict>#{s:hasRole('admin')}</restrict>
</page>
<page view-id="/reports.xhtml">
<restrict>#{s:hasRole('admin')}</restrict>
</page>
このページに対する Faces と Faces 以外 の要求はいずれもユーザーが
admin ロールのメンバーであることを必要とします。