class SpRailsSaml::SamlResponse
SAML2 Authentication Response.
Public Class Methods
new(saml_response, saml_setting)
click to toggle source
# File lib/sp-rails-saml/saml_response.rb, line 13 def initialize(saml_response, saml_setting) @saml_setting = saml_setting @saml_response = saml_response end
Public Instance Methods
errors()
click to toggle source
# File lib/sp-rails-saml/saml_response.rb, line 42 def errors response.errors end
name_id()
click to toggle source
# File lib/sp-rails-saml/saml_response.rb, line 34 def name_id response.name_id end
name_id_format()
click to toggle source
# File lib/sp-rails-saml/saml_response.rb, line 38 def name_id_format response.name_id_format end
response()
click to toggle source
# File lib/sp-rails-saml/saml_response.rb, line 18 def response return @response if @response.present? @response = OneLogin::RubySaml::Response.new( @saml_response, settings: ruby_saml_settings, skip_subject_confirmation: SpRailsSaml::Settings::RUBY_SAML_DEFAULT_SETTINGS[:skip_subject_confirmation], skip_conditions: SpRailsSaml::Settings::RUBY_SAML_DEFAULT_SETTINGS[:skip_conditions], skip_destination: SpRailsSaml::Settings::RUBY_SAML_DEFAULT_SETTINGS[:skip_destination] ) end
valid?()
click to toggle source
# File lib/sp-rails-saml/saml_response.rb, line 30 def valid? response.is_valid? end
Private Instance Methods
required_value_is_set?()
click to toggle source
# File lib/sp-rails-saml/saml_response.rb, line 48 def required_value_is_set? # ruby-samlの仕様上、idp_entity_idが空だとissuer = idp_entity_idの検証が行われないため、idp_entity_idがblankの検証は必須 @saml_setting.idp_cert.present? && @saml_setting.idp_entity_id.present? end
ruby_saml_settings()
click to toggle source
# File lib/sp-rails-saml/saml_response.rb, line 53 def ruby_saml_settings raise SettingValidationError, 'lack of required setting value' unless required_value_is_set? settings = OneLogin::RubySaml::Settings.new sp_rails_saml_setting = SpRailsSaml::Settings.instance settings.assertion_consumer_service_url = saml_sp_consume_url( @saml_setting.send(sp_rails_saml_setting.account_class.to_s.downcase.to_sym).send(sp_rails_saml_setting.account_find_key) ) settings.sp_entity_id = saml_sp_metadata_url( @saml_setting.send(sp_rails_saml_setting.account_class.to_s.downcase.to_sym).send(sp_rails_saml_setting.account_find_key) ) settings.idp_cert = @saml_setting.idp_cert settings.idp_entity_id = @saml_setting.idp_entity_id settings.security[:want_assertions_signed] = SpRailsSaml::Settings::RUBY_SAML_DEFAULT_SETTINGS[:want_assertions_signed] settings end