gpt4 book ai didi

java - 是否可以在自定义 PreAuthorize 方法中获取 RequestMethod-verb?

转载 作者:行者123 更新时间:2023-12-02 04:56:57 25 4
gpt4 key购买 nike

我正在使用带有@PreAuthorize的自定义访问检查器:

@RestController
@RequestMapping("/users")
public class Users {

@PreAuthorize("@customAccessChecker.hasAccessToMethod('USERS', 'GET')")
@RequestMapping(method = RequestMethod.GET)
User getUsers() {
...
}

@PreAuthorize("@customAccessChecker.hasAccessToMethod('USERS', 'POST')")
@RequestMapping(method = RequestMethod.POST)
User addUser() {
...
}
}

我想删除 @PreAuthorize 注释中的字符串“GET”和“POST”。是否可以以某种方式获取 @RequestMapping 中使用的 RequestMethod 作为 hasAccessToMethod 的变量输入?

最佳答案

我不记得从注释中获取数据的 SpEL 表达式,但您可以使用 SpEL 通过 # 字符从方法的参数中获取值。注入(inject)HttpServletRequest,它有一个getMethod方法,其中包含您想要的内容。

@PreAuthorize("@customAccessChecker.hasAccessToMethod('USERS', #request.method)")
@RequestMapping(method = RequestMethod.POST)
User addUser(HttpServletRequest request) {
// ...
}

关于java - 是否可以在自定义 PreAuthorize 方法中获取 RequestMethod-verb?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44561544/

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