6.3.2. 使用 Jakarta Enterprise Beans 安全注释
您可以使用 XML 描述符或注释来控制哪些安全角色可以在 Jakarta Enterprise Beans 中调用方法。有关使用 XML 描述 符的详情,请参考使用 Jakarta Enterprise Beans 方法权限。
部署描述符中指定的任何方法值都会覆盖注释值。如果在部署描述符中未指定方法值,则使用使用注解设置的值。覆盖粒度以每个方法为基础。
控制 Jakarta Enterprise Beans 的安全权限注释
- @DeclareRoles
-
使用
@DeclareRoles定义要针对哪个安全角色检查权限。如果没有@DeclareRoles,则从@RolesAllowed注释自动构建列表。 - @RolesAllowed, @PermitAll, @DenyAll
-
使用
@RolesAllowed列出哪些角色可以访问某一方法或方法。使用@PermitAll或@DenyAll允许或拒绝所有角色使用方法或方法。 - @RunAs
-
使用
@RunAs指定方法在从注释方法发出调用时使用的角色。
示例:安全注解示例
@Stateless
@RolesAllowed({"admin"})
@SecurityDomain("other")
public class WelcomeEJB implements Welcome {
@PermitAll
public String WelcomeEveryone(String msg) {
return "Welcome to " + msg;
}
@RunAs("tempemployee")
public String GoodBye(String msg) {
return "Goodbye, " + msg;
}
public String GoodbyeAdmin(String msg) {
return "See you later, " + msg;
}
}
在此代码中,所有角色都可以访问方法 WelcomeEveryone。GoodBye 方法在发出调用 时使用 temp employee 角色。只有 admin 角色可以访问方法 GoodbyeAdmin,以及任何其他没有安全注释的方法。