Devise + OmniAuth Saml:ActionController :: InvalidAuthenticityToken

时间:2014-07-17 15:19:19

标签: ruby-on-rails devise omniauth saml saml-2.0

我正在使用Devise和OmniAuth for Saml。 Saml回调不会发回csrf令牌,因此我收到此错误:

ActionController::InvalidAuthenticityToken at /users/auth/saml/callback

因此,为防止CSRF检查我的SAML回叫,我添加了:except saml方法。 但这似乎不起作用。使用Devise和OmniAuth阻止CSRF检查SAML回调的方法是什么?

这是我的OmniauthCallbacks控制器:

class Auth::OmniauthCallbacksController < Devise::OmniauthCallbacksController
  protect_from_forgery :except => [:saml]

  def saml
    response = OneLogin::RubySaml::Response.new(params[:SAMLResponse])

    raise response.to_yaml

    # if response.is_valid?
    #   redirect_to root_url
    # end
  end
end

1 个答案:

答案 0 :(得分:3)

我在代码库中通过在控制器顶部使用此位来解决这个问题:

skip_before_filter :verify_authenticity_token