diff --git a/lib/rack/openid.rb b/lib/rack/openid.rb index 711386c..1e3847d 100644 --- a/lib/rack/openid.rb +++ b/lib/rack/openid.rb @@ -238,12 +238,19 @@ def add_attribute_exchange_fields(oidreq, fields) axreq = ::OpenID::AX::FetchRequest.new required = Array(fields['required']).select(&URL_FIELD_SELECTOR) - required.each { |field| axreq.add(::OpenID::AX::AttrInfo.new(field, nil, true)) } - optional = Array(fields['optional']).select(&URL_FIELD_SELECTOR) - optional.each { |field| axreq.add(::OpenID::AX::AttrInfo.new(field, nil, false)) } - oidreq.add_extension(axreq) + if required.any? || optional.any? + required.each do |field| + axreq.add(::OpenID::AX::AttrInfo.new(field, nil, true)) + end + + optional.each do |field| + axreq.add(::OpenID::AX::AttrInfo.new(field, nil, false)) + end + + oidreq.add_extension(axreq) + end end def add_oauth_fields(oidreq, fields)