Какова последовательность вызова Grails определены фильтры

Я использую фильтры для обработки аутентификации и некоторых других проверок предварительных условий для Применение Грааля. Я столкнулся с ситуацией, когда было бы неплохо убедиться, что фильтр A всегда вызывается перед фильтром B.

Согласно документации, « фильтры выполняются в порядке их определения » но неясно, к чему относится это определение. Я знаком с тем, как это работает для Java EE ServletFilters, где последовательность объявляется в порядке соответствующих тегов в web.xml, но поскольку развертывание выполняется автоматически в Grails, я не совсем уверен, где я мог повлиять на порядок в котором настроены фильтры.

Возможно ли это вообще в Grails, и если да, то как?

Update

Если в одном классе объявлено несколько фильтров, очевидно, что они будут выполняться в порядок, которым они были объявлены. Меня больше интересуют фильтры, определенные в разных классах, и последовательность, в которой эти классы будут рассматриваться.

11
задан Arjan Tijms 25 July 2013 в 06:54
поделиться

2 ответа

Молске правильно, что они выполняются в порядок, определенный в классе. Единственным исключением является то, что первый фильтр «до», возвращающий ложные данные, прекращает обработку.

Также есть новый параметр конфигурации «зависит от», который можно использовать для упорядочивания различных классов фильтров, т.е. MyFilters2 запускается после MyFilters1. См. «6.6.4 Зависимости фильтров» на http://grails.org/doc/latest/

7
ответ дан 3 December 2019 в 10:02
поделиться
class MyFilters {
  def filters = {
    myFilter2(controller:'*', action:'*') {}
    myFilter1(controller:'*', action:'*') {}
  }
}

В приведенном примере сначала будет выполнен myFilter2, а затем myFilter1.

В каком порядке фильтры определены в filters-class, в таком порядке они и выполняются.

0
ответ дан 3 December 2019 в 10:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: