java如何限制角色功能_java – 如何通过角色限制对Spring Data REST投影的访问?

在使用

Spring Data JPA和Spring Data REST的应用程序中,假设您有一个这样的实体类:

@Entity

public class Person {

@Id @GeneratedValue

private int id;

private String name;

@JsonIgnore

private String superSecretValue;

...

}

我们希望Spring Data REST为superSecretValue公开所有这个实体的字段EXCEPT,因此我们用@JsonIgnore注释了该字段.

但是,在某些情况下,我们要访问superSecretValue,因此我们创建一个投影,返回所有字段,包括:

@Projection(name = "withSecret", types = {Person.class})

public interface PersonWithSecret {

String getName();

String getSuperSecretValue();

}

真棒.所以现在我们可以访问包含superSecretValue字段的Person实体,如下所示:

curl http://localhost:8080/persons?projection=withSecret

我的问题是我们如何确保这一预测?我们如何配置这样的东西,以便任何人都可以在没有superSecretValue字段的情况下检索Person实体……但只有具有特定角色的人(例如,ROLE_ADMIN)才能使用投影来检索隐藏字段?

我发现了使用@PreAuthorize或@Secured注释来保护Spring Data JPA存储库CRUD方法(例如save(),delete())的无尽例子……但没有关于如何限制使用Spring Data REST投影的示例.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值