1

Ruby ツール キット用の onelogin SAML API を現在のプロジェクトに統合しています。SAML 設定を構成しました。これが私のコントローラーです:

class SamlController < ApplicationController
  skip_before_filter :verify_authenticity_token, :only => [:consume]  

  def index
    #settings = Account.get_saml_settings
    settings = :get_saml_settings
    request = Onelogin::Saml::Authrequest.new
    redirect_to(request.create(settings))
  end

  def consume
    response = Onelogin::Saml::Response.new(params[:SAMLResponse])
    response.settings = Account.get_saml_settings

    logger.info "NAMEID: #{response.name_id}"

    if response.is_valid?
      session[:userid] = response.name_id
      redirect_to :action => :complete
    else
      redirect_to :action => :fail
    end
  end

メソッドにはdef index設定とリクエストオブジェクトがありますが、ページをリダイレクトすると、つまりredirect_to(request.create(settings))、エラーが発生します:

nil クラスのメソッド「create」はありません。

create メソッドを呼び出していると思いますが、値は返されません。誰でもチェックして、あなたの懸念/提案を教えてください.

4

2 に答える 2

2

https://github.com/onelogin/ruby-samlによると、宣言は次のようになります。

OneLogin::RubySaml::Authrequest
and
OneLogin::RubySaml::Response

彼らの Web サイトにあるツールキットのドキュメントは古くなっているようです。gem で提供されているドキュメントを使用します。

宝石のドキュメントから:

Version 0.8.x changes the namespace of the gem from OneLogin::Saml
to OneLogin::RubySaml. Please update your implementations of the gem accordingly.
于 2017-04-11T11:55:32.517 に答える