2014-03-24 34 views
0

我遇到需要一些帮助的情况。我有四个REST URL以相同的路径和不同的HTTP方法使用相同的路径和不同的http方法保护REST URL

/api/users/** GET,POST,PUT,DELETE 

我想用四郎到protoct小狗,POST,DELETE和GET保持匿名。我配置了以下网址,但与运气

/api/users/** =rest[user:update,user:delete,user:create] 
/api/users/** =anon 

回答

0

也许你可以做这样的事情:

/api/users/**=rest[user] 

然后,它种取决于你如何创建REST的API。随着JAX-RS实现,比如泽西例如,你可以做到以下几点:

@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()机制。

+0

谢谢Aritra。第一个建议/ api/users/** = rest [用户]将不起作用。因为。它会使GET需要认证。我尝试使用注释。但它没有效果。这四个资源不受保护 – user2082980

+0

您是否添加了注释的aspectj依赖关系? – Aritra

+0

谢谢Aritra – user2082980

相关问题