我有一种情况需要一些帮助。我有四个具有相同路径和不同http方法的REST URL
/api/users/** GET,POST,PUT,DELETE
我想用Shiro来制作PUP,POST,DELETE并保持GET是匿名的。我配置了以下网址但没有运气
/api/users/** =rest[user:update,user:delete,user:create]
/api/users/** =anon
答案 0 :(得分:0)
也许你可以这样做:
/api/users/**=rest[user]
然后,这取决于您如何创建REST API。使用JAX-RS实现(例如Jersey),您可以执行以下操作:
@Path("/api/users")
public class SomeResource {
@RequiresPermissions("user:read")
@GET
public Response getResource() {..}
@RequiresPermissions("user:create")
@PUT
public Response putResource() {..}
@RequiresPermissions("user:update")
@POST
public Response postResource() {..}
@RequiresPermissions("user:delete")
@DELETE
public Response deleteResource() {..}
}
这假设您要使用基于注释的授权。您还可以使用SecurityUtils.getSubject()机制。