Skip to content

Commit aa3884c

Browse files
committed
Fix following cops:
- Style/HashTransformKeys - Style/IdenticalConditionalBranches - Style/IfInsideElse - Style/IfUnlessModifier - Style/InverseMethods - Style/NegatedUnless - Style/NonNilCheck - Style/Not
1 parent 383b44e commit aa3884c

File tree

10 files changed

+34
-89
lines changed

10 files changed

+34
-89
lines changed

.rubocop.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ AllCops:
55
NewCops: disable
66
Include:
77
- 'lib/**/*'
8+
Exclude:
9+
- '**/*.xsd'
810

911
#Bundler:
1012
# Enabled: false

.rubocop_todo.yml

Lines changed: 0 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -550,27 +550,6 @@ Style/GuardClause:
550550
- 'lib/onelogin/ruby-saml/utils.rb'
551551
- 'lib/xml_security.rb'
552552

553-
# Offense count: 1
554-
# This cop supports unsafe autocorrection (--autocorrect-all).
555-
Style/HashTransformKeys:
556-
Exclude:
557-
- 'lib/onelogin/ruby-saml/idp_metadata_parser.rb'
558-
559-
# Offense count: 2
560-
# This cop supports unsafe autocorrection (--autocorrect-all).
561-
Style/IdenticalConditionalBranches:
562-
Exclude:
563-
- 'lib/onelogin/ruby-saml/idp_metadata_parser.rb'
564-
565-
# Offense count: 4
566-
# This cop supports safe autocorrection (--autocorrect).
567-
# Configuration parameters: AllowIfModifier.
568-
Style/IfInsideElse:
569-
Exclude:
570-
- 'lib/onelogin/ruby-saml/attributes.rb'
571-
- 'lib/onelogin/ruby-saml/utils.rb'
572-
- 'lib/xml_security.rb'
573-
574553
# Offense count: 69
575554
# This cop supports safe autocorrection (--autocorrect).
576555
Style/IfUnlessModifier:
@@ -587,13 +566,6 @@ Style/IfUnlessModifier:
587566
- 'lib/onelogin/ruby-saml/utils.rb'
588567
- 'lib/xml_security.rb'
589568

590-
# Offense count: 1
591-
# This cop supports unsafe autocorrection (--autocorrect-all).
592-
# Configuration parameters: InverseMethods, InverseBlocks.
593-
Style/InverseMethods:
594-
Exclude:
595-
- 'lib/onelogin/ruby-saml/idp_metadata_parser.rb'
596-
597569
# Offense count: 20
598570
# This cop supports unsafe autocorrection (--autocorrect-all).
599571
# Configuration parameters: EnforcedStyle.
@@ -616,14 +588,6 @@ Style/NegatedIf:
616588
- 'lib/onelogin/ruby-saml/response.rb'
617589
- 'lib/onelogin/ruby-saml/settings.rb'
618590

619-
# Offense count: 1
620-
# This cop supports safe autocorrection (--autocorrect).
621-
# Configuration parameters: EnforcedStyle.
622-
# SupportedStyles: both, prefix, postfix
623-
Style/NegatedUnless:
624-
Exclude:
625-
- 'lib/onelogin/ruby-saml/logoutresponse.rb'
626-
627591
# Offense count: 6
628592
# This cop supports safe autocorrection (--autocorrect).
629593
# Configuration parameters: EnforcedStyle, MinBodyLength.
@@ -636,20 +600,6 @@ Style/Next:
636600
- 'lib/onelogin/ruby-saml/slo_logoutrequest.rb'
637601
- 'lib/xml_security.rb'
638602

639-
# Offense count: 8
640-
# This cop supports safe autocorrection (--autocorrect).
641-
# Configuration parameters: IncludeSemanticChanges.
642-
Style/NonNilCheck:
643-
Exclude:
644-
- 'lib/onelogin/ruby-saml/authrequest.rb'
645-
- 'lib/onelogin/ruby-saml/slo_logoutresponse.rb'
646-
647-
# Offense count: 1
648-
# This cop supports safe autocorrection (--autocorrect).
649-
Style/Not:
650-
Exclude:
651-
- 'lib/onelogin/ruby-saml/settings.rb'
652-
653603
# Offense count: 1
654604
# This cop supports safe autocorrection (--autocorrect).
655605
# Configuration parameters: Strict, AllowedNumbers, AllowedPatterns.

lib/onelogin/ruby-saml/attributes.rb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -128,9 +128,9 @@ def fetch(name)
128128
if name.is_a?(Regexp)
129129
if name.respond_to? :match?
130130
return self[attribute_key] if name.match?(attribute_key)
131-
else
132-
return self[attribute_key] if name.match(attribute_key)
133-
end
131+
elsif name.match(attribute_key)
132+
return self[attribute_key]
133+
end
134134
elsif canonize_name(name) == canonize_name(attribute_key)
135135
return self[attribute_key]
136136
end

lib/onelogin/ruby-saml/authrequest.rb

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -121,15 +121,16 @@ def create_xml_document(settings)
121121
root.attributes['ForceAuthn'] = settings.force_authn unless settings.force_authn.nil?
122122

123123
# Conditionally defined elements based on settings
124-
if settings.assertion_consumer_service_url != nil
124+
unless settings.assertion_consumer_service_url.nil?
125125
root.attributes["AssertionConsumerServiceURL"] = settings.assertion_consumer_service_url
126126
end
127-
if settings.sp_entity_id != nil
127+
128+
unless settings.sp_entity_id.nil?
128129
issuer = root.add_element "saml:Issuer"
129130
issuer.text = settings.sp_entity_id
130131
end
131132

132-
if settings.name_identifier_value_requested != nil
133+
unless settings.name_identifier_value_requested.nil?
133134
subject = root.add_element "saml:Subject"
134135

135136
nameid = subject.add_element "saml:NameID"
@@ -140,7 +141,7 @@ def create_xml_document(settings)
140141
subject_confirmation.attributes['Method'] = "urn:oasis:names:tc:SAML:2.0:cm:bearer"
141142
end
142143

143-
if settings.name_identifier_format != nil
144+
unless settings.name_identifier_format.nil?
144145
root.add_element "samlp:NameIDPolicy", {
145146
# Might want to make AllowCreate a setting?
146147
"AllowCreate" => "true",
@@ -150,7 +151,7 @@ def create_xml_document(settings)
150151

151152
if settings.authn_context || settings.authn_context_decl_ref
152153

153-
if settings.authn_context_comparison != nil
154+
if !settings.authn_context_comparison.nil?
154155
comparison = settings.authn_context_comparison
155156
else
156157
comparison = 'exact'
@@ -160,15 +161,15 @@ def create_xml_document(settings)
160161
"Comparison" => comparison,
161162
}
162163

163-
if settings.authn_context != nil
164+
unless settings.authn_context.nil?
164165
authn_contexts_class_ref = settings.authn_context.is_a?(Array) ? settings.authn_context : [settings.authn_context]
165166
authn_contexts_class_ref.each do |authn_context_class_ref|
166167
class_ref = requested_context.add_element "saml:AuthnContextClassRef"
167168
class_ref.text = authn_context_class_ref
168169
end
169170
end
170171

171-
if settings.authn_context_decl_ref != nil
172+
unless settings.authn_context_decl_ref.nil?
172173
authn_contexts_decl_refs = settings.authn_context_decl_ref.is_a?(Array) ? settings.authn_context_decl_ref : [settings.authn_context_decl_ref]
173174
authn_contexts_decl_refs.each do |authn_context_decl_ref|
174175
decl_ref = requested_context.add_element "saml:AuthnContextDeclRef"

lib/onelogin/ruby-saml/idp_metadata_parser.rb

Lines changed: 11 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -181,7 +181,7 @@ def parse_to_idp_metadata_array(idp_metadata, options = {})
181181
@options = options
182182

183183
idpsso_descriptors = self.class.get_idps(@document, options[:entity_id])
184-
if !idpsso_descriptors.any?
184+
if idpsso_descriptors.none?
185185
raise ArgumentError.new("idp_metadata must contain an IDPSSODescriptor element")
186186
end
187187

@@ -407,23 +407,19 @@ def merge_certificates_into(parsed_metadata)
407407
(certificates_has_one('signing') && certificates_has_one('encryption') &&
408408
certificates["signing"][0] == certificates["encryption"][0])
409409

410-
if certificates.key?("signing")
411-
parsed_metadata[:idp_cert] = certificates["signing"][0]
412-
parsed_metadata[:idp_cert_fingerprint] = fingerprint(
413-
parsed_metadata[:idp_cert],
414-
parsed_metadata[:idp_cert_fingerprint_algorithm]
415-
)
416-
else
417-
parsed_metadata[:idp_cert] = certificates["encryption"][0]
418-
parsed_metadata[:idp_cert_fingerprint] = fingerprint(
419-
parsed_metadata[:idp_cert],
420-
parsed_metadata[:idp_cert_fingerprint_algorithm]
421-
)
422-
end
410+
parsed_metadata[:idp_cert] = if certificates.key?("signing")
411+
certificates["signing"][0]
412+
else
413+
certificates["encryption"][0]
414+
end
415+
parsed_metadata[:idp_cert_fingerprint] = fingerprint(
416+
parsed_metadata[:idp_cert],
417+
parsed_metadata[:idp_cert_fingerprint_algorithm]
418+
)
423419
end
424420

425421
# symbolize keys of certificates and pass it on
426-
parsed_metadata[:idp_cert_multi] = Hash[certificates.map { |k, v| [k.to_sym, v] }]
422+
parsed_metadata[:idp_cert_multi] = certificates.transform_keys(&:to_sym)
427423
end
428424

429425
def certificates_has_one(key)

lib/onelogin/ruby-saml/logoutresponse.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -210,7 +210,7 @@ def valid_issuer?
210210
# @raise [ValidationError] if soft == false and validation fails
211211
#
212212
def validate_signature
213-
return true unless !options.nil?
213+
return true if options.nil?
214214
return true unless options.has_key? :get_params
215215
return true unless options[:get_params].has_key? 'Signature'
216216

lib/onelogin/ruby-saml/settings.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -193,7 +193,7 @@ def get_idp_cert
193193
def get_idp_cert_multi
194194
return nil if idp_cert_multi.nil? || idp_cert_multi.empty?
195195

196-
raise ArgumentError.new("Invalid value for idp_cert_multi") if not idp_cert_multi.is_a?(Hash)
196+
raise ArgumentError.new("Invalid value for idp_cert_multi") if !idp_cert_multi.is_a?(Hash)
197197

198198
certs = {signing: [], encryption: [] }
199199

lib/onelogin/ruby-saml/slo_logoutresponse.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,7 @@ def create_xml_document(settings, request_id = nil, logout_message = nil, status
129129
root.attributes['InResponseTo'] = request_id unless request_id.nil?
130130
root.attributes['Destination'] = destination unless destination.nil? or destination.empty?
131131

132-
if settings.sp_entity_id != nil
132+
unless settings.sp_entity_id.nil?
133133
issuer = root.add_element "saml:Issuer"
134134
issuer.text = settings.sp_entity_id
135135
end

lib/onelogin/ruby-saml/utils.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -80,8 +80,8 @@ def self.format_cert(cert)
8080
# don't try to format an encoded certificate or if is empty or nil
8181
if cert.respond_to?(:ascii_only?)
8282
return cert if cert.nil? || cert.empty? || !cert.ascii_only?
83-
else
84-
return cert if cert.nil? || cert.empty? || cert.match(/\x0d/)
83+
elsif cert.nil? || cert.empty? || cert.match(/\x0d/)
84+
return cert
8585
end
8686

8787
if cert.scan(/BEGIN CERTIFICATE/).length > 1

lib/xml_security.rb

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -226,16 +226,12 @@ def validate_document(idp_cert_fingerprint, soft = true, options = {})
226226
if fingerprint != idp_cert_fingerprint.gsub(/[^a-zA-Z0-9]/,"").downcase
227227
return append_error("Fingerprint mismatch", soft)
228228
end
229+
elsif options[:cert]
230+
base64_cert = Base64.encode64(options[:cert].to_pem)
231+
elsif soft
232+
return false
229233
else
230-
if options[:cert]
231-
base64_cert = Base64.encode64(options[:cert].to_pem)
232-
else
233-
if soft
234-
return false
235-
else
236-
return append_error("Certificate element missing in response (ds:X509Certificate) and not cert provided at settings", soft)
237-
end
238-
end
234+
return append_error("Certificate element missing in response (ds:X509Certificate) and not cert provided at settings", soft)
239235
end
240236
validate_signature(base64_cert, soft)
241237
end

0 commit comments

Comments
 (0)