2017-08-30 67 views
0

我使用Spring Boot(使用Spring MVC REST API)获得了应用程序Web,我正在寻找保护数据以让用户获得他自己的方法。例如,我们得到了4个表格,用户 - >表格1 - >表格2 - >表格3,所有的关联在一对多中。我正在寻找过滤器请求“findAll()”的最简单的方法,当用户去/ table3有控制器返回Table3Service.findAll(),我想过滤只返回数据belogns给用户。Spring MVC安全从REST获取用户数据

谢谢任何​​建议!

回答

0

看起来你需要@PostFilter注释

@PostFilter("hasPermission(filterObject, 'read') or hasPermission(filterObject, 'admin')") 
public List<Contact> getAll(); 

和实现方法

boolean hasPermission(Authentication authentication, Object targetDomainObject, Object permission); 

boolean hasPermission(Authentication authentication, Serializable targetId, String targetType, Object permission); 

检查更here

+0

是不是最好使用实体管理器,让自己的查询?或者你发布的这种方式更好,你认为如何? – Gwiazdek

+0

这是基于意见的。如果使用懒惰调用的深树,最好定义一个自定义查询来检索一个数据库请求中的所有数据。但是,无论如何添加检查会很好。 – StanislavL