Фильтры запроса Grails: каков источник этого таинственного метода авторизации? - PullRequest
1 голос
/ 23 апреля 2011

Я создаю собственный класс фильтра аутентификации в Grails. Это работает, но меня беспокоит, что я не знаю , почему это работает.

В следующем фильтре запросов Grails, где и как определяется метод "роль"? Он должен быть частью плагина Nimble для Grails, но я не вижу его в NimbleFilterBase, который расширяет мой класс фильтра.

public class MySecurityFilters extends MyCustomExtensionOfNimbleFilterBase {
    def filters = {
        reports(controller: 'foo', action: 'bar') {
            before = {
                accessControl {
                    role('Administrator')
                }
            }
        }

Кроме того, что именно представляет собой блок "accessControl"? Это встроенная часть Grails, или что-то, что каким-то образом обеспечивает Nimble, или просто механизм случайного поиска, от которого я мог бы избавиться?

Спасибо!

Ответы [ 2 ]

2 голосов
/ 23 апреля 2011

Nimble использует Shiro, и это функции Shiro. Смотрите документы на http://grails.org/plugin/shiro

Метод accessControl подключен к MetaClass с помощью ShiroGrailsPlugin в doWithDynamicMethods () - см. http://plugins.grails.org/grails-shiro/trunk/ShiroGrailsPlugin.groovy

Метод роли определен в http://plugins.grails.org/grails-shiro/trunk/src/groovy/org/apache/shiro/grails/FilterAccessControlBuilder.groovy

0 голосов
/ 05 ноября 2012
...