gpt4 book ai didi

grails - 是否可以破解spring-security-core插件@Secured批注,以能够引用提供给 Controller 的请求参数?

转载 作者:行者123 更新时间:2023-12-02 14:19:26 26 4
gpt4 key购买 nike

我正在使用Grails 2.3.3spring-security-core:2.0-RC4插件。

我试图通过保护方法来保护 Controller 行为,具体取决于来自带有参数的服务的方法调用的结果。此参数应在请求参数内。

我希望能够执行以下操作:

@Secured("@mySecurityService.myCustomCheck(params.id)")
def myAction(){
//do some things
}

我设法能够做到以下几点:
@Secured("@mySecurityService.myCustomCheck()")

但是现在我不知道如何访问发送到 Controller 的请求参数。

在架构上甚至可以在o​​jit_code表示法中引用 params变量吗?

PS:我知道您会要求我使用 @Secured插件。我的问题是,它还会添加一些我认为不需要的其他内容。

最佳答案

在2.0中,您可以使用闭包作为注释的检查。在文档中有一个简短的文章和示例:https://grails-plugins.github.io/grails-spring-security-core/v2/guide/newInV2.html

您可以这样表达您的示例:

@Secured(closure={
ctx.mySecurityService.myCustomCheck(
request.getParameter('id'))
})

返回 true以允许访问。

注意 ApplicationContext可以作为 ctx变量使用,而请求则可以作为 request使用;这是使用SpEL时可用的其他变量和方法的补充(有关详细信息,请参见Spring Security文档)。 params不可用,但是您可以使用 request.getParameter访问值

关于grails - 是否可以破解spring-security-core插件@Secured批注,以能够引用提供给 Controller 的请求参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26658172/

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