3 Stimmen

Erweiterung von SpEL mit eigenen Methoden in Grails?

Ich würde gerne benutzerdefinierte SpEL-Methoden in einer Grails-Applikation hinzufügen, so wie es für eine einfache Spring-Security-Applikation in dieser Frage getan wird, indem EvaluationContext überschrieben wird. Wird das funktionieren?

Wie binde ich global-method-security in die Sicherheitskonfiguration ein? Ich kann die Sicherheit konfigurieren, aber was muss ich dort hinzufügen? Etwas wie

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

? Aber welcher Code wird das interpretieren?

Ein Blick in SpringSecurityCoreGrailsPlugin.groovy gibt mir auch keine Erkenntnisse.

2voto

Burt Beckwith Punkte 74817

Dies ist nur verfügbar, wenn Sie auch das Spring-Security-ACL-Plugin installiert haben. Es konfiguriert das expressionHandler Bean:

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

Wenn Sie also Ihre eigene Unterklasse von DefaultMethodSecurityExpressionHandler haben, können Sie das Bean in resources.groovy wie folgt ersetzen:

import com.mycompany.myapp.MyMethodSecurityExpressionHandler

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

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X