Package nablarch.common.web.token
Class TokenUtil
java.lang.Object
nablarch.common.web.token.TokenUtil
トークンを使用した二重サブミットの防止機能のユーティリティ。
なお、トークンは ExecutionContext#getSessionScopeMap で獲得可能なMapではなく、
HttpSession に直接格納する。
これは、SessionConcurrentAccessHandler と併用した場合、トークンはリクエストスレッド毎の
スナップショット上に保持されるので、本来エラーとなるタイミングでも並行実行されてしまう可能性
が発生するためである。
- Author:
- Kiyohito Itoh
-
Method Summary
Modifier and TypeMethodDescriptionstatic String
トークンを生成し、セッションスコープに設定する。
トークンの生成は、リクエストスコープに対して一度だけ行い、リクエストスコープ内では一度生成したトークンを使いまわす。static TokenGenerator
static boolean
isValidToken
(HttpRequest request, ExecutionContext context) リクエストパラメータのトークンが有効であるかを判定する。 (注意) 本メソッドはVM単位での同期となる。 ただし、処理内容は軽微かつブロックするような箇所もないので、ボトルネックとなることは無い。
-
Method Details
-
generateToken
トークンを生成し、セッションスコープに設定する。
トークンの生成は、リクエストスコープに対して一度だけ行い、リクエストスコープ内では一度生成したトークンを使いまわす。- Parameters:
request
- リクエスト- Returns:
- 生成したトークン
-
getTokenGenerator
- Returns:
TokenGenerator
-
isValidToken
@Published(tag="architect") public static boolean isValidToken(HttpRequest request, ExecutionContext context) throws ClassCastException リクエストパラメータのトークンが有効であるかを判定する。 (注意) 本メソッドはVM単位での同期となる。 ただし、処理内容は軽微かつブロックするような箇所もないので、ボトルネックとなることは無い。- Parameters:
request
- リクエストcontext
- コンテキスト- Returns:
- トークンが有効な場合はtrue、有効でない場合はfalse
- Throws:
ClassCastException
- Webコンテナ外で本メソッドが実行された場合。
-