slim3でモデルとコントローラのフックをするには

コントローラのフック

slim3を使うとorg.slim3.controller.Controllerを継承してコントローラを作ることになるけど、全コントローラで共通の処理をするにはどうすれば良いのだろう?ログイン制御で未ログインの状態の場合は自動でログイン画面に遷移するようにしたい。
Controllerを継承した抽象クラスを間に挟ませて処理をするのが適当なんだろうか?それともslim3のfrontControllerとは別のフィルタを使った方が良いのだろうか?

追記:
slim3のController#runはabstractなので単純に処理をフックするのは難しい?Controller#setUpなんてメソッドもあるけど、これで遷移の制御まではできないみたい。

モデルのフック

Google App Engineでは標準でモデル操作に対するフックを書く機構がある。 http://appengine-cookbook.appspot.com/recipe/createdupdated-timestamps しかしこの方法だと、いろいろとインタフェースを書く必要があったりしてコード量が増える。
slim3の場合はdaoを使ってモデルを操作することになるのでdaoに必要な処理(例えばタイムスタンプの記録)を記述すればなんとかできる。こっちの方が全体的なコード量は少なく抑えられるので良いかもしれない。

追記:
なにやらモデルをセッションに入れた場合にClassCastExceptionが起きてなんだろう?と思ってたんだけど、どうやら既知の問題みたい。
http://groups.google.co.jp/group/slim3-user-japan/browse_thread/thread/8e70aba5bfd34424?pli=1