実際に動かしてみましょう。サーバにプロジェクトを追加します。サーバを選択して右クリックして、[プロジェクトの追加および除去]を選択します。
「sampleSX」「/sampleSX/resources/sampleSX-ds.xml」を選択して[追加]ボタンを押し、完了ボタンをクリックしてください。
最後にサーバを起動したら、Webブラウザから「http://localhost:8080/sampleSX/home.seam」にアクセスしてみてください。以下のようなBASIC認証ダイアログが表示されるはずです。
ユーザー名、パスワードともに「admin」と入力して、ログインボタンをクリックしてください。認証が通るはずです。
次に、認証を失敗させてみましょう。「web.xml」を下記のように編集してください(ここでは、コード1の赤字部分のみ表記しています)。
<security-constraint>
<web-resource-collection>
<web-resource-name>Faces Servlet</web-resource-name>
<description></description>
<url-pattern>/home.seam</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>Manager</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>BASIC</auth-method>
<realm-name>JBoss SX Auz</realm-name>
</login-config>
<security-role><role-name>Manager</role-name></security-role>
</web-app>
再度実行してみましょう。サーバを起動して、「http://localhost:8080/sampleSX/home.seam」にアクセスしてみてください。再度、図7の認証ダイアログが表示されるはずです。ユーザー名、パスワードともに「admin」と入力して、ログインボタンをクリックしてください。認証に失敗して以下の画面が表示されるはずです。
以上でJBoss SXのベーシック認証機能を用いたアクセスコントロールの動きが理解できたと思います。既存のJBossを使ったプロジェクトに上記の簡単な修正を加えるだけで、認証機能を設定できました。
先ほどご説明した通り、この認証機能だけではアクセスコントロールとしては不十分です。そこで登場するのが、次ページで最後に紹介するPicketLinkのXACMLコンポーネントです。
Copyright © ITmedia, Inc. All Rights Reserved.