如何在EJB 3中动态设置@RolesAllowed

时间:2014-07-02 08:57:56

标签: java security authorization ejb-3.0

我在我的应用程序中使用角色授权,如下所示,

**@RolesAllowed("Admin")**
public class ExampleResource {
//
  @GET
  @Produces(MediaType.APPLICATION_JSON)
  **@RolesAllowed({"Admin", "User"})**
  public Response getUsers(){
   }
}

以“管理员/用户”身份登录时,授权正常。同样,我为许多资源类应用了角色。

但我想处理@RolesAllowed动态设置而不是将其定义为声明性注释。或者是否有任何其他方法可以使用EJB3或Java ee安全性来处理角色授权?

请提供您的想法或示例来实施它。

谢谢,

此致 乌拜

1 个答案:

答案 0 :(得分:0)

使用@Resource注入EJBContext(或SessionContext),并调用isCallerInRole(String roleName)并在返回false时抛出异常(或其他)。这基本上是@RolesAllowed所涵盖的内容。