@@ -27,7 +27,7 @@ class IdpMetadataParser
2727 # IdP values
2828 #
2929 # @param (see IdpMetadataParser#get_idp_metadata)
30- # @param options [Hash] :settings to provide the OneLogin::RubySaml::Settings object
30+ # @param options [Hash] :settings to provide the OneLogin::RubySaml::Settings object or an hash for Settings overrides
3131 # @return (see IdpMetadataParser#get_idp_metadata)
3232 # @raise (see IdpMetadataParser#get_idp_metadata)
3333 def parse_remote ( url , validate_cert = true , options = { } )
@@ -37,12 +37,17 @@ def parse_remote(url, validate_cert = true, options = {})
3737
3838 # Parse the Identity Provider metadata and update the settings with the IdP values
3939 # @param idp_metadata [String]
40- # @param options [Hash] :settings to provide the OneLogin::RubySaml::Settings object
40+ # @param options [Hash] :settings to provide the OneLogin::RubySaml::Settings object or an hash for Settings overrides
4141 #
4242 def parse ( idp_metadata , options = { } )
4343 @document = REXML ::Document . new ( idp_metadata )
4444
45- ( options [ :settings ] || OneLogin ::RubySaml ::Settings . new ) . tap do |settings |
45+ settings = options [ :settings ]
46+ if settings . nil? || settings . is_a? ( Hash )
47+ settings = OneLogin ::RubySaml ::Settings . new ( settings || { } )
48+ end
49+
50+ settings . tap do |settings |
4651 settings . idp_entity_id = idp_entity_id
4752 settings . name_identifier_format = idp_name_id_format
4853 settings . idp_sso_target_url = single_signon_service_url ( options )
0 commit comments