Как получить параметры метода контроллера при использовании закрытия @Secured?
Я успешно настроил приложение Grails для аутентификации пользователя.
Я сопоставляю аргументы метода контроллера, используя URL-параметры, в моем UrlMappings.groovy:
"/$source/owner/$ownerId/show"(controller:"myController", action: "show", method: "GET")
Как получить значения $source и $ownerId в моем закрытии @Secured?
Мой метод контроллера выглядит так:
@Secured(closure = {
//null
def testSource = params.source
//also null
def testOwnerId = params.ownerId
//null
def owner = request.ownerId
//null
def owner2 = request.getParameter('ownerId')
//contains only query string params
def grailsParams = request['org.codehaus.groovy.grails.WEB_REQUEST']?.params
return true
})
def show(String source, String ownerId) {
...
}
Как я могу получить эти значения? Что я делаю не так, здесь?
Я думал, что этот пост даст решение, но ответ, данный там, не работает для меня:
Я использую следующие Grails и версии плагинов:
grails 2.5.1
compile ":spring-security-core:2.0-RC5"
compile ":spring-security-rest:1.5.3", {
excludes 'com.fasterxml.jackson.core:jackson-databind:'
}
1 ответ
Краткое описание:
использование request.getParameter
Подробности:
В 2.0 вы можете использовать замыкание в качестве проверки аннотации; краткая рецензия и пример в документации: https://grails-plugins.github.io/grails-spring-security-core/v2/guide/newInV2.html
Вы бы выразили свой пример так:
@Secured(closure={
request.getParameter('ownerId') >=123 //this is example
})
Вернуть true
разрешить доступ, false
запретить доступ.