ダウンロード
Magazine
開発
アカウント
ダウンロード
Magazine
開発
ログイン
アカウント/パスワードを忘れた
アカウント作成
言語
ヘルプ
言語
ヘルプ
×
ログイン
ログイン名
パスワード
×
アカウント/パスワードを忘れた
日本語の翻訳状況
カテゴリ:
ソフトウェア
人物
PersonalForge
Magazine
Wiki
検索
OSDN
>
ソフトウェアを探す
>
システム
>
TERASOLUNA Framework
>
フォーラム
>
公開討議
>
ajax、validationによる謎のトークンエラーについて
TERASOLUNA Framework
概要
プロジェクト概要
開発ダッシュボード
Webページ
開発メンバー
画像ギャラリー
公開フィード一覧
活動
統計情報
活動履歴
ダウンロード
リリース一覧
統計
ソースコード
コードリポジトリリスト
Subversion
リポジトリ閲覧
チケット
チケット一覧
マイルストーン一覧
チケットの種類一覧
コンポーネント一覧
よく使われるチケット一覧のリスト/RSS
新規チケット登録
文書
Wiki
FrontPageの表示
ページ一覧
最近の更新
文書マネージャ
文書一覧
コミュニケーション
フォーラム
フォーラム一覧
公開討議 (1277)
メーリングリスト
MLの一覧
terasoluna-information
ニュース
フォーラム:
公開討議
(スレッド #36278)
話題(スレッド)一覧に戻る
RSS
ajax、validationによる謎のトークンエラーについて (2014-12-10 15:32 by
anonymous
#75013)
返信
チケットに引用
いつもお世話になっております。
トークンチェックに悩まされており、ご質問をさせてください
ある親画面からJQueryを使ったモーダルの子画面を生成し、子画面での情報を親画面に引き込むような処理を実装しています。
子画面ではajaxによる非同期処理でvalidationを使った入力チェックを実装しているのですが、以下の流れで想定外のトークンチェックエラーが発生をしてしまいます。
①親画面から子画面(モーダル)を生成
↓
②子画面でvalidationエラーを発生させる
↓
③子画面でvalidationエラーとならない処理を行う
↓
④子画面を閉じる
↓
⑤親画面でトークンチェックを行っているアクションを実行
↓
⑥トークンエラー
子画面での処理は全てsaveTokenはfalseにしてサーバのトークンが変わらないようにしてあるので、親画面でのトークンでトークンエラーとなる理由がわかりません、、
なお、②の処理を行わない、または③の処理を行わない
であれば発生をせず②③両方の処理を行った際のみ発生をします
原因及び対応方法についてご教示頂きたく
メッセージ #75013 への返信
×
題名
本文
メッセージ #75013 への返信 > いつもお世話になっております。 > > トークンチェックに悩まされており、ご質問をさせてください > > ある親画面からJQueryを使ったモーダルの子画面を生成し、子画面での情報を親画面に引き込むような処理を実装しています。 > > 子画面ではajaxによる非同期処理でvalidationを使った入力チェックを実装しているのですが、以下の流れで想定外のトークンチェックエラーが発生をしてしまいます。 > > ①親画面から子画面(モーダル)を生成 > ↓ > ②子画面でvalidationエラーを発生させる > ↓ > ③子画面でvalidationエラーとならない処理を行う > ↓ > ④子画面を閉じる > ↓ > ⑤親画面でトークンチェックを行っているアクションを実行 > ↓ > ⑥トークンエラー > > 子画面での処理は全てsaveTokenはfalseにしてサーバのトークンが変わらないようにしてあるので、親画面でのトークンでトークンエラーとなる理由がわかりません、、 > > なお、②の処理を行わない、または③の処理を行わない > であれば発生をせず②③両方の処理を行った際のみ発生をします > > 原因及び対応方法についてご教示頂きたく
Wiki文法は使えません
ログインしていません。投稿を区別するために投稿者のニックネームをつけてください(ニックネームの一意性は保証されません。全く別の人も同じ名前を利用することが可能ですので本人であることの特定には利用できません。本人であることを保証したい場合にはログインして投稿を行なってください)。
ログインする
ニックネーム
プレビュー
投稿
キャンセル
Re: ajax、validationによる謎のトークンエラーについて (2014-12-12 17:19 by
futamuraa
#75029)
返信
チケットに引用
恐れ入りますが、ご利用中のFWの種類、及び、バージョンを教えて頂けないでしょうか?
#75013
への返信
メッセージ #75029 への返信
×
題名
本文
メッセージ #75029 への返信 > 恐れ入りますが、ご利用中のFWの種類、及び、バージョンを教えて頂けないでしょうか?
Wiki文法は使えません
ログインしていません。投稿を区別するために投稿者のニックネームをつけてください(ニックネームの一意性は保証されません。全く別の人も同じ名前を利用することが可能ですので本人であることの特定には利用できません。本人であることを保証したい場合にはログインして投稿を行なってください)。
ログインする
ニックネーム
プレビュー
投稿
キャンセル
Re: ajax、validationによる謎のトークンエラーについて (2014-12-12 19:21 by
anonymous
#75030)
返信
チケットに引用
大変失礼いたしました。
TERASOLUNA Server Framework for Java WEB 2.0.5.0
を利用しております。
#75029
への返信
メッセージ #75030 への返信
×
題名
本文
メッセージ #75030 への返信 > 大変失礼いたしました。 > TERASOLUNA Server Framework for Java WEB 2.0.5.0 > を利用しております。
Wiki文法は使えません
ログインしていません。投稿を区別するために投稿者のニックネームをつけてください(ニックネームの一意性は保証されません。全く別の人も同じ名前を利用することが可能ですので本人であることの特定には利用できません。本人であることを保証したい場合にはログインして投稿を行なってください)。
ログインする
ニックネーム
プレビュー
投稿
キャンセル
Re: ajax、validationによる謎のトークンエラーについて (2014-12-19 11:29 by
futamuraa
#75070)
返信
チケットに引用
承知いたしました。
五月雨の質問となり、大変恐縮ですが、
「WE-01 アクション拡張機能」のトランザクショントークンチェックを使用されていますか?
#75030
への返信
メッセージ #75070 への返信
×
題名
本文
メッセージ #75070 への返信 > 承知いたしました。 > 五月雨の質問となり、大変恐縮ですが、 > 「WE-01 アクション拡張機能」のトランザクショントークンチェックを使用されていますか?
Wiki文法は使えません
ログインしていません。投稿を区別するために投稿者のニックネームをつけてください(ニックネームの一意性は保証されません。全く別の人も同じ名前を利用することが可能ですので本人であることの特定には利用できません。本人であることを保証したい場合にはログインして投稿を行なってください)。
ログインする
ニックネーム
プレビュー
投稿
キャンセル
Re: ajax、validationによる謎のトークンエラーについて (2014-12-23 15:49 by
anonymous
#75083)
返信
チケットに引用
はい。使用しています。
Terasoluna IDE3を使って開発を行っています。
#75070
への返信
メッセージ #75083 への返信
×
題名
本文
メッセージ #75083 への返信 > はい。使用しています。 > Terasoluna IDE3を使って開発を行っています。
Wiki文法は使えません
ログインしていません。投稿を区別するために投稿者のニックネームをつけてください(ニックネームの一意性は保証されません。全く別の人も同じ名前を利用することが可能ですので本人であることの特定には利用できません。本人であることを保証したい場合にはログインして投稿を行なってください)。
ログインする
ニックネーム
プレビュー
投稿
キャンセル
Re: ajax、validationによる謎のトークンエラーについて (2014-12-24 17:29 by
futamuraa
#75092)
返信
チケットに引用
> ⑤親画面でトークンチェックを行っているアクションを実行
こちらでアクションを実行する際のリクエストで、
クライアント側からトランザクショントークンが送信されているでしょうか。
クライアント側からトークンが送信されていない場合、
サーバ側のセッションで保持されているトークンと不一致となり、
「トークンエラー」となっている可能性があります。
より具体的には、
親画面でのトークンチェックを行っているアクションを起動するリクエストパラメータが
リクエストパラメータ名:org.apache.struts.taglib.html.TOKEN
リクエストパラメータ値:<トークン値>
という形式でサーバ側に渡されている必要があります。
この形式でリクエストパラメータがサーバ側に送信されているにもかかわらず
トークンエラーとなる場合ですが、
上記<トークン値>はサーバ側によるsaveToken()が
行われた際に値が入れ替わるため、直近のsaveToken()で払い出された値をクライアント側で送信する必要があります。
特にAjaxによる画面遷移とは非同期のリクエスト送信を行っている場合、
親子画面の構成を問わず、
サーバ側のセッションで保持されているトークンが途中で差し替わっていないこと、
またセッションを破棄される操作が行われていないか(ログアウト処理やセッションタイムアウトが該当します)
をご確認ください。
(現在の)サーバ側のトークン値は HttpSessionに対し、
HttpSession#getAttribute("org.apache.struts.action.TOKEN") を実行することで採取することができます。
#75083
への返信
メッセージ #75092 への返信
×
題名
本文
メッセージ #75092 への返信 > > ⑤親画面でトークンチェックを行っているアクションを実行 > > こちらでアクションを実行する際のリクエストで、 > クライアント側からトランザクショントークンが送信されているでしょうか。 > > クライアント側からトークンが送信されていない場合、 > サーバ側のセッションで保持されているトークンと不一致となり、 > 「トークンエラー」となっている可能性があります。 > > より具体的には、 > 親画面でのトークンチェックを行っているアクションを起動するリクエストパラメータが > > リクエストパラメータ名:org.apache.struts.taglib.html.TOKEN > リクエストパラメータ値:<トークン値> > > という形式でサーバ側に渡されている必要があります。 > > この形式でリクエストパラメータがサーバ側に送信されているにもかかわらず > トークンエラーとなる場合ですが、 > 上記<トークン値>はサーバ側によるsaveToken()が > 行われた際に値が入れ替わるため、直近のsaveToken()で払い出された値をクライアント側で送信する必要があります。 > > 特にAjaxによる画面遷移とは非同期のリクエスト送信を行っている場合、 > 親子画面の構成を問わず、 > サーバ側のセッションで保持されているトークンが途中で差し替わっていないこと、 > またセッションを破棄される操作が行われていないか(ログアウト処理やセッションタイムアウトが該当します) > をご確認ください。 > > (現在の)サーバ側のトークン値は HttpSessionに対し、 > HttpSession#getAttribute("org.apache.struts.action.TOKEN") を実行することで採取することができます。
Wiki文法は使えません
ログインしていません。投稿を区別するために投稿者のニックネームをつけてください(ニックネームの一意性は保証されません。全く別の人も同じ名前を利用することが可能ですので本人であることの特定には利用できません。本人であることを保証したい場合にはログインして投稿を行なってください)。
ログインする
ニックネーム
プレビュー
投稿
キャンセル