【发布时间】:2015-09-10 02:16:03
【问题描述】:
阅读球衣文档:https://jersey.java.net/documentation/latest/entity-filtering.html 我能够通过将 SecurityEntityFilteringFeature 添加到我的 web.xml 以及其他激活的功能来激活它。
所以我的 web.xml 的 features 部分看起来像这样:
...
<init-param>
<param-name>jersey.config.server.provider.classnames</param-name>
<param-value>
org.glassfish.jersey.server.gae.GaeFeature;
org.glassfish.jersey.server.mvc.jsp.JspMvcFeature;
org.glassfish.jersey.media.multipart.MultiPartFeature;
org.glassfish.jersey.server.filter.RolesAllowedDynamicFeature;
org.glassfish.jersey.message.filtering.SecurityEntityFilteringFeature;
</param-value>
</init-param>
...
注释@PermitAll(不会改变任何东西)和@DenyAll(总是从json中删除实体)工作得很好。
问题是:要使用注释@RolesAllowed,我还需要按照文档中的说明在实体过滤范围内注册角色
EntityFilteringFeature.ENTITY_FILTERING_SCOPE - “jersey.config.entityFiltering.scope”
定义一个或多个在读取/写入实体时应用作实体过滤范围的注释。
但我只能通过我的 web.xml 配置它,我无处可做以下操作:
new ResourceConfig()
// Set entity-filtering scope via configuration.
.property(EntityFilteringFeature.ENTITY_FILTERING_SCOPE, new Annotation[] {SecurityAnnotations.rolesAllowed("manager")})
// Register the SecurityEntityFilteringFeature.
.register(SecurityEntityFilteringFeature.class)
// Further configuration of ResourceConfig.
.register( ... );
有什么猜测吗?
【问题讨论】:
标签: java google-app-engine web.xml jersey-2.0