Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Ruby SAML ACS注销请求_Ruby On Rails_Ruby_Ruby Saml - Fatal编程技术网

Ruby on rails Ruby SAML ACS注销请求

Ruby on rails Ruby SAML ACS注销请求,ruby-on-rails,ruby,ruby-saml,Ruby On Rails,Ruby,Ruby Saml,我已使用google断言消费者服务创建了一个SAML2 SSO登录,如下所示: require 'onelogin/ruby-saml' class Saml class << self def init(provider, saml2_idp_url, saml2_issuer_url) request = OneLogin::RubySaml::Authrequest.new request.create(saml_settings)

我已使用google断言消费者服务创建了一个SAML2 SSO登录,如下所示:

require 'onelogin/ruby-saml'

class Saml
  class << self
    def init(provider, saml2_idp_url, saml2_issuer_url)
      request = OneLogin::RubySaml::Authrequest.new

      request.create(saml_settings)
    end

    def consume(params)
      OneLogin::RubySaml::Response.new(params[:SAMLResponse], :settings => saml_settings)
    end

    private

    def saml_settings
      idp_metadata_parser = OneLogin::RubySaml::IdpMetadataParser.new

      settings = idp_metadata_parser.parse( File.read("acs.xml") )

      settings.assertion_consumer_service_url = https://certedrive-dev1.ngrok.io/saml2/idp?idpid=xxxxxx
      settings.issuer                         = https://certedrive-dev1.ngrok.io/saml2?idpid=xxxxxx
      settings
    end
  end
end
但是,这让我感到:

NoMethodError-未定义nil:NilClass的方法“+”

我觉得我尝试的注销方法是错误的。发送注销请求的正确方法是什么?

检查项目代码

该方法处理SP和IdP初始化的SLO流

在您描述的用例中,我认为问题在于您没有在设置中定义属性。 在ruby saml示例中,该问题在该示例中得到控制

有关更多信息,请阅读ruby saml的自述部分

logout_req = OneLogin::RubySaml::Logoutrequest.new
logout_req_url = logout_req.create(saml_settings)