URL直たたき対策といっていいのかこの機能、的な機能案
Pageクラス単位で遷移元と遷移先を限定できるような機能を
作ろうかと思います.あくまで予定w
で、見てもらったほうが早い.
@AllowFrom(MenuPage.class); @AllowTo({HogeResult2Page.class, OtherPage.class}) public class HogePage { public Class doHoge() { return HogeResultPage.class; } }
<component class="org.seasar.teeda.extension.policy.TeedaPolicy"> <property name="level">Level.DENY_ALL</property> <property name="behavior">Behavior.RESTRICTED</property> </component>
上記のPageクラスのように記述すると、HogePageは
・MenuPageから遷移可能
・HogeResultPage、HogeResult2Page、OtherPageへ遷移可能
一般的にはTeedaは空気読む系フレームワークなので、doXxx()で
記述されているものはAllowToで書かなくても大丈夫ですが、
goで遷移したときはしょうがないので、記述してもらおうかなと.
もしかしたら、AllowFromとTo両方記述させてますが、どちらかだけでええかも.
で、Pageクラスだけだと単一の挙動の定義になってしまうので、
アプリケーション全体でALLOW_ALLとかDENY_ALLとか定義できれば
ええかなと.更にDENYとかに引っかかった場合に、どのような振るまいを
するかを決めておけば更に良い感じ.
例えば、
・RESTRICTED その場で例外エラー
・NORMAL あるPageに遷移.たとえばMenuとかLoginとか.
・EASY ロギング
ちなみに、HOTデプロイのときはスルーさせようかなと思います.