spring REST存储库 - 修改返回的响应字段

时间:2017-11-06 14:03:08

标签: spring spring-mvc spring-data-jpa spring-rest

我刚刚开始使用Spring,并希望知识渊博的人可以帮助我。我有一个弹簧休息库使用弹簧休息数据。我正在尝试解决如何执行以下操作。

  1. 在请求进入并基于用户属性时访问经过身份验证的用户,根据是否具有此属性来屏蔽其中一个存储库响应字段。例如,请求进入以获取数据列表。但在我们返回数据之前,我们会检查用户是否已付费"例如,按原样保留数据,或者如果他们不这样做,则更改响应字段以屏蔽该内容并替换"内容字段值"用" ..."例如。可以使用标准仓库来完成,还是需要更改为控制器并重做所有代码?示例代码如下:

    public interface ReadOnlyRepository扩展Repository {     T findOne(ID id);

    Iterable<T> findAll();
    
    Iterable<T> findAll(Sort sort);
    
    Page<T> findAll(Pageable pageable);
    

    }

    public interface ContentRepository扩展了ReadOnlyRepository&lt; ...&gt; {

    }

    //我需要动态更换的字段&#39; ...&#39; @实体 公共课内容{

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private long id;
    
    @Column(nullable = false)
    private String content;
    

    }

1 个答案:

答案 0 :(得分:0)

假设您已经设置了Spring SEcurity上下文,您可以在getContent()方法中执行以下类似的实体类

public String getContent(){

    Authentication auth = 
    SecurityContextHolder.getContext().getAuthentication();
    if( auth.getAuthorities().contains(new SimpleGrantedAuthority("ADMIN"))) {
    return content; 
    }else{
       return "...";
    }

}