gpt4 book ai didi

grails - 将 Spring Security 应用于插件

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

我正在开发一个插件来提供一些特定的功能。插件“拥有一切”:完整的垂直切片(服务、 Controller 、领域类、GSP)。在插件级别不使用安全性。

现在我想将插件集成到主应用程序中,并应用一些安全规则,如 @Secured(['ROLE_SUPER'])

我现在做的方式不太优雅:

@Secured(['ROLE_SUPER'])
class SomeController extends SomePluginController {}

这种零值代码的数量随着 Controller 数量的增加而增加。

这里有什么可以改进的?

TIA

更新:grails.plugin.springsecurity.controllerAnnotations.staticRules 映射不起作用。

我有一个插件 AggregationPlugin,里面有 TaskController 和 index-action。

我试着这样说:

  grails.plugin.springsecurity.controllerAnnotations.staticRules = [
'/task/**': ['ROLE_SUPER'],
'/aggregation/**': ['ROLE_SUPER'],
'/plugins/aggregation-0.1/**': ['ROLE_SUPER'],
]

但我仍然可以匿名访问该页面。

我正在使用 Grails 1.3.7spring-security-core 1.2.7.2

更新#2:

所以,经过一番尝试,我找到了最优雅的解决方案。 staticRules 由于某种原因在我的设置中不起作用并且可能变得非常大,如果您有许多插件应用安全性,我向插件添加了一个依赖项,而不是 staticRules :

compile( 'org.springframework.security:spring-security-core:3.0.7.RELEASE' )

这样我现在就可以在我的 Controller 中使用 @Secured 而无需整个安全插件。安装到主应用程序后,安全插件会自动选择它们。

最佳答案

您可以将插件 Controller 的配置放在 Config.groovy 中:

grails.plugins.springsecurity.controllerAnnotations.staticRules = [
'/somePlugin/': ['ROLE_SUPER']
]

查看 official docs ,向下滚动到 controllerAnnotations.staticRules 部分。

关于grails - 将 Spring Security 应用于插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19515270/

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