認可チェックの実装

現行の実行スレッドが認証済のSubjectに関連付けられていることを確認した後に、SecurityContexthasPermissionメソッドを使用して認可をチェックできます。通常、WebコンテナではSubject.doAsコールを実行してSubjectを実行スレッドに関連付けます。OC4Jではこれを、doAsコールを起動するように構成できます。そのためには、orion-web.xmlまたはorion-application.xml内でjazn-web-app要素のrunas-mode属性をtrueに設定します。

JAASのcheckPermissionを使用するには、orion-web.xml内でrunas-modeプロパティとdoasprivileged-modeプロパティの両方をtrueに設定する必要があります。次に例を示します。

  <jazn-web-app runas-mode="true" doasprivileged-mode="true" />    

デプロイ・オプションの詳細は、「OC4Jアプリケーション・サーバー」を参照してください。

次のコードSnippetは、基本的な認可チェックを示しています。

RegionPermission p = new RegionPermission("views.pageDefs.page1PageDef", "Edit");
if (ADFContext.getCurrent().getSecurityContext().hasPermission(p))
  {
    System.out.println("Ok to edit /application/page1");
  } 
else 
  {
	 System.out.println("Access Denied");
  }    

認可チェックを起動するには、アプリケーションで認可プロパティ設定をチェックして、Oracle ADFセキュリティが有効化されているかどうかを確認する必要があります。これは、ADFContextSecurityContextisAuthorizationEnabled()メソッドにより公開されます。

if (ADFContext.getCurrent().getSecurityContext().isAuthorizationEnabled()) 
{
Permission p = new regionPermission("view.pageDefs.page1PageDef", "Edit");
AccessController.checkPermission(p);
// do the protected action
} catch (AccessControlException ace) {
// do whatever&rsquos appropriate on an access denied
}


関連項目
J2EEアプリケーションのセキュリティの開発
Oracle ADFアプリケーションでのセキュリティの実装