tkusukawa / kusu

Automatically exported from code.google.com/p/kusu
0 stars 0 forks source link

Redmine 0.8.7 でチケットを追加できない。 #12

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
こんにちは。

Redmine 0.8.7 でworktime 
pluginのチケット登録機能がエラーになったのでご報告
です。

確認したWokrTimeプラグインのバージョンは0.0.53です。

チケット追加画面でチケット番号を指定して追加しようと��
�たところ、
ActionController::InvalidAuthenticityToken in Work
timeController#ajax_insert_daily

となりました。

Ajax系のリクエストはほとんどエラーになってます。これはR
edmine 0.8.7でCSRF対
策が施された影響です。POSTリクエストには必ずauthenticity_tok
enというフィー
ルドが必要になりました。私のブログにも少し書いている��
�でご参考に。
http://haruiida.blogspot.com/2009/11/redmine-wiki-extensions-plugin-0151.html

修正方法としては3つあります。

1. controllerに1行
skip_before_filter :verify_authenticity_token
と追加する。一番簡単な方法。ただしセキュリティチェッ��
�をスキップすることに
なるのでお勧めではありません。

2. POSTではなくGETに変更する。
Ajax.UpdaterはデフォルトでPOSTメソッドなので引数にmethod:"get" 
を指定して
GETメソッドに変更すればセキュリティチェック対象から外��
�ます。一番リーズナブ
ルな修正方法だと思います。

3. authenticity_tokenをパラメータに追加する。
指定する値はform_authenticity_tokenというメソッドで取得できま
す。

とりあえず私の会社では1番の方法で対処して使ってます。

Original issue reported on code.google.com by haru.ii.a9i1e on 27 Nov 2009 at 1:58

GoogleCodeExporter commented 9 years ago
haru.ii.a9i1e様
詳細なご報告、誠にありがとうございます。
ご提案頂いた方法の2番(Ajax.Updateのメソッドをgetにする)��
�
対応させていただきました。
いつも的確な情報をいただき本当に助かります。
今後もよろしくお願いいたします。

Original comment by T.Kusukawa on 29 Nov 2009 at 2:26