【问题标题】:Spring MVC securing to get from REST only user dataSpring MVC 保护仅从 REST 获取用户数据
【发布时间】:2017-08-30 21:30:59
【问题描述】:

我通过使用 Spring Boot(使用 Spring MVC REST API)获得了应用程序 Web,我正在寻找保护数据的方法,让用户只能获得自己的数据。

例如,我们有 4 个表, User -> Table1 -> Table2 -> Table3 ,所有的关系都是一对多的。我正在寻找过滤请求“findAll()”的最简单方法,当用户转到 /table3 时,有一个控制器返回 Table3Service.findAll(),我想过滤以仅返回属于用户的数据。

感谢您的建议!

【问题讨论】:

    标签: java spring rest api spring-mvc


    【解决方案1】:

    看来你需要@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

    【讨论】:

    • 使用实体管理器并进行自己的查询不是更好吗?或者你发的这种方式更好,你觉得呢?
    • 这是基于意见的。在具有惰性调用的深度树的情况下,最好定义一个自定义查询以在一个数据库请求中检索所有内容。但无论如何添加支票会很好。
    猜你喜欢
    • 1970-01-01
    • 2020-05-29
    • 2016-02-06
    • 2022-07-04
    • 2012-11-20
    • 2014-07-29
    • 2012-11-29
    • 2013-09-12
    • 2013-06-02
    相关资源
    最近更新 更多