在 Grails 中用自己的方法扩展 SpEL?

2024-02-07

我想在 Grails 应用程序中添加自定义 SpELL 方法,就像为普通 Spring-Security 应用程序所做的那样这个问题 https://stackoverflow.com/questions/6632982/how-to-create-custom-methods-for-use-in-spring-security-expression-language-anno,通过覆盖评价语境 http://static.springsource.org/spring/docs/3.0.x/reference/expressions.html。这行得通吗?

我该如何插入global-method-security进入安全配置?我可以配置安全性 http://grails-plugins.github.com/grails-spring-security-core/docs/manual/guide/22%20Miscellaneous%20Properties.html,但是那里要添加什么?就像是

grails.plugins.springsecurity = {
    'global-method-security' {
        'expression-handler' {
            ref("myMethodSecurityExpressionHandler")
        }
    }
}

?但是什么代码会解释它呢?

调查SpringSecurityCoreGrailsPlugin.groovy也没有给我任何见解。


仅当您还安装了 spring-security-acl 插件时才可用。它配置了expressionHandler bean:

expressionHandler(DefaultMethodSecurityExpressionHandler) {
   parameterNameDiscoverer = ref('parameterNameDiscoverer')
   permissionEvaluator = ref('permissionEvaluator')
   roleHierarchy = ref('roleHierarchy')
   trustResolver = ref('authenticationTrustResolver')
}

所以如果你有自己的子类DefaultMethodSecurityExpressionHandler你可以更换豆子resources.groovy像这样:

import com.mycompany.myapp.MyMethodSecurityExpressionHandler

beans = {
   expressionHandler(MyMethodSecurityExpressionHandler) {
      parameterNameDiscoverer = ref('parameterNameDiscoverer')
      permissionEvaluator = ref('permissionEvaluator')
      roleHierarchy = ref('roleHierarchy')
      trustResolver = ref('authenticationTrustResolver')
   }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Grails 中用自己的方法扩展 SpEL? 的相关文章

随机推荐