Ejb-security

提供:Dev Guides
移動先:案内検索

EJB-セキュリティ

セキュリティは、エンタープライズレベルのアプリケーションの主要な関心事です。 これには、アプリケーションにアクセスするユーザーまたはシステムの識別が含まれます。 識別に基づいて、アプリケーション内のリソースへのアクセスを許可または拒否します。 EJBコンテナは、標準のセキュリティ上の問題を管理します。または、特定のセキュリティ上の問題を処理するためにカスタマイズできます。

セキュリティの重要な条件

  • 認証-これは、システムまたはアプリケーションにアクセスするユーザーが本物であることを確認するプロセスです。
  • 承認-これは、本物のユーザーがシステムリソースにアクセスするための正しいレベルの権限を持つことを保証するプロセスです。
  • ユーザー-ユーザーは、アプリケーションにアクセスするクライアントまたはシステムを表します。
  • ユーザーグループ-ユーザーは、特定の権限を持つグループの一部である場合があります(管理者グループなど)。
  • ユーザーロール-ロールは、システムリソースにアクセスするための権限、ユーザーの権限、またはアクセス許可のレベルを定義します。

コンテナ管理セキュリティ

EJB 3.0は、EJBコンテナが実装するセキュリティの以下の属性/注釈を指定しています。

  • DeclareRoles -クラスが宣言されたロールを受け入れることを示します。 注釈はクラスレベルで適用されます。
  • RolesAllowed -指定されたロールのユーザーがメソッドにアクセスできることを示します。 クラスのすべてのメソッドにアクセスできるクラスレベルで適用でき、指定されたロールのユーザーを購入できます。
  • PermitAll -ビジネスメソッドがすべてにアクセス可能であることを示します。 クラスおよびメソッドレベルで適用できます。
  • DenyAll -クラスまたはメソッドレベルで指定されたユーザーがビジネスメソッドにアクセスできないことを示します。

package com.finddevguides.security.required;

import javax.ejb.*

@Stateless
@DeclareRoles({"student" "librarian"})
public class LibraryBean implements LibraryRemote {

   @RolesAllowed({"librarian"})
   public void delete(Book book) {
     //delete book
   }

   @PermitAll
   public void viewBook(Book book) {
     //view book
   }

   @DenyAll
   public void deleteAll() {
     //delete all books
   }
}

セキュリティ構成

構成ファイルにグループ化されたロールとユーザーをマップします。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sun-ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Application Server 9.0 EJB 3.0//EN" "http://www.sun.com/software/appserver/dtds/sun-ejb-jar_3_0-0.dtd">
<ejb-jar>
   <security-role-mapping>
      <role-name>student</role-name>
      <group-name>student-group</group-name>
   </security-role-mapping>
   <security-role-mapping>
      <role-name>librarian</role-name>
      <group-name>librarian-group</group-name>
   </security-role-mapping>
   <enterprise-beans/>
</ejb-jar>