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デプロイのときはスルーさせようかなと思います.