I am using filters to handle authentication and some other pre-condition checks for a Grails application. I've run into a situation where it'd be nice to ensure that filter A is always invoked before filter B.
According to the documentation the "filters are executed in the order they are defined" but it is unclear what that definition refers to. I am familiar with how that works for Java EE ServletFilters, where the sequence is declared by the order of corresponding tags in the web.xml, but as the deployment is handled automatically in Grails, I am not really sure where I could influence the order in which the filters are set up.
Is that possible at all in Grails, and if so, how?
Update
If several filters are declared within one class, it's obvious that they'll be executed in the order that they were declared. I am more concerned with filters defined in different classes and the sequence that those classes will be considered in.
Molske is correct that they're executed in the order defined in the class. One exception is that the first 'before' filter that returns false stops processing.
There's also a new configuration option 'dependsOn' that you can use to order different filter classes, i.e. that MyFilters2 runs after MyFilters1. See "6.6.4 Filter Dependencies" at http://grails.org/doc/latest/
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With