Nur, damit ich es selbst im Kopf behalte… die Filterkette in Grails ist ja richtig kompliziert! Sie läuft in folgender Reihenfolge ab:
- Servlet Filter before chain.doFilter() (Acegi runs here)
- GrailsDispatcherServlet.doDispatch() starts
- Spring MVC Interceptors preHandle() (OSIVI opens session)
- Grails Filters „before“ closure
- Controller beforeInterceptor
- Controller action
- Controller afterInterceptor
- Grails Filters „after“ closure
- Spring MVC Interceptors postHandle
- View rendering
- Grails Filters „afterView“ closure
- Spring MVC Interceptors afterCompletion() (OSIVI closes session)
- Grails DispatcherServlet.doDispatch() ends
- Servlet Filter after chain.doFilter() (Sitemesh runs here)
Uff!