gpt4 book ai didi

java - Spring security 3.2 - @PostAuthorize 表达式根据方法的返回对象评估主体

转载 作者:行者123 更新时间:2023-11-29 03:17:57 26 4
gpt4 key购买 nike

我使用 spring security 来保护和评估@PostAuthorize 和@PreAuthorize 注释中的表达式以授权服务方法。我有一个要求,需要检查返回的对象是否具有已登录系统并正在调用此方法的相同用户标识。

// this allows the ids of other users too
@PostAuthorize("#returnObject!=null?returnObject.userId==principal.account.acid:true")
public AudioClip findAudioClip(int clipId) {
.....
AudioClip clip = dao.findById(clipId);
// may also be null
return clip;
}

音频剪辑.java

@Component
public class AudioClip implements java.io.Serializable {

private java.math.BigDecimal id;
private java.lang.Integer userId;
.....
}

从数据库中获取的对象包含创建此数据库对象的用户 ID。因此,只有他有资格访问该组件。如何比较returnObject.userId和已经登录系统的userid?

最佳答案

@holmis,正如您所指出的,罪魁祸首是代码中的#!这段代码

@PostAuthorize("returnObject!=null?returnObject.userId==principal.account.aid:true")

有效!

关于java - Spring security 3.2 - @PostAuthorize 表达式根据方法的返回对象评估主体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25405373/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com