gpt4 book ai didi

java - 当 SpringSecurity 找不到传入 token 时,阻止 SpringSecurity 发送自动 401

转载 作者:行者123 更新时间:2023-12-02 05:42:52 27 4
gpt4 key购买 nike

考虑向 Controller 发出 GET 请求,然后 Controller 从数据库加载资源。想象数据库资源有一个标志。该标志设置资源是否是公共(public)的。如果资源标志为 true,则返回资源。如果资源公共(public)标志设置为 false,则检查传入用户是否是该资源的正确所有者。如果用户不属于这种情况,请发送 401。

如何配置 Spring Security 来解决此用例?

最佳答案

正如前面提到的,您可以使用@PostAuthorize

例如,假设您有一个服务方法,该方法返回一个具有 publicFlagowner 字段的 DatabaseResource,则以下代码将抛出AccessDeniedException 如果 publicFlag == falseowner !=authentication.name

@PostAuthorize("returnObject.publicFlag == true 
|| returnObject.owner == authentication.name")
public DatabaseResource returnResource() {
// load the resource...
return databaseResource;
}

关于java - 当 SpringSecurity 找不到传入 token 时,阻止 SpringSecurity 发送自动 401,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56122181/

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