Nur, damit ich es selbst im Kopf behalte… die Filterkette in Grails ist ja richtig kompliziert! Sie läuft in folgender Reihenfolge ab:

  1. Servlet Filter before chain.doFilter() (Acegi runs here)
  2. GrailsDispatcherServlet.doDispatch() starts
  3. Spring MVC Interceptors preHandle() (OSIVI opens session)
  4. Grails Filters „before“ closure
  5. Controller beforeInterceptor
  6. Controller action
  7. Controller afterInterceptor
  8. Grails Filters „after“ closure
  9. Spring MVC Interceptors postHandle
  10. View rendering
  11. Grails Filters „afterView“ closure
  12. Spring MVC Interceptors afterCompletion() (OSIVI closes session)
  13. Grails DispatcherServlet.doDispatch() ends
  14. Servlet Filter after chain.doFilter() (Sitemesh runs here)

Uff!