【发布时间】:2014-05-25 19:55:06
【问题描述】:
我正在尝试使用 spring 安全注释来保护球衣服务,但没有任何运气。
我已将此部分添加到 web.xml:
<servlet>
<servlet-name>Jersey REST Service</servlet-name>
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>jersey.config.server.provider.packages</param-name>
<param-value>com.test.proj.ui.web.rest;com.fasterxml.jackson.jaxrs</param-value>
</init-param>
<init-param>
<param-name>javax.ws.rs.Application</param-name>
<param-value>com.test.commons.ui.web.jersey.RestApplication</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
还在 applicationContext 上使用 this 启用了 pre-post-annotations:
<global-method-security secured-annotations="enabled" pre-post-annotations="enabled" />
这是我的服务类:
@Component
@Path("/user/{uid: .*}")
public class UserResource {
@GET
@Produces(MediaType.APPLICATION_JSON)
@PreAuthorize("hasRole('ROLE_MANAGE_USER')")
public Response getUserDetail(@PathParam("uid") String uid) {
return "Hi, this is a test";
}
}
Spring 安全性在身份验证中运行良好,但授权无法按预期工作,并忽略 PreAuthorize 注释而没有任何错误或日志。
我正在使用 Spring 3.2.4 和 Spring Security 3.2.1 和 Jersy 2.6。
有什么想法吗?
谢谢
【问题讨论】:
标签: java spring-security annotations jersey-2.0