小编Ple*_*chi的帖子

Spring Data Rest:基于安全性的投影

我正在使用当前版本的Spring Data RestSpring Data JPA并具有以下实体:

public class User {
    @Id
    @GeneratedValue
    private Long id;
    private String name;
    private String password;
    private String email;
   ...getter/setter methods...
}
Run Code Online (Sandbox Code Playgroud)

我也在用Spring Security.

我的用户存储库:

   @RepositoryRestResource(
     collectionResourceRel = "user", 
     path = "user", 
    excerptProjection = UserSimpleProjection.class)
public interface UserRepository extends PagingAndSortingRepository<User, Long> {

}
Run Code Online (Sandbox Code Playgroud)

例如:

  • 用户1已登录
  • 用户1请求http://localhost:8080/user/1- 所有字段都可见
  • 用户1个请求http://localhost:8080/user/2-只是idname可见.

我和杰克逊尝试了不同的解决方案,没有一个能解决我的问题:

  • 使用JsonView:我发现没办法,ObjectMapper根据登录用户更改视图
  • 所描述的实现不同杰克逊过滤器在这里用,我发现没有办法改变的同一个问题ObjectMapper的不同的要求配置.

然后我找到了预测. …

spring-security jackson spring-data-jpa spring-data-rest

19
推荐指数
1
解决办法
2426
查看次数