Project

General

Profile

Actions

調査 #6

open

redmineに別ブラウザでログインしようとすると422エラー

Added by K Okuda about 1 month ago. Updated 27 days ago.

Status:
保留
Priority:
通常
Assignee:
Start date:
02/11/2025
Due date:
% Done:

0%

Estimated time:
Spent time:
Actions #1

Updated by K Okuda about 1 month ago

  • Tracker changed from バグ to 調査
Actions #2

Updated by K Okuda about 1 month ago · Edited

ログ確認

[2025-02-11T20:37:19.129460 #172529] INFO -- : [67372a5b-4873-4491-a504-aa29f811beed] Parameters: {"authenticity_token"=>"T5ZunLiuHifGwcTbEi1A7f-n3X537aSK46SdXMgHLdQJ9oFrTX1cLcs78FLh7ZjCiuTmMjW5-uQ-OJ6NkdXPLQ", "username"=>"xxxxxx", "password"=>"[FILTERED]", "login"=>"ログイン"}
W, [2025-02-11T20:37:19.130043 #172529] WARN -- : [67372a5b-4873-4491-a504-aa29f811beed] Can't verify CSRF token authenticity.
[2025-02-11T20:37:19.130203 #172529] ERROR -- : [67372a5b-4873-4491-a504-aa29f811beed] ActionController::InvalidAuthenticityToken: Can't verify CSRF token authenticity.

CSRF対策で引っかかっている模様。

https://qiita.com/nishina555/items/4ffaf5cc57a384b66230

のように、422エラーの場合にも処理を継続するよう修正してみる。

Actions #3

Updated by K Okuda 30 days ago

  • Status changed from 新規 to 進行中

とりあえずの解消法を見つけた。

以下3点実行。

コマンド:rails console
→Rails.cache.clear

mysqlに入る
→tokensテーブルの対象ユーザーデータを消す。(おそらくsessionのみでOK、feedsは放置でいい)

httpdを再起動

※このクリアされた状態でブラウザをいくつも開くと、同ユーザーで複数のセッションレコードが登録されていた。

まだ具体的な原因は分かっていないが、CSRFトークンの仕組みはrailsのデフォルトを使っている模様。

config/application.rbに以下の記載がある。

# Add forgery protection
config.action_controller.default_protect_from_forgery = true
Actions #4

Updated by K Okuda 30 days ago

取り合えずセッションが切れてもログインできるようにはなったので、
一旦この件は放置して開発を進めることにする。

Actions #5

Updated by K Okuda 30 days ago

https://k-devel-project.works/issues/6#note-2

これは試してダメだった気がする。多分。

Actions #6

Updated by K Okuda 27 days ago

  • Status changed from 進行中 to 保留

PCブラウザ2つとスマホでログインしても422エラーが表示されなくなったので、もう一旦保留でいいと思う。

Actions

Also available in: Atom PDF