Name
Password

トランザクショントークン

  • 2008-10-28 02:15:04

YmirにはStrutsと同様のトランザクショントークン機能があります。トランザクショントークン機能はバリデーションの一種として実現されています。

正当なトランザクショントークンを持たないsubmitを受け付けないようにするためには、formタグにトランザクショントークンを埋め込んでおく必要があります。

トランザクショントークンを埋め込むには以下のようにします。

<form ...>
  <input tal:attributes="name token/name; value token/value" type="hidden" />
  ...
</form>

このformからのsubmitを受け付ける側のアクションには、org.seasar.ymir.token.constraint.annotation.TokenRequiredアノテーションを付与しておきます。

@TokenRequired
public void _post() {
}

リクエストパラメータとして渡されたトークンが正当でない場合は、通常のバリデーション失敗の場合と同様の処理が行なわれます。

なおリクエストパラメータとして渡されたトークンが正当であってもなくても、セッションからトークンが削除されます。