【问题标题】:Redmine: 422 invalid form authenticity tokenRedmine:422 无效的形式真实性令牌
【发布时间】:2015-02-25 12:58:31
【问题描述】:

我正在使用this 插件在我的 IDP 和 redmine 之间启用 SSO。目的是避免在登录redmine时重新输入用户名和密码。 Redmine 和 IDP 都连接到外部 LDAP。问题是从我的 IDP 重定向回 redmine 后(输入用户名和密码后),它给出了这个错误。

Redmine 版本:2.5.2, 红宝石版本:1.9.3, Rails 版本:3.2.19

【问题讨论】:

    标签: ruby authentication single-sign-on redmine redmine-plugins


    【解决方案1】:

    Redmine 3.4.2的一些细节

    如果您收到错误 422(无法验证 CSRF 令牌真实性), 你必须去控制器文件

    /app/controller/aplication_controller.rb

    并使用代码删除或注释字符串

    render_error :status => 422, :message => "invalid form authenticity token."
    

    然后添加代码

    redirect_back_or_default(home_path)
    

    所以,你的代码会是这样的

    # render_error :status => 422, :message => "invalid form authenticity token."
    redirect_back_or_default(home_path) 
    

    【讨论】:

      【解决方案2】:

      对我们来说,当已经登录的用户尝试重新登录(例如,使用多个浏览器选项卡)时会出现此错误。 解决办法是here,补丁application_controller.rb:

      -    render_error "Invalid form authenticity token." 
      +    redirect_back_or_default home_path
      

      【讨论】:

        【解决方案3】:

        我们在使用反向代理 SSO 时发生了这种情况。 SSO 中配置的名称与 Redmine 中的用户名大小写不同。

        从 nginx 配置中提取:

                               # Pass the user to that stupid Passenger Phusion
                               # that cannot evaluate variables like $http_x_forwarded_user
                               passenger_env_var REMOTE_USER nicolasm;
        

        我们在 Redmine 中的用户名是 NicolasM

        按照其他答案的建议删除安全性并不是一个持久的解决方案。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2019-06-20
          • 2018-06-29
          • 2016-03-19
          • 2010-11-15
          • 1970-01-01
          • 2018-06-20
          • 2017-03-16
          • 1970-01-01
          相关资源
          最近更新 更多