Фильтры запроса Grails: каков источник этого таинственного метода авторизации?

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

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

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

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

Спасибо!

2 ответа

Решение

Проворный использует Широ, и это функции Широ. Смотрите документы на 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

Другие вопросы по тегам