saml_idp 0.7.2 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/Gemfile +1 -1
- data/README.md +11 -5
- data/lib/saml_idp/configurator.rb +1 -0
- data/lib/saml_idp/controller.rb +6 -6
- data/lib/saml_idp/incoming_metadata.rb +4 -1
- data/lib/saml_idp/request.rb +13 -0
- data/lib/saml_idp/service_provider.rb +14 -0
- data/lib/saml_idp/version.rb +1 -1
- data/saml_idp.gemspec +25 -22
- data/spec/acceptance/idp_controller_spec.rb +5 -4
- data/spec/lib/saml_idp/algorithmable_spec.rb +6 -6
- data/spec/lib/saml_idp/assertion_builder_spec.rb +8 -8
- data/spec/lib/saml_idp/attribute_decorator_spec.rb +8 -8
- data/spec/lib/saml_idp/configurator_spec.rb +7 -7
- data/spec/lib/saml_idp/controller_spec.rb +23 -20
- data/spec/lib/saml_idp/encryptor_spec.rb +4 -4
- data/spec/lib/saml_idp/incoming_metadata_spec.rb +41 -0
- data/spec/lib/saml_idp/metadata_builder_spec.rb +7 -17
- data/spec/lib/saml_idp/name_id_formatter_spec.rb +3 -3
- data/spec/lib/saml_idp/request_spec.rb +22 -22
- data/spec/lib/saml_idp/response_builder_spec.rb +2 -2
- data/spec/lib/saml_idp/saml_response_spec.rb +6 -6
- data/spec/lib/saml_idp/service_provider_spec.rb +2 -2
- data/spec/lib/saml_idp/signable_spec.rb +1 -1
- data/spec/lib/saml_idp/signature_builder_spec.rb +2 -2
- data/spec/lib/saml_idp/signed_info_builder_spec.rb +3 -3
- data/spec/rails_app/app/controllers/saml_controller.rb +5 -1
- data/spec/rails_app/config/application.rb +0 -6
- data/spec/rails_app/config/environments/development.rb +1 -6
- data/spec/rails_app/config/environments/production.rb +1 -0
- data/spec/rails_app/config/environments/test.rb +1 -0
- data/spec/spec_helper.rb +3 -0
- data/spec/support/saml_request_macros.rb +2 -1
- data/spec/xml_security_spec.rb +12 -12
- metadata +71 -39
- data/spec/lib/saml_idp/.assertion_builder_spec.rb.swp +0 -0
@@ -9,11 +9,11 @@ module SamlIdp
|
|
9
9
|
) }
|
10
10
|
|
11
11
|
before do
|
12
|
-
Time.
|
12
|
+
allow(Time).to receive(:now).and_return Time.parse("Jul 31 2013")
|
13
13
|
end
|
14
14
|
|
15
15
|
it "builds a legit raw XML file" do
|
16
|
-
subject.raw.
|
16
|
+
expect(subject.raw).to eq("<ds:Signature xmlns:ds=\"http://www.w3.org/2000/09/xmldsig#\"><ds:SignedInfo xmlns:ds=\"http://www.w3.org/2000/09/xmldsig#\"><ds:CanonicalizationMethod Algorithm=\"http://www.w3.org/2001/10/xml-exc-c14n#\"/><ds:SignatureMethod Algorithm=\"http://www.w3.org/2000/09/xmldsig#rsa-sha256\"/><ds:Reference URI=\"#_abc\"><ds:Transforms><ds:Transform Algorithm=\"http://www.w3.org/2000/09/xmldsig#enveloped-signature\"/><ds:Transform Algorithm=\"http://www.w3.org/2001/10/xml-exc-c14n#\"/></ds:Transforms><ds:DigestMethod Algorithm=\"http://www.w3.org/2000/09/xmldsig#sha256\"/><ds:DigestValue>em8csGAWynywpe8S4nN64o56/4DosXi2XWMY6RJ6YfA=</ds:DigestValue></ds:Reference></ds:SignedInfo><ds:SignatureValue>jvEbD/rsiPKmoXy7Lhm+FGn88NPGlap4EcPZ2fvjBnk03YESs87FXAIiZZEzN5xq4sBZksUmZe2bV3rrr9sxQNgQawmrrvr66ot7cJiv0ETFArr6kQIZaR5g/V0M4ydxvrfefp6cQVI0hXvmxi830pq0tISiO4J7tyBNX/kvhZk=</ds:SignatureValue><KeyInfo xmlns=\"http://www.w3.org/2000/09/xmldsig#\"><ds:X509Data><ds:X509Certificate>MIIDqzCCAxSgAwIBAgIBATANBgkqhkiG9w0BAQsFADCBhjELMAkGA1UEBhMCQVUxDDAKBgNVBAgTA05TVzEPMA0GA1UEBxMGU3lkbmV5MQwwCgYDVQQKDANQSVQxCTAHBgNVBAsMADEYMBYGA1UEAwwPbGF3cmVuY2VwaXQuY29tMSUwIwYJKoZIhvcNAQkBDBZsYXdyZW5jZS5waXRAZ21haWwuY29tMB4XDTEyMDQyODAyMjIyOFoXDTMyMDQyMzAyMjIyOFowgYYxCzAJBgNVBAYTAkFVMQwwCgYDVQQIEwNOU1cxDzANBgNVBAcTBlN5ZG5leTEMMAoGA1UECgwDUElUMQkwBwYDVQQLDAAxGDAWBgNVBAMMD2xhd3JlbmNlcGl0LmNvbTElMCMGCSqGSIb3DQEJAQwWbGF3cmVuY2UucGl0QGdtYWlsLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAuBywPNlC1FopGLYfF96SotiK8Nj6/nW084O4omRMifzy7x955RLEy673q2aiJNB3LvE6Xvkt9cGtxtNoOXw1g2UvHKpldQbr6bOEjLNeDNW7j0ob+JrRvAUOK9CRgdyw5MC6lwqVQQ5C1DnaT/2fSBFjasBFTR24dEpfTy8HfKECAwEAAaOCASUwggEhMAkGA1UdEwQCMAAwCwYDVR0PBAQDAgUgMB0GA1UdDgQWBBQNBGmmt3ytKpcJaBaYNbnyU2xkazATBgNVHSUEDDAKBggrBgEFBQcDATAdBglghkgBhvhCAQ0EEBYOVGVzdCBYNTA5IGNlcnQwgbMGA1UdIwSBqzCBqIAUDQRpprd8rSqXCWgWmDW58lNsZGuhgYykgYkwgYYxCzAJBgNVBAYTAkFVMQwwCgYDVQQIEwNOU1cxDzANBgNVBAcTBlN5ZG5leTEMMAoGA1UECgwDUElUMQkwBwYDVQQLDAAxGDAWBgNVBAMMD2xhd3JlbmNlcGl0LmNvbTElMCMGCSqGSIb3DQEJAQwWbGF3cmVuY2UucGl0QGdtYWlsLmNvbYIBATANBgkqhkiG9w0BAQsFAAOBgQAEcVUPBX7uZmzqZJfy+tUPOT5ImNQj8VE2lerhnFjnGPHmHIqhpzgnwHQujJfs/a309Wm5qwcCaC1eO5cWjcG0x3OjdllsgYDatl5GAumtBx8J3NhWRqNUgitCIkQlxHIwUfgQaCushYgDDL5YbIQa++egCgpIZ+T0Dj5oRew//A==</ds:X509Certificate></ds:X509Data></KeyInfo></ds:Signature>")
|
17
17
|
end
|
18
18
|
end
|
19
19
|
end
|
@@ -11,15 +11,15 @@ module SamlIdp
|
|
11
11
|
) }
|
12
12
|
|
13
13
|
before do
|
14
|
-
Time.
|
14
|
+
allow(Time).to receive(:now).and_return Time.parse("Jul 31 2013")
|
15
15
|
end
|
16
16
|
|
17
17
|
it "builds a legit raw XML file" do
|
18
|
-
subject.raw.
|
18
|
+
expect(subject.raw).to eq("<ds:SignedInfo xmlns:ds=\"http://www.w3.org/2000/09/xmldsig#\"><ds:CanonicalizationMethod Algorithm=\"http://www.w3.org/2001/10/xml-exc-c14n#\"></ds:CanonicalizationMethod><ds:SignatureMethod Algorithm=\"http://www.w3.org/2001/04/xmldsig-more#rsa-sha256\"></ds:SignatureMethod><ds:Reference URI=\"#_abc\"><ds:Transforms><ds:Transform Algorithm=\"http://www.w3.org/2000/09/xmldsig#enveloped-signature\"></ds:Transform><ds:Transform Algorithm=\"http://www.w3.org/2001/10/xml-exc-c14n#\"></ds:Transform></ds:Transforms><ds:DigestMethod Algorithm=\"http://www.w3.org/2001/04/xmlenc#sha256\"></ds:DigestMethod><ds:DigestValue>em8csGAWynywpe8S4nN64o56/4DosXi2XWMY6RJ6YfA=</ds:DigestValue></ds:Reference></ds:SignedInfo>")
|
19
19
|
end
|
20
20
|
|
21
21
|
it "builds a legit digest of the XML file" do
|
22
|
-
subject.signed.
|
22
|
+
expect(subject.signed).to eq("hKLeWLRgatHcV6N5Fc8aKveqNp6Y/J4m2WSYp0awGFtsCTa/2nab32wI3du+3kuuIy59EDKeUhHVxEfyhoHUo6xTZuO2N7XcTpSonuZ/CB3WjozC2Q/9elss3z1rOC3154v5pW4puirLPRoG+Pwi8SmptxNRHczr6NvmfYmmGfo=")
|
23
23
|
end
|
24
24
|
end
|
25
25
|
end
|
@@ -2,7 +2,11 @@ class SamlController < ApplicationController
|
|
2
2
|
|
3
3
|
def consume
|
4
4
|
response = OneLogin::RubySaml::Response.new(params[:SAMLResponse])
|
5
|
-
|
5
|
+
if Gem::Requirement.new('< 4.1') =~ Gem::Version.new(Rails.version)
|
6
|
+
render :text => response.name_id
|
7
|
+
else
|
8
|
+
render :plain => response.name_id
|
9
|
+
end
|
6
10
|
end
|
7
11
|
|
8
12
|
end
|
@@ -50,11 +50,5 @@ module RailsApp
|
|
50
50
|
# in your app. As such, your models will need to explicitly whitelist or blacklist accessible
|
51
51
|
# parameters by using an attr_accessible or attr_protected declaration.
|
52
52
|
# config.active_record.whitelist_attributes = true
|
53
|
-
|
54
|
-
# Enable the asset pipeline
|
55
|
-
config.assets.enabled = true
|
56
|
-
|
57
|
-
# Version of your assets, change this if you want to expire all your assets
|
58
|
-
config.assets.version = '1.0'
|
59
53
|
end
|
60
54
|
end
|
@@ -4,6 +4,7 @@ RailsApp::Application.configure do
|
|
4
4
|
# In the development environment your application's code is reloaded on
|
5
5
|
# every request. This slows down response time but is perfect for development
|
6
6
|
# since you don't have to restart the web server when you make code changes.
|
7
|
+
config.eager_load = false if config.respond_to?(:eager_load)
|
7
8
|
config.cache_classes = false
|
8
9
|
|
9
10
|
# Log error messages when you accidentally call methods on nil.
|
@@ -28,10 +29,4 @@ RailsApp::Application.configure do
|
|
28
29
|
# Log the query plan for queries taking more than this (works
|
29
30
|
# with SQLite, MySQL, and PostgreSQL)
|
30
31
|
#config.active_record.auto_explain_threshold_in_seconds = 0.5
|
31
|
-
|
32
|
-
# Do not compress assets
|
33
|
-
config.assets.compress = false
|
34
|
-
|
35
|
-
# Expands the lines which load the assets
|
36
|
-
config.assets.debug = true
|
37
32
|
end
|
@@ -2,6 +2,7 @@ RailsApp::Application.configure do
|
|
2
2
|
# Settings specified here will take precedence over those in config/application.rb
|
3
3
|
|
4
4
|
# Code is not reloaded between requests
|
5
|
+
config.eager_load = true if config.respond_to?(:eager_load)
|
5
6
|
config.cache_classes = true
|
6
7
|
|
7
8
|
# Full error reports are disabled and caching is turned on
|
@@ -5,6 +5,7 @@ RailsApp::Application.configure do
|
|
5
5
|
# test suite. You never need to work with it otherwise. Remember that
|
6
6
|
# your test database is "scratch space" for the test suite and is wiped
|
7
7
|
# and recreated between test runs. Don't rely on the data there!
|
8
|
+
config.eager_load = true if config.respond_to?(:eager_load)
|
8
9
|
config.cache_classes = true
|
9
10
|
|
10
11
|
# Configure static asset server for tests with Cache-Control for performance
|
data/spec/spec_helper.rb
CHANGED
@@ -45,4 +45,7 @@ RSpec.configure do |config|
|
|
45
45
|
end
|
46
46
|
end
|
47
47
|
|
48
|
+
SamlIdp::Default::SERVICE_PROVIDER[:metadata_url] = 'https://example.com/meta'
|
49
|
+
SamlIdp::Default::SERVICE_PROVIDER[:response_hosts] = ['foo.example.com']
|
50
|
+
SamlIdp::Default::SERVICE_PROVIDER[:assertion_consumer_logout_service_url] = 'https://foo.example.com/saml/logout'
|
48
51
|
Capybara.default_host = "https://app.example.com"
|
@@ -15,7 +15,7 @@ module SamlRequestMacros
|
|
15
15
|
'some_name_id',
|
16
16
|
OpenSSL::Digest::SHA256
|
17
17
|
)
|
18
|
-
request_builder.
|
18
|
+
Base64.strict_encode64(request_builder.signed)
|
19
19
|
end
|
20
20
|
|
21
21
|
def saml_settings(saml_acs_url = "https://foo.example.com/saml/consume")
|
@@ -23,6 +23,7 @@ module SamlRequestMacros
|
|
23
23
|
settings.assertion_consumer_service_url = saml_acs_url
|
24
24
|
settings.issuer = "http://example.com/issuer"
|
25
25
|
settings.idp_sso_target_url = "http://idp.com/saml/idp"
|
26
|
+
settings.assertion_consumer_logout_service_url = 'https://foo.example.com/saml/logout'
|
26
27
|
settings.idp_cert_fingerprint = SamlIdp::Default::FINGERPRINT
|
27
28
|
settings.name_identifier_format = SamlIdp::Default::NAME_ID_FORMAT
|
28
29
|
settings
|
data/spec/xml_security_spec.rb
CHANGED
@@ -7,7 +7,7 @@ module SamlIdp
|
|
7
7
|
let(:base64cert) { document.elements["//ds:X509Certificate"].text }
|
8
8
|
|
9
9
|
it "it run validate without throwing NS related exceptions" do
|
10
|
-
document.validate_doc(base64cert, true).
|
10
|
+
expect(document.validate_doc(base64cert, true)).to be_falsey
|
11
11
|
end
|
12
12
|
|
13
13
|
it "it run validate with throwing NS related exceptions" do
|
@@ -57,22 +57,22 @@ module SamlIdp
|
|
57
57
|
describe "Algorithms" do
|
58
58
|
it "validate using SHA1" do
|
59
59
|
document = XMLSecurity::SignedDocument.new(fixture(:adfs_response_sha1, false))
|
60
|
-
document.validate("F1:3C:6B:80:90:5A:03:0E:6C:91:3E:5D:15:FA:DD:B0:16:45:48:72").
|
60
|
+
expect(document.validate("F1:3C:6B:80:90:5A:03:0E:6C:91:3E:5D:15:FA:DD:B0:16:45:48:72")).to be_truthy
|
61
61
|
end
|
62
62
|
|
63
63
|
it "validate using SHA256" do
|
64
64
|
document = XMLSecurity::SignedDocument.new(fixture(:adfs_response_sha256, false))
|
65
|
-
document.validate("28:74:9B:E8:1F:E8:10:9C:A8:7C:A9:C3:E3:C5:01:6C:92:1C:B4:BA").
|
65
|
+
expect(document.validate("28:74:9B:E8:1F:E8:10:9C:A8:7C:A9:C3:E3:C5:01:6C:92:1C:B4:BA")).to be_truthy
|
66
66
|
end
|
67
67
|
|
68
68
|
it "validate using SHA384" do
|
69
69
|
document = XMLSecurity::SignedDocument.new(fixture(:adfs_response_sha384, false))
|
70
|
-
document.validate("F1:3C:6B:80:90:5A:03:0E:6C:91:3E:5D:15:FA:DD:B0:16:45:48:72").
|
70
|
+
expect(document.validate("F1:3C:6B:80:90:5A:03:0E:6C:91:3E:5D:15:FA:DD:B0:16:45:48:72")).to be_truthy
|
71
71
|
end
|
72
72
|
|
73
73
|
it "validate using SHA512" do
|
74
74
|
document = XMLSecurity::SignedDocument.new(fixture(:adfs_response_sha512, false))
|
75
|
-
document.validate("F1:3C:6B:80:90:5A:03:0E:6C:91:3E:5D:15:FA:DD:B0:16:45:48:72").
|
75
|
+
expect(document.validate("F1:3C:6B:80:90:5A:03:0E:6C:91:3E:5D:15:FA:DD:B0:16:45:48:72")).to be_truthy
|
76
76
|
end
|
77
77
|
end
|
78
78
|
|
@@ -83,7 +83,7 @@ module SamlIdp
|
|
83
83
|
document = XMLSecurity::SignedDocument.new(response)
|
84
84
|
inclusive_namespaces = document.send(:extract_inclusive_namespaces)
|
85
85
|
|
86
|
-
inclusive_namespaces.
|
86
|
+
expect(inclusive_namespaces).to eq %w[xs]
|
87
87
|
end
|
88
88
|
|
89
89
|
it "support implicit namespace resolution for exclusive canonicalization" do
|
@@ -91,7 +91,7 @@ module SamlIdp
|
|
91
91
|
document = XMLSecurity::SignedDocument.new(response)
|
92
92
|
inclusive_namespaces = document.send(:extract_inclusive_namespaces)
|
93
93
|
|
94
|
-
inclusive_namespaces.
|
94
|
+
expect(inclusive_namespaces).to eq %w[#default saml ds xs xsi]
|
95
95
|
end
|
96
96
|
|
97
97
|
it "return an empty list when inclusive namespace element is missing" do
|
@@ -101,7 +101,7 @@ module SamlIdp
|
|
101
101
|
document = XMLSecurity::SignedDocument.new(response)
|
102
102
|
inclusive_namespaces = document.send(:extract_inclusive_namespaces)
|
103
103
|
|
104
|
-
inclusive_namespaces.
|
104
|
+
expect(inclusive_namespaces).to be_empty
|
105
105
|
end
|
106
106
|
end
|
107
107
|
|
@@ -116,20 +116,20 @@ module SamlIdp
|
|
116
116
|
|
117
117
|
it "be able to validate a good response" do
|
118
118
|
Timecop.freeze Time.parse('2012-11-28 17:55:00 UTC') do
|
119
|
-
response.
|
120
|
-
response.
|
119
|
+
allow(response).to receive(:validate_subject_confirmation).and_return(true)
|
120
|
+
expect(response).to be_is_valid
|
121
121
|
end
|
122
122
|
end
|
123
123
|
|
124
124
|
it "fail before response is valid" do
|
125
125
|
Timecop.freeze Time.parse('2012-11-20 17:55:00 UTC') do
|
126
|
-
response.
|
126
|
+
expect(response).to_not be_is_valid
|
127
127
|
end
|
128
128
|
end
|
129
129
|
|
130
130
|
it "fail after response expires" do
|
131
131
|
Timecop.freeze Time.parse('2012-11-30 17:55:00 UTC') do
|
132
|
-
response.
|
132
|
+
expect(response).to_not be_is_valid
|
133
133
|
end
|
134
134
|
end
|
135
135
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: saml_idp
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.8.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jon Phenow
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2018-11-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -28,28 +28,28 @@ dependencies:
|
|
28
28
|
name: uuid
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - "
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '2.3'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - "
|
38
|
+
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '2.3'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: builder
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - "
|
45
|
+
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '3.0'
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - "
|
52
|
+
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '3.0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
@@ -70,98 +70,112 @@ dependencies:
|
|
70
70
|
name: rake
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- - "
|
73
|
+
- - ">="
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version:
|
75
|
+
version: '0'
|
76
76
|
type: :development
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- - "
|
80
|
+
- - ">="
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version:
|
82
|
+
version: '0'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: simplecov
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
|
-
- - "
|
87
|
+
- - ">="
|
88
88
|
- !ruby/object:Gem::Version
|
89
|
-
version: '0
|
89
|
+
version: '0'
|
90
90
|
type: :development
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
|
-
- - "
|
94
|
+
- - ">="
|
95
95
|
- !ruby/object:Gem::Version
|
96
|
-
version: '0
|
96
|
+
version: '0'
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
98
|
name: rspec
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
100
100
|
requirements:
|
101
|
-
- - "
|
101
|
+
- - ">="
|
102
102
|
- !ruby/object:Gem::Version
|
103
|
-
version:
|
103
|
+
version: 3.7.0
|
104
104
|
type: :development
|
105
105
|
prerelease: false
|
106
106
|
version_requirements: !ruby/object:Gem::Requirement
|
107
107
|
requirements:
|
108
|
-
- - "
|
108
|
+
- - ">="
|
109
109
|
- !ruby/object:Gem::Version
|
110
|
-
version:
|
110
|
+
version: 3.7.0
|
111
111
|
- !ruby/object:Gem::Dependency
|
112
112
|
name: ruby-saml
|
113
113
|
requirement: !ruby/object:Gem::Requirement
|
114
114
|
requirements:
|
115
|
-
- - "
|
115
|
+
- - ">="
|
116
116
|
- !ruby/object:Gem::Version
|
117
|
-
version: '1.
|
117
|
+
version: '1.5'
|
118
118
|
type: :development
|
119
119
|
prerelease: false
|
120
120
|
version_requirements: !ruby/object:Gem::Requirement
|
121
121
|
requirements:
|
122
|
-
- - "
|
122
|
+
- - ">="
|
123
123
|
- !ruby/object:Gem::Version
|
124
|
-
version: '1.
|
124
|
+
version: '1.5'
|
125
125
|
- !ruby/object:Gem::Dependency
|
126
126
|
name: rails
|
127
127
|
requirement: !ruby/object:Gem::Requirement
|
128
128
|
requirements:
|
129
|
-
- - "
|
129
|
+
- - ">="
|
130
130
|
- !ruby/object:Gem::Version
|
131
131
|
version: '3.2'
|
132
132
|
type: :development
|
133
133
|
prerelease: false
|
134
134
|
version_requirements: !ruby/object:Gem::Requirement
|
135
135
|
requirements:
|
136
|
-
- - "
|
136
|
+
- - ">="
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '3.2'
|
139
|
+
- !ruby/object:Gem::Dependency
|
140
|
+
name: activeresource
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - ">="
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: '3.2'
|
146
|
+
type: :development
|
147
|
+
prerelease: false
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
149
|
+
requirements:
|
150
|
+
- - ">="
|
137
151
|
- !ruby/object:Gem::Version
|
138
152
|
version: '3.2'
|
139
153
|
- !ruby/object:Gem::Dependency
|
140
154
|
name: capybara
|
141
155
|
requirement: !ruby/object:Gem::Requirement
|
142
156
|
requirements:
|
143
|
-
- - "
|
157
|
+
- - ">="
|
144
158
|
- !ruby/object:Gem::Version
|
145
|
-
version: 2.
|
159
|
+
version: '2.16'
|
146
160
|
type: :development
|
147
161
|
prerelease: false
|
148
162
|
version_requirements: !ruby/object:Gem::Requirement
|
149
163
|
requirements:
|
150
|
-
- - "
|
164
|
+
- - ">="
|
151
165
|
- !ruby/object:Gem::Version
|
152
|
-
version: 2.
|
166
|
+
version: '2.16'
|
153
167
|
- !ruby/object:Gem::Dependency
|
154
168
|
name: timecop
|
155
169
|
requirement: !ruby/object:Gem::Requirement
|
156
170
|
requirements:
|
157
|
-
- - "
|
171
|
+
- - ">="
|
158
172
|
- !ruby/object:Gem::Version
|
159
173
|
version: '0.8'
|
160
174
|
type: :development
|
161
175
|
prerelease: false
|
162
176
|
version_requirements: !ruby/object:Gem::Requirement
|
163
177
|
requirements:
|
164
|
-
- - "
|
178
|
+
- - ">="
|
165
179
|
- !ruby/object:Gem::Version
|
166
180
|
version: '0.8'
|
167
181
|
- !ruby/object:Gem::Dependency
|
@@ -178,7 +192,21 @@ dependencies:
|
|
178
192
|
- - ">="
|
179
193
|
- !ruby/object:Gem::Version
|
180
194
|
version: 0.6.4
|
181
|
-
|
195
|
+
- !ruby/object:Gem::Dependency
|
196
|
+
name: appraisal
|
197
|
+
requirement: !ruby/object:Gem::Requirement
|
198
|
+
requirements:
|
199
|
+
- - ">="
|
200
|
+
- !ruby/object:Gem::Version
|
201
|
+
version: '0'
|
202
|
+
type: :development
|
203
|
+
prerelease: false
|
204
|
+
version_requirements: !ruby/object:Gem::Requirement
|
205
|
+
requirements:
|
206
|
+
- - ">="
|
207
|
+
- !ruby/object:Gem::Version
|
208
|
+
version: '0'
|
209
|
+
description: SAML IdP (Identity Provider) Library for Ruby
|
182
210
|
email: jon.phenow@sportngin.com
|
183
211
|
executables: []
|
184
212
|
extensions: []
|
@@ -220,13 +248,13 @@ files:
|
|
220
248
|
- saml_idp.gemspec
|
221
249
|
- spec/acceptance/acceptance_helper.rb
|
222
250
|
- spec/acceptance/idp_controller_spec.rb
|
223
|
-
- spec/lib/saml_idp/.assertion_builder_spec.rb.swp
|
224
251
|
- spec/lib/saml_idp/algorithmable_spec.rb
|
225
252
|
- spec/lib/saml_idp/assertion_builder_spec.rb
|
226
253
|
- spec/lib/saml_idp/attribute_decorator_spec.rb
|
227
254
|
- spec/lib/saml_idp/configurator_spec.rb
|
228
255
|
- spec/lib/saml_idp/controller_spec.rb
|
229
256
|
- spec/lib/saml_idp/encryptor_spec.rb
|
257
|
+
- spec/lib/saml_idp/incoming_metadata_spec.rb
|
230
258
|
- spec/lib/saml_idp/logout_request_builder_spec.rb
|
231
259
|
- spec/lib/saml_idp/logout_response_builder_spec.rb
|
232
260
|
- spec/lib/saml_idp/metadata_builder_spec.rb
|
@@ -312,14 +340,18 @@ files:
|
|
312
340
|
- spec/support/saml_request_macros.rb
|
313
341
|
- spec/support/security_helpers.rb
|
314
342
|
- spec/xml_security_spec.rb
|
315
|
-
homepage:
|
343
|
+
homepage: https://github.com/saml-idp/saml_idp
|
316
344
|
licenses:
|
317
|
-
-
|
318
|
-
metadata:
|
345
|
+
- MIT
|
346
|
+
metadata:
|
347
|
+
homepage_uri: https://github.com/saml-idp/saml_idp
|
348
|
+
source_code_uri: https://github.com/saml-idp/saml_idp
|
349
|
+
bug_tracker_uri: https://github.com/saml-idp/saml_idp/issues
|
350
|
+
documentation_uri: http://rdoc.info/gems/saml_idp/0.8.0
|
319
351
|
post_install_message: |
|
320
352
|
If you're just recently updating saml_idp - please be aware we've changed the default
|
321
353
|
certificate. See the PR and a description of why we've done this here:
|
322
|
-
https://github.com/
|
354
|
+
https://github.com/saml-idp/saml_idp/pull/29
|
323
355
|
|
324
356
|
If you just need to see the certificate `bundle open saml_idp` and go to
|
325
357
|
`lib/saml_idp/default.rb`
|
@@ -347,20 +379,20 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
347
379
|
version: '0'
|
348
380
|
requirements: []
|
349
381
|
rubyforge_project:
|
350
|
-
rubygems_version: 2.
|
382
|
+
rubygems_version: 2.7.6
|
351
383
|
signing_key:
|
352
384
|
specification_version: 4
|
353
|
-
summary: SAML Indentity Provider
|
385
|
+
summary: SAML Indentity Provider for Ruby
|
354
386
|
test_files:
|
355
387
|
- spec/acceptance/acceptance_helper.rb
|
356
388
|
- spec/acceptance/idp_controller_spec.rb
|
357
|
-
- spec/lib/saml_idp/.assertion_builder_spec.rb.swp
|
358
389
|
- spec/lib/saml_idp/algorithmable_spec.rb
|
359
390
|
- spec/lib/saml_idp/assertion_builder_spec.rb
|
360
391
|
- spec/lib/saml_idp/attribute_decorator_spec.rb
|
361
392
|
- spec/lib/saml_idp/configurator_spec.rb
|
362
393
|
- spec/lib/saml_idp/controller_spec.rb
|
363
394
|
- spec/lib/saml_idp/encryptor_spec.rb
|
395
|
+
- spec/lib/saml_idp/incoming_metadata_spec.rb
|
364
396
|
- spec/lib/saml_idp/logout_request_builder_spec.rb
|
365
397
|
- spec/lib/saml_idp/logout_response_builder_spec.rb
|
366
398
|
- spec/lib/saml_idp/metadata_builder_spec.rb
|