Skip to content

Commit a55f48e

Browse files
committed
Fix specs
1 parent 407dc46 commit a55f48e

File tree

10 files changed

+74
-73
lines changed

10 files changed

+74
-73
lines changed

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -585,8 +585,8 @@ to specify different certificates for each function.
585585
You may also globally set the SP signature and digest method, to be used in SP signing (functions 1 and 2 above):
586586

587587
```ruby
588-
settings.security[:digest_method] = RubySaml::XML::Document::SHA1
589-
settings.security[:signature_method] = RubySaml::XML::Document::RSA_SHA1
588+
settings.security[:digest_method] = RubySaml::XML::Crypto::SHA1
589+
settings.security[:signature_method] = RubySaml::XML::Crypto::RSA_SHA1
590590
```
591591

592592
#### Signing SP Metadata

lib/ruby_saml/settings.rb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -252,11 +252,13 @@ def get_binding(value)
252252
# @deprecated Will be removed in v2.1.0
253253
define_method(old_param) do
254254
removed_deprecation(old_param, new_value)
255+
new_value
255256
end
256257

257258
# @deprecated Will be removed in v2.1.0
258259
define_method(:"#{old_param}=") do |_|
259260
removed_deprecation(old_param, new_value)
261+
new_value
260262
end
261263
end
262264

test/authrequest_test.rb

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ class AuthrequestTest < Minitest::Test
3636
zstream.finish
3737
zstream.close
3838

39-
assert_match(/<samlp:AuthnRequest[^<]* Destination='http:\/\/example.com'/, inflated)
39+
assert_match(/<samlp:AuthnRequest[^<]* Destination="http:\/\/example\.com"/, inflated)
4040
end
4141

4242
it "create the SAMLRequest URL parameter without deflating" do
@@ -61,7 +61,7 @@ class AuthrequestTest < Minitest::Test
6161
zstream.finish
6262
zstream.close
6363

64-
assert_match(/<samlp:AuthnRequest[^<]* IsPassive='true'/, inflated)
64+
assert_match(/<samlp:AuthnRequest[^<]* IsPassive="true"/, inflated)
6565
end
6666

6767
it "create the SAMLRequest URL parameter with ProtocolBinding" do
@@ -76,7 +76,7 @@ class AuthrequestTest < Minitest::Test
7676
zstream.finish
7777
zstream.close
7878

79-
assert_match(/<samlp:AuthnRequest[^<]* ProtocolBinding='urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST'/, inflated)
79+
assert_match(/<samlp:AuthnRequest[^<]* ProtocolBinding="urn:oasis:names:tc:SAML:2\.0:bindings:HTTP-POST"/, inflated)
8080
end
8181

8282
it "create the SAMLRequest URL parameter with AttributeConsumingServiceIndex" do
@@ -90,7 +90,7 @@ class AuthrequestTest < Minitest::Test
9090
inflated = zstream.inflate(decoded)
9191
zstream.finish
9292
zstream.close
93-
assert_match(/<samlp:AuthnRequest[^<]* AttributeConsumingServiceIndex='30'/, inflated)
93+
assert_match(/<samlp:AuthnRequest[^<]* AttributeConsumingServiceIndex="30"/, inflated)
9494
end
9595

9696
it "create the SAMLRequest URL parameter with ForceAuthn" do
@@ -104,7 +104,7 @@ class AuthrequestTest < Minitest::Test
104104
inflated = zstream.inflate(decoded)
105105
zstream.finish
106106
zstream.close
107-
assert_match(/<samlp:AuthnRequest[^<]* ForceAuthn='true'/, inflated)
107+
assert_match(/<samlp:AuthnRequest[^<]* ForceAuthn="true"/, inflated)
108108
end
109109

110110
it "create the SAMLRequest URL parameter with NameID Format" do
@@ -118,8 +118,8 @@ class AuthrequestTest < Minitest::Test
118118
zstream.finish
119119
zstream.close
120120

121-
assert_match(/<samlp:NameIDPolicy[^<]* AllowCreate='true'/, inflated)
122-
assert_match(/<samlp:NameIDPolicy[^<]* Format='urn:oasis:names:tc:SAML:2.0:nameid-format:transient'/, inflated)
121+
assert_match(/<samlp:NameIDPolicy[^<]* AllowCreate="true"/, inflated)
122+
assert_match(/<samlp:NameIDPolicy[^<]* Format="urn:oasis:names:tc:SAML:2\.0:nameid-format:transient"/, inflated)
123123
end
124124

125125
it "create the SAMLRequest URL parameter with Subject" do
@@ -135,8 +135,8 @@ class AuthrequestTest < Minitest::Test
135135
zstream.close
136136

137137
assert inflated.include?('<saml:Subject>')
138-
assert inflated.include?("<saml:NameID Format='urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress'>testuser@example.com</saml:NameID>")
139-
assert inflated.include?("<saml:SubjectConfirmation Method='urn:oasis:names:tc:SAML:2.0:cm:bearer'/>")
138+
assert inflated.include?('<saml:NameID Format="urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress">testuser@example.com</saml:NameID>')
139+
assert inflated.include?('<saml:SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer"/>')
140140
end
141141

142142
it "accept extra parameters" do
@@ -199,9 +199,9 @@ class AuthrequestTest < Minitest::Test
199199

200200
it "can mutate the uuid" do
201201
request = RubySaml::Authrequest.new
202-
request_id = request.request_id
203202
assert_nil request.uuid
204-
assert_nil request_id
203+
assert_nil request.request_id
204+
205205
request.uuid = "new_uuid"
206206
assert_equal "new_uuid", request.uuid
207207
assert_equal request.uuid, request.request_id
@@ -225,7 +225,7 @@ class AuthrequestTest < Minitest::Test
225225
it "create the SAMLRequest parameter correctly" do
226226

227227
auth_url = RubySaml::Authrequest.new.create(settings)
228-
assert_match(/^http:\/\/example.com\?SAMLRequest/, auth_url)
228+
assert_match(/^http:\/\/example\.com\?SAMLRequest/, auth_url)
229229
end
230230
end
231231

@@ -234,7 +234,7 @@ class AuthrequestTest < Minitest::Test
234234
settings.idp_sso_service_url = "http://example.com?field=value"
235235

236236
auth_url = RubySaml::Authrequest.new.create(settings)
237-
assert_match(/^http:\/\/example.com\?field=value&SAMLRequest/, auth_url)
237+
assert_match(/^http:\/\/example\.com\?field=value&SAMLRequest/, auth_url)
238238
end
239239
end
240240

@@ -254,22 +254,22 @@ class AuthrequestTest < Minitest::Test
254254
it "create the saml:AuthnContextClassRef with comparison exact" do
255255
settings.authn_context = 'secure/name/password/uri'
256256
auth_doc = RubySaml::Authrequest.new.create_authentication_xml_doc(settings)
257-
assert_match(/<samlp:RequestedAuthnContext[\S ]+Comparison='exact'/, auth_doc.to_s)
257+
assert_match(/<samlp:RequestedAuthnContext[\S ]+Comparison="exact"/, auth_doc.to_s)
258258
assert_match(/<saml:AuthnContextClassRef>secure\/name\/password\/uri<\/saml:AuthnContextClassRef>/, auth_doc.to_s)
259259
end
260260

261261
it "create the saml:AuthnContextClassRef with comparison minimun" do
262262
settings.authn_context = 'secure/name/password/uri'
263263
settings.authn_context_comparison = 'minimun'
264264
auth_doc = RubySaml::Authrequest.new.create_authentication_xml_doc(settings)
265-
assert_match(/<samlp:RequestedAuthnContext[\S ]+Comparison='minimun'/, auth_doc.to_s)
265+
assert_match(/<samlp:RequestedAuthnContext[\S ]+Comparison="minimun"/, auth_doc.to_s)
266266
assert_match(/<saml:AuthnContextClassRef>secure\/name\/password\/uri<\/saml:AuthnContextClassRef>/, auth_doc.to_s)
267267
end
268268

269269
it "create the saml:AuthnContextDeclRef element correctly" do
270270
settings.authn_context_decl_ref = 'urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport'
271271
auth_doc = RubySaml::Authrequest.new.create_authentication_xml_doc(settings)
272-
assert_match(/<saml:AuthnContextDeclRef>urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport<\/saml:AuthnContextDeclRef>/, auth_doc.to_s)
272+
assert_match(/<saml:AuthnContextDeclRef>urn:oasis:names:tc:SAML:2\.0:ac:classes:PasswordProtectedTransport<\/saml:AuthnContextDeclRef>/, auth_doc.to_s)
273273
end
274274

275275
it "create the saml:AuthnContextClassRef element correctly" do
@@ -281,22 +281,22 @@ class AuthrequestTest < Minitest::Test
281281
it "create the saml:AuthnContextClassRef with comparison exact" do
282282
settings.authn_context = 'secure/name/password/uri'
283283
auth_doc = RubySaml::Authrequest.new.create_authentication_xml_doc(settings)
284-
assert auth_doc.to_s =~ /<samlp:RequestedAuthnContext[\S ]+Comparison='exact'/
284+
assert auth_doc.to_s =~ /<samlp:RequestedAuthnContext[\S ]+Comparison="exact"/
285285
assert auth_doc.to_s =~ /<saml:AuthnContextClassRef>secure\/name\/password\/uri<\/saml:AuthnContextClassRef>/
286286
end
287287

288288
it "create the saml:AuthnContextClassRef with comparison minimun" do
289289
settings.authn_context = 'secure/name/password/uri'
290290
settings.authn_context_comparison = 'minimun'
291291
auth_doc = RubySaml::Authrequest.new.create_authentication_xml_doc(settings)
292-
assert auth_doc.to_s =~ /<samlp:RequestedAuthnContext[\S ]+Comparison='minimun'/
292+
assert auth_doc.to_s =~ /<samlp:RequestedAuthnContext[\S ]+Comparison="minimun"/
293293
assert auth_doc.to_s =~ /<saml:AuthnContextClassRef>secure\/name\/password\/uri<\/saml:AuthnContextClassRef>/
294294
end
295295

296296
it "create the saml:AuthnContextDeclRef element correctly" do
297297
settings.authn_context_decl_ref = 'urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport'
298298
auth_doc = RubySaml::Authrequest.new.create_authentication_xml_doc(settings)
299-
assert auth_doc.to_s =~ /<saml:AuthnContextDeclRef>urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport<\/saml:AuthnContextDeclRef>/
299+
assert auth_doc.to_s =~ /<saml:AuthnContextDeclRef>urn:oasis:names:tc:SAML:2\.0:ac:classes:PasswordProtectedTransport<\/saml:AuthnContextDeclRef>/
300300
end
301301

302302
it "create multiple saml:AuthnContextDeclRef elements correctly " do
@@ -329,7 +329,7 @@ class AuthrequestTest < Minitest::Test
329329
unless sp_hash_algo == :sha256
330330
it 'using mixed signature and digest methods (signature SHA256)' do
331331
# RSA is ignored here; only the hash sp_key_algo is used
332-
settings.security[:signature_method] = RubySaml::XML::Document::RSA_SHA256
332+
settings.security[:signature_method] = RubySaml::XML::Crypto::RSA_SHA256
333333
params = RubySaml::Authrequest.new.create_params(settings)
334334
request_xml = Base64.decode64(params["SAMLRequest"])
335335

@@ -339,7 +339,7 @@ class AuthrequestTest < Minitest::Test
339339
end
340340

341341
it 'using mixed signature and digest methods (digest SHA256)' do
342-
settings.security[:digest_method] = RubySaml::XML::Document::SHA256
342+
settings.security[:digest_method] = RubySaml::XML::Crypto::SHA256
343343
params = RubySaml::Authrequest.new.create_params(settings)
344344
request_xml = Base64.decode64(params["SAMLRequest"])
345345

@@ -428,7 +428,7 @@ class AuthrequestTest < Minitest::Test
428428
unless sp_hash_algo == :sha256
429429
it 'using mixed signature and digest methods (signature SHA256)' do
430430
# RSA is ignored here; only the hash sp_key_algo is used
431-
settings.security[:signature_method] = RubySaml::XML::Document::RSA_SHA256
431+
settings.security[:signature_method] = RubySaml::XML::Crypto::RSA_SHA256
432432
params = RubySaml::Authrequest.new.create_params(settings, :RelayState => 'http://example.com')
433433

434434
assert params['SAMLRequest']
@@ -444,7 +444,7 @@ class AuthrequestTest < Minitest::Test
444444
end
445445

446446
it 'using mixed signature and digest methods (digest SHA256)' do
447-
settings.security[:digest_method] = RubySaml::XML::Document::SHA256
447+
settings.security[:digest_method] = RubySaml::XML::Crypto::SHA256
448448
params = RubySaml::Authrequest.new.create_params(settings, :RelayState => 'http://example.com')
449449

450450
assert params['SAMLRequest']
@@ -461,7 +461,7 @@ class AuthrequestTest < Minitest::Test
461461
end
462462

463463
it "create a signature parameter using the first certificate and key" do
464-
settings.security[:signature_method] = RubySaml::XML::Document::RSA_SHA1
464+
settings.security[:signature_method] = RubySaml::XML::Crypto::RSA_SHA1
465465
settings.certificate = nil
466466
settings.private_key = nil
467467
cert, pkey = CertificateHelper.generate_pair(sp_key_algo)

test/idp_metadata_parser_test.rb

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -157,27 +157,27 @@ def initialize; end
157157
settings = idp_metadata_parser.parse(idp_metadata, {
158158
:settings => {
159159
:security => {
160-
:digest_method => RubySaml::XML::Document::SHA256,
161-
:signature_method => RubySaml::XML::Document::RSA_SHA256
160+
:digest_method => RubySaml::XML::Crypto::SHA256,
161+
:signature_method => RubySaml::XML::Crypto::RSA_SHA256
162162
}
163163
}
164164
})
165165
assert_equal "C4:C6:BD:41:EC:AD:57:97:CE:7B:7D:80:06:C3:E4:30:53:29:02:0B:DD:2D:47:02:9E:BD:85:AD:93:02:45:21", settings.idp_cert_fingerprint
166-
assert_equal RubySaml::XML::Document::SHA256, settings.get_sp_digest_method
167-
assert_equal RubySaml::XML::Document::RSA_SHA256, settings.get_sp_signature_method
166+
assert_equal RubySaml::XML::Crypto::SHA256, settings.get_sp_digest_method
167+
assert_equal RubySaml::XML::Crypto::RSA_SHA256, settings.get_sp_signature_method
168168
end
169169

170170
it "merges results into given settings object" do
171171
settings = RubySaml::Settings.new(:security => {
172-
:digest_method => RubySaml::XML::Document::SHA256,
173-
:signature_method => RubySaml::XML::Document::RSA_SHA256
172+
:digest_method => RubySaml::XML::Crypto::SHA256,
173+
:signature_method => RubySaml::XML::Crypto::RSA_SHA256
174174
})
175175

176176
RubySaml::IdpMetadataParser.new.parse(idp_metadata_descriptor, :settings => settings)
177177

178178
assert_equal "C4:C6:BD:41:EC:AD:57:97:CE:7B:7D:80:06:C3:E4:30:53:29:02:0B:DD:2D:47:02:9E:BD:85:AD:93:02:45:21", settings.idp_cert_fingerprint
179-
assert_equal RubySaml::XML::Document::SHA256, settings.get_sp_digest_method
180-
assert_equal RubySaml::XML::Document::RSA_SHA256, settings.get_sp_signature_method
179+
assert_equal RubySaml::XML::Crypto::SHA256, settings.get_sp_digest_method
180+
assert_equal RubySaml::XML::Crypto::RSA_SHA256, settings.get_sp_signature_method
181181
end
182182
end
183183

@@ -256,8 +256,8 @@ def initialize; end
256256
parsed_metadata = idp_metadata_parser.parse_to_hash(idp_metadata, {
257257
:settings => {
258258
:security => {
259-
:digest_method => RubySaml::XML::Document::SHA256,
260-
:signature_method => RubySaml::XML::Document::RSA_SHA256
259+
:digest_method => RubySaml::XML::Crypto::SHA256,
260+
:signature_method => RubySaml::XML::Crypto::RSA_SHA256
261261
}
262262
}
263263
})

test/logoutrequest_test.rb

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ class RequestTest < Minitest::Test
7878
settings.idp_slo_service_url = "http://example.com?field=value"
7979

8080
unauth_url = RubySaml::Logoutrequest.new.create(settings)
81-
assert_match(/^http:\/\/example.com\?field=value&SAMLRequest/, unauth_url)
81+
assert_match(/^http:\/\/example\.com\?field=value&SAMLRequest/, unauth_url)
8282
end
8383
end
8484

@@ -90,7 +90,7 @@ class RequestTest < Minitest::Test
9090
unauth_url = unauth_req.create(settings)
9191

9292
inflated = decode_saml_request_payload(unauth_url)
93-
assert_match %r[ID='#{unauth_req.uuid}'], inflated
93+
assert_match %r[ID="#{unauth_req.uuid}"], inflated
9494
end
9595
end
9696

@@ -132,9 +132,9 @@ class RequestTest < Minitest::Test
132132

133133
it "can mutate the uuid" do
134134
request = RubySaml::Logoutrequest.new
135-
request_id = request.request_id
136135
assert_nil request.uuid
137-
assert_nil request_id
136+
assert_nil request.request_id
137+
138138
request.uuid = "new_uuid"
139139
assert_equal "new_uuid", request.uuid
140140
assert_equal request.uuid, request.request_id
@@ -198,7 +198,7 @@ class RequestTest < Minitest::Test
198198
unless sp_hash_algo == :sha256
199199
it 'using mixed signature and digest methods (signature SHA256)' do
200200
# RSA is ignored here; only the hash sp_key_algo is used
201-
settings.security[:signature_method] = RubySaml::XML::Document::RSA_SHA256
201+
settings.security[:signature_method] = RubySaml::XML::Crypto::RSA_SHA256
202202
params = RubySaml::Logoutrequest.new.create_params(settings)
203203
request_xml = Base64.decode64(params["SAMLRequest"])
204204

@@ -208,7 +208,7 @@ class RequestTest < Minitest::Test
208208
end
209209

210210
it 'using mixed signature and digest methods (digest SHA256)' do
211-
settings.security[:digest_method] = RubySaml::XML::Document::SHA256
211+
settings.security[:digest_method] = RubySaml::XML::Crypto::SHA256
212212
params = RubySaml::Logoutrequest.new.create_params(settings)
213213
request_xml = Base64.decode64(params["SAMLRequest"])
214214

@@ -294,7 +294,7 @@ class RequestTest < Minitest::Test
294294
unless sp_hash_algo == :sha256
295295
it 'using mixed signature and digest methods (signature SHA256)' do
296296
# RSA is ignored here; only the hash sp_key_algo is used
297-
settings.security[:signature_method] = RubySaml::XML::Document::RSA_SHA256
297+
settings.security[:signature_method] = RubySaml::XML::Crypto::RSA_SHA256
298298
params = RubySaml::Logoutrequest.new.create_params(settings, :RelayState => 'http://example.com')
299299

300300
assert params['SAMLRequest']
@@ -310,7 +310,7 @@ class RequestTest < Minitest::Test
310310
end
311311

312312
it 'using mixed signature and digest methods (digest SHA256)' do
313-
settings.security[:digest_method] = RubySaml::XML::Document::SHA256
313+
settings.security[:digest_method] = RubySaml::XML::Crypto::SHA256
314314
params = RubySaml::Logoutrequest.new.create_params(settings, :RelayState => 'http://example.com')
315315

316316
assert params['SAMLRequest']

test/metadata_test.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -370,7 +370,7 @@ class MetadataTest < Minitest::Test
370370
unless sp_hash_algo == :sha256
371371
it 'using mixed signature and digest methods (signature SHA256)' do
372372
# RSA is ignored here; only the hash sp_key_algo is used
373-
settings.security[:signature_method] = RubySaml::XML::Document::RSA_SHA256
373+
settings.security[:signature_method] = RubySaml::XML::Crypto::RSA_SHA256
374374
signed_metadata = RubySaml::XML::SignedDocument.new(xml_text)
375375

376376
assert_match(signature_value_matcher, xml_text)
@@ -381,7 +381,7 @@ class MetadataTest < Minitest::Test
381381
end
382382

383383
it 'using mixed signature and digest methods (digest SHA256)' do
384-
settings.security[:digest_method] = RubySaml::XML::Document::SHA256
384+
settings.security[:digest_method] = RubySaml::XML::Crypto::SHA256
385385
signed_metadata = RubySaml::XML::SignedDocument.new(xml_text)
386386

387387
assert_match(signature_value_matcher, xml_text)

0 commit comments

Comments
 (0)