所以我将this gem用于SAML。 Serivce提供程序已经在初始化程序中设置并连接,我在控制器中有这个。
class SamlIdpController < SamlIdp::IdpController
skip_before_filter :validate_saml_request, only: [:new, :create]
def idp_authenticate(email, password)
user = User.find_by_email(email)
user && user.valid_password?(password) ? user : nil
end
private :idp_authenticate
def idp_make_saml_response(found_user)
encode_response found_user
end
private :idp_make_saml_response
end
当我尝试登录时,我收到此错误:
F, [2016-11-03T14:58:50.416637 #15024] FATAL -- :
NoMethodError (undefined method `authn_request?' for nil:NilClass):
app/controllers/saml_idp_controller.rb:13:in `idp_make_saml_response'
宝石的官方维基很简单。我也试过传递'user'而不是'found_user',但得到了同样的错误。这种方法有什么期望?我在这里错过了什么?欢迎任何帮助。谢谢!