現行の実行スレッドが認証済のSubject
に関連付けられていることを確認した後に、SecurityContext
のhasPermission
メソッドを使用して認可をチェックできます。通常、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セキュリティが有効化されているかどうかを確認する必要があります。これは、ADFContext
のSecurityContext
のisAuthorizationEnabled()
メソッドにより公開されます。
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アプリケーションでのセキュリティの実装
Copyright © 1997, 2006, Oracle. All rights reserved.