Ruby on rails 4 如何在RubyonRails中设置onelogin SAML?
我正在将onelogin SAML API for Ruby工具包集成到我当前的项目中。我配置了SAML设置。这是我的控制器:Ruby on rails 4 如何在RubyonRails中设置onelogin SAML?,ruby-on-rails-4,saml,onelogin,Ruby On Rails 4,Saml,Onelogin,我正在将onelogin SAML API for Ruby工具包集成到我当前的项目中。我配置了SAML设置。这是我的控制器: class SamlController < ApplicationController skip_before_filter :verify_authenticity_token, :only => [:consume] def index #settings = Account.get_saml_settings setti
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
class SamlController[:consume]
def索引
#设置=Account.get\u saml\u设置
设置=:获取样本设置
request=Onelogin::Saml::Authrequest.new
将_重定向到(请求.创建(设置))
结束
def消耗
response=Onelogin::Saml::response.new(参数[:SAMLResponse])
response.settings=Account.get\u saml\u设置
logger.info“NAMEID:#{response.name_id}”
如果response.u有效吗?
会话[:userid]=response.name\u id
将_重定向到:操作=>:完成
其他的
将_重定向到:操作=>:失败
结束
结束
对于def index
方法,它具有设置和请求对象,但当它将页面重定向到(request.create(settings)),我得到错误:
没有为nil类“创建”的方法
我认为它调用create方法,但不返回任何值。您是否可以请任何人检查一下,并告诉我您的关注点/建议。您是否查看了包含ruby saml和rails4工作示例的github存储库? 同样重要的是您正在使用的ruby saml版本,因为一些方法在旧版本上不可用。根据声明应该是:
OneLogin::RubySaml::Authrequest
and
OneLogin::RubySaml::Response
他们网站上工具包的文档似乎已经过时了。使用gem中提供的文档
从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.