我刚刚开始使用Spring,并希望知识渊博的人可以帮助我。我有一个弹簧休息库使用弹簧休息数据。我正在尝试解决如何执行以下操作。
在请求进入并基于用户属性时访问经过身份验证的用户,根据是否具有此属性来屏蔽其中一个存储库响应字段。例如,请求进入以获取数据列表。但在我们返回数据之前,我们会检查用户是否已付费"例如,按原样保留数据,或者如果他们不这样做,则更改响应字段以屏蔽该内容并替换"内容字段值"用" ..."例如。可以使用标准仓库来完成,还是需要更改为控制器并重做所有代码?示例代码如下:
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;
}
答案 0 :(得分:0)
假设您已经设置了Spring SEcurity上下文,您可以在getContent()方法中执行以下类似的实体类
public String getContent(){
Authentication auth =
SecurityContextHolder.getContext().getAuthentication();
if( auth.getAuthorities().contains(new SimpleGrantedAuthority("ADMIN"))) {
return content;
}else{
return "...";
}
}