根据JBoss 7.1企业版,如果REST风格的服务使用EJB,则不建议在资源的方法中使用@RolesAllowed。
如果应用程序使用EJB,则不要激活基于角色的安全性。EJB容器将提供该功能,而不是RESTEasy。
Ref: https://access.redhat.com/documentation/en-us/red_hat_jboss_enterprise_application_platform/7.1/html/developing_web_services_applications/developing_jax_rs_web_services#Enable_Role-Based_Security_RESTEasy_JAX-RS_Web_Service
我对上面的陈述感到困惑。我的应用程序是由JAX-RS层和EJB层构建的。我在SecurityContext isUserInRole(String role)方法的实现中解析角色。我的web.xml是空的。这是否意味着我不允许在我的Resource方法上使用@RolesAllowed,因为我的REST服务在幕后使用EJB?
1条答案
按热度按时间roejwanj1#
否,并且@RoleAllowed不会调用安全上下文isUserInRole(字符串角色)方法。
因此,创建基于@Namebinding注解的过滤器来处理SecurityContext isUserInRole(String角色)的权限是最好的方法。