注釈またはデプロイメント記述子を使用して、
EJB アプリケーションにセキュリティーを指定できます。
Java™ EE 5 より前には、所定のアプリケーションへの許可を使用する場合、
アプリケーション・デプロイメント記述子 ejb-jar.xml または web.xml に許可情報を指定する必要がありました。
注釈を使用してアプリケーションにセキュリティーを直接セットアップできます。
共通セキュリティー注釈
JSR
250 では、いくつかの共通セキュリティー注釈を定義しています。次の 5 つのセキュリティー注釈が定義されています。
- javax.annotation.security.PermitAll:
- 型またはメソッドのレベルで使用できます。
- 所定の EJB の所定のメソッドまたはすべてのビジネス・メソッドに全員がアクセスできるように指示します。
- javax.annotation.security.DenyAll:
- メソッド・レベルで使用できます。
- EJB 内の所定のメソッドに誰もアクセスできないように指示します。
- javax.annotation.security.RolesAllowed:
- 型またはメソッドのレベルで使用できます。
- EJB 内の所定のメソッドまたはすべてのビジネス・メソッドに、
役割のリストに関連付けられたユーザーがアクセスできるように指示します。
- javax.annotation.security.DeclareRoles:
- 型レベルで使用できます。
- セキュリティー検査の役割を定義します。EJBContext.isCallerInRole、
HttpServletRequest.isUserInRole、および WebServiceContext.isUserInRole で使用されます。
- javax.annotation.security.RunAs:
- 型レベルで使用できます。
- 所定のコンポーネントの実行役割を指定します。
例:
@Stateless
@RolesAllowed("team")
public class TestEJB implements Test {
@PermitAll
public String hello(String msg) {
return "Hello, " + msg;
}
public String goodbye(String msg) {
return "Goodbye, " + msg;
}
}
この例では、hello() メソッドには全員がアクセスでき、
goodbye() メソッドには team 役割のユーザーがアクセスできます。