how can I use @Secured annotation on controller action closures in spring 3.1.2 and grails 3.0.17?

208 Views Asked by At

in my old grails 2.4.4 / spring-security-core:2.0-RC4 I secured controller action closures in my config.groovy as following and it was working :

grails.plugin.springsecurity.controllerAnnotations.staticRules = [
        '/dbconsole/**': [org.somthing.somthing.core.model.types.PermissionName.WEB_LOGIN],
        '/account/createaccount': [org.somthing.somthing.core.model.types.PermissionName.ACCOUNT_CREATE],

]

in grails 3.0.17 / spring-security-core:3.1.2 in application.groovy I changed to:

grails.plugin.springsecurity.controllerAnnotations.staticRules = [
[pattern: '/dbconsole/**',          access: [org.somthing.somthing.core.model.types.PermissionName.WEB_LOGIN]],
        [pattern: '/account/createaccount',   access: [org.somthing.somthing.core.model.types.PermissionName.ACCOUNT_CREATE]],
]

and I am having this error now

Caused by: org.springframework.expression.spel.SpelEvaluationException: EL1008E:(pos 0): Property or field 'org' cannot be found on object of type 'org.springframework.security.web.access.expression.WebSecurityExpressionRoot' - maybe not public?
        at org.springframework.expression.spel.ast.PropertyOrFieldReference.readProperty(PropertyOrFieldReference.java:224) ~[spring-expression-4.1.8.RELEASE.jar:4.1.8.RELEASE]
        at org.springframework.expression.spel.ast.PropertyOrFieldReference.getValueInternal(PropertyOrFieldReference.java:94) ~[spring-expression-4.1.8.RELEASE.jar:4.1.8.RELEASE]
        at org.springframework.expression.spel.ast.PropertyOrFieldReference.getValueInternal(PropertyOrFieldReference.java:81) ~[spring-expression-4.1.8.RELEASE.jar:4.1.8.RELEASE]
        at org.springframework.expression.spel.ast.CompoundExpression.getValueRef(CompoundExpression.java:51) ~[spring-expression-4.1.8.RELEASE.jar:4.1.8.RELEASE]
        at org.springframework.expression.spel.ast.CompoundExpression.getValueInternal(CompoundExpression.java:87) ~[spring-expression-4.1.8.RELEASE.jar:4.1.8.RELEASE]
        at org.springframework.expression.spel.ast.SpelNodeImpl.getTypedValue(SpelNodeImpl.java:131) ~[spring-expression-4.1.8.RELEASE.jar:4.1.8.RELEASE]
        at org.springframework.expression.spel.standard.SpelExpression.getValue(SpelExpression.java:299) ~[spring-expression-4.1.8.RELEASE.jar:4.1.8.RELEASE]
        at org.springframework.security.access.expression.ExpressionUtils.evaluateAsBoolean(ExpressionUtils.java:11)

any idea ?

0

There are 0 best solutions below