我正在将用于 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 方法但不返回任何值。你能请任何人检查一下,让我知道你的疑虑/建议。