我正在查看 Java EE 6 规范部分 EE.6.25,它表明 Web 容器必须支持以下注释:@PermitAll、@DenyAll、@RolesAllowed、@DeclareRoles 和 @RunAs。
EE.6.25 Java™ 平台 1.1 要求的通用注释
Common Annotations 规范定义了被其他几个规范(包括本规范)使用的 Java 语言注释。使用这些注解的规范完全定义了这些注解的要求。小程序容器不需要支持任何这些注释。所有其他容器必须为所有这些注解提供定义,并且必须支持这些注解的语义,如相应规范中所述并总结在下表中。
表 EE.6-5 容器支持的常用注解
注释应用程序客户端 Web EJB 资源 YYY 资源 YYY PostConstruct YYY 预销毁 YYY 生成的NNN RunAs NYY DeclareRoles NYY RolesAllowed NYY 允许所有纽约年 拒绝所有纽约
在规范中再往下一点,它说,“......现在需要 Web 容器支持 RolesAllowed、PermitAll 和 DenyAll 注释。Servlet 规范和 JAX-RS 规范包含详细信息。”
它没有提到 JSF 规范,所以我假设这些注释不能用于托管 bean。为什么不?
除了在 web.xml 中使用页面级声明性安全性之外,如何在 Web 层对非 servlet 或过滤器的对象实施诸如授权之类的横切关注点?