@RolesAllowed,@ DenyAll在web层中的用法?

时间:2012-08-10 05:29:54

标签: jsf-2 java-ee-6 jsr250

我正在查看Java EE 6规范部分EE.6.25,它表明Web容器必须支持以下注释:@ PermitAll,@ DenyAll,@ RolesAllowed,@ DeclareRoles和@RunAs。

EE.6.25 Java™Platform 1.1要求的通用注释

Common Annotations规范定义了Java语言注释 由其他几个规范使用,包括本规范。规格 使用这些注释完全定义了这些注释的要求。该 applet容器不需要支持任何这些注释。所有其他容器 必须提供所有这些注释的定义,并且必须支持语义 这些注释中的相应规范和描述 总结在下表中。

表EE.6-5容器的常用批注支持

 
Annotation  App Client    Web   EJB

Resource        Y          Y     Y
Resources       Y          Y     Y
PostConstruct   Y          Y     Y
PreDestroy      Y          Y     Y
Generated       N          N     N
RunAs           N          Y     Y
DeclareRoles    N          Y     Y
RolesAllowed    N          Y     Y
PermitAll       N          Y     Y
DenyAll         N          Y     Y

在规范中进一步向下,它说,“...... Web容器现在需要支持RolesAllowed,PermitAll和DenyAll注释.Servlet规范和JAX-RS规范包含方式“。

它没有提到JSF规范,所以我假设这些注释不能用于托管bean。为什么不呢?

如何在Web层中对非servlet或过滤器的对象实施授权,以及在web.xml中使用页面级声明性安全性,那么交叉问题如何?

1 个答案:

答案 0 :(得分:3)

...答案是...... EJB是CDI托管bean。要在托管bean上使用@RolesAllowed,只需将其转换为EJB即可享受。这是用作辅助bean的EJB的an example