saml-kit 1.0.31 → 1.1.0

This diff has not been reviewed by any users.
Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 7b715995b6b91d7666c906d6d7e0c280ba3b6c83
4
- data.tar.gz: 293b70ea861c807cc5324fbcb6f47b5a3d78e117
2
+ SHA256:
3
+ metadata.gz: 39ae4610f337b0423a14f71aa9d03ea254ee6f453d3680970039b19cc6c3d0c1
4
+ data.tar.gz: 175432ff893cb775e91128bbef17f1cf111a062152d7ae1b59015ded4af2933e
5
5
  SHA512:
6
- metadata.gz: d4e61a1b4d67b00379b5d2c6add15d5ea61062873196207a53a49fbe842af7d77127c370763daece236791f9d595b0356acee7654c1c2b8c9243ecf31ae1e90a
7
- data.tar.gz: 42e2a80ffdf050f1a4f449d0d6bea8dfabd5b98c81b2bd3653e5abafcd790e8d80d09929f9f012171e7b62cce4d28cfa35fb26bc6c4dfa573b2410f538ec8e84
6
+ metadata.gz: 1fed3dfc0ca5ac7e5ed4991799df62ad44096419568fe87d3239049b2e64b56529285aca87e53f026c4a7dca2265fecffe8491189e8676d3861ff69577709633
7
+ data.tar.gz: a107ff7beab021f235dd6940a99cbd5897a07094d836104075c142f7d256e3d605e0a4bc85613c4aa0f88df768679466bfc2f861e99063045d655317bd0c8796
@@ -1,4 +1,5 @@
1
- Version 1.0.31
1
+ Version 1.1.0
2
+
2
3
  # Changelog
3
4
  All notable changes to this project will be documented in this file.
4
5
 
@@ -8,6 +9,19 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
8
9
  ## [Unreleased]
9
10
  - nil
10
11
 
12
+ ## [1.1.0] - 2019-04-30
13
+ ### Added
14
+ - Add support for ForceAuthn attribute on AuthnRequest
15
+
16
+ ### Removed
17
+ - Drop support for ruby 2.2
18
+ - Drop support for ruby 2.3
19
+
20
+ ### Changed
21
+ - Rescue from invalid signature validation
22
+ - Change minimum ruby version to 2.4
23
+ - Change minimum bundler to 2.0
24
+
11
25
  ## [1.0.31] - 2019-04-17
12
26
  ### Changed
13
27
  - Rescue from all decryption errors
@@ -69,7 +83,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
69
83
  ### Removed
70
84
  - Removed optional SessionNotOnOrAfter attribute from AuthnStatement.
71
85
 
72
- [Unreleased]: https://github.com/saml-kit/saml-kit/compare/v1.0.31...HEAD
86
+ [Unreleased]: https://github.com/saml-kit/saml-kit/compare/v1.1.0...HEAD
87
+ [1.1.0]: https://github.com/saml-kit/saml-kit/compare/v1.0.31...v1.1.0
73
88
  [1.0.31]: https://github.com/saml-kit/saml-kit/compare/v1.0.30...v1.0.31
74
89
  [1.0.30]: https://github.com/saml-kit/saml-kit/compare/v1.0.29...v1.0.30
75
90
  [1.0.29]: https://github.com/saml-kit/saml-kit/compare/v1.0.28...v1.0.29
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- saml-kit (1.0.31)
4
+ saml-kit (1.1.0)
5
5
  activemodel (>= 4.2.0)
6
6
  net-hippie (~> 0.1)
7
7
  xml-kit (>= 0.3.0, < 1.0.0)
@@ -19,8 +19,9 @@ GEM
19
19
  addressable (2.6.0)
20
20
  public_suffix (>= 2.0.2, < 4.0)
21
21
  ast (2.4.0)
22
- benchmark-perf (0.4.0)
23
- benchmark-trend (0.2.0)
22
+ benchmark-malloc (0.1.0)
23
+ benchmark-perf (0.5.0)
24
+ benchmark-trend (0.3.0)
24
25
  builder (3.2.3)
25
26
  bundler-audit (0.6.1)
26
27
  bundler (>= 1.2.0, < 3)
@@ -31,15 +32,15 @@ GEM
31
32
  diff-lcs (1.3)
32
33
  docile (1.3.1)
33
34
  ffaker (2.11.0)
34
- hashdiff (0.3.8)
35
- i18n (1.5.1)
35
+ hashdiff (0.3.9)
36
+ i18n (1.6.0)
36
37
  concurrent-ruby (~> 1.0)
37
38
  jaro_winkler (1.5.2)
38
39
  json (2.2.0)
39
40
  mini_portile2 (2.4.0)
40
41
  minitest (5.11.3)
41
42
  net-hippie (0.2.5)
42
- nokogiri (1.9.1)
43
+ nokogiri (1.10.3)
43
44
  mini_portile2 (~> 2.4.0)
44
45
  parallel (1.17.0)
45
46
  parser (2.6.2.1)
@@ -52,13 +53,14 @@ GEM
52
53
  rspec-core (~> 3.8.0)
53
54
  rspec-expectations (~> 3.8.0)
54
55
  rspec-mocks (~> 3.8.0)
55
- rspec-benchmark (0.4.0)
56
- benchmark-perf (~> 0.4.0)
57
- benchmark-trend (~> 0.2.0)
56
+ rspec-benchmark (0.5.0)
57
+ benchmark-malloc (~> 0.1.0)
58
+ benchmark-perf (~> 0.5.0)
59
+ benchmark-trend (~> 0.3.0)
58
60
  rspec (>= 3.0.0, < 4.0.0)
59
61
  rspec-core (3.8.0)
60
62
  rspec-support (~> 3.8.0)
61
- rspec-expectations (3.8.2)
63
+ rspec-expectations (3.8.3)
62
64
  diff-lcs (>= 1.2.0, < 2.0)
63
65
  rspec-support (~> 3.8.0)
64
66
  rspec-mocks (3.8.0)
@@ -106,7 +108,7 @@ PLATFORMS
106
108
  ruby
107
109
 
108
110
  DEPENDENCIES
109
- bundler (~> 1.17)
111
+ bundler (~> 2.0)
110
112
  bundler-audit (~> 0.6)
111
113
  ffaker (~> 2.7)
112
114
  rake (~> 10.0)
@@ -120,4 +122,4 @@ DEPENDENCIES
120
122
  webmock (~> 3.1)
121
123
 
122
124
  BUNDLED WITH
123
- 1.17.3
125
+ 2.0.1
@@ -47,6 +47,11 @@ module Saml
47
47
  at_xpath('./*/@AssertionConsumerServiceURL').try(:value)
48
48
  end
49
49
 
50
+ # Returns the ForceAuthn attribute as a boolean.
51
+ def force_authn
52
+ at_xpath('./*/@ForceAuthn').try(:value) == 'true'
53
+ end
54
+
50
55
  def name_id_format
51
56
  name_id_policy
52
57
  end
@@ -11,10 +11,10 @@ module Saml
11
11
  # the different SAML bindings that are
12
12
  # supported by this gem.
13
13
  module Bindings
14
- BINDINGS_2_0 = 'urn:oasis:names:tc:SAML:2.0:bindings'.freeze
15
- HTTP_ARTIFACT = "#{BINDINGS_2_0}:HTTP-Artifact".freeze
16
- HTTP_POST = "#{BINDINGS_2_0}:HTTP-POST".freeze
17
- HTTP_REDIRECT = "#{BINDINGS_2_0}:HTTP-Redirect".freeze
14
+ BINDINGS_2_0 = 'urn:oasis:names:tc:SAML:2.0:bindings'
15
+ HTTP_ARTIFACT = "#{BINDINGS_2_0}:HTTP-Artifact"
16
+ HTTP_POST = "#{BINDINGS_2_0}:HTTP-POST"
17
+ HTTP_REDIRECT = "#{BINDINGS_2_0}:HTTP-Redirect"
18
18
  ALL = {
19
19
  http_post: HTTP_POST,
20
20
  http_redirect: HTTP_REDIRECT,
@@ -10,6 +10,7 @@ module Saml
10
10
  attr_accessor :id, :now, :issuer, :assertion_consumer_service_url
11
11
  attr_accessor :name_id_format, :destination
12
12
  attr_accessor :version
13
+ attr_accessor :force_authn
13
14
  attr_reader :configuration
14
15
 
15
16
  def initialize(configuration: Saml::Kit.configuration)
@@ -36,10 +37,8 @@ module Saml
36
37
  IssueInstant: now.utc.iso8601,
37
38
  Destination: destination,
38
39
  }
39
- if assertion_consumer_service_url.present?
40
- options[:AssertionConsumerServiceURL] =
41
- assertion_consumer_service_url
42
- end
40
+ options[:ForceAuthn] = force_authn unless force_authn.nil?
41
+ options[:AssertionConsumerServiceURL] = assertion_consumer_service_url if assertion_consumer_service_url.present?
43
42
  options
44
43
  end
45
44
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Saml
2
4
  module Kit
3
5
  class Metadata
@@ -3,33 +3,33 @@
3
3
  module Saml
4
4
  module Kit
5
5
  module Namespaces
6
- SAML_2_0 = 'urn:oasis:names:tc:SAML:2.0'.freeze
7
- SAML_1_1 = 'urn:oasis:names:tc:SAML:1.1'.freeze
8
- ATTR_NAME_FORMAT = "#{SAML_2_0}:attrname-format".freeze
9
- NAME_ID_FORMAT_1_1 = "#{SAML_1_1}:nameid-format".freeze
10
- NAME_ID_FORMAT_2_0 = "#{SAML_2_0}:nameid-format".freeze
11
- STATUS = "#{SAML_2_0}:status".freeze
6
+ SAML_2_0 = 'urn:oasis:names:tc:SAML:2.0'
7
+ SAML_1_1 = 'urn:oasis:names:tc:SAML:1.1'
8
+ ATTR_NAME_FORMAT = "#{SAML_2_0}:attrname-format"
9
+ NAME_ID_FORMAT_1_1 = "#{SAML_1_1}:nameid-format"
10
+ NAME_ID_FORMAT_2_0 = "#{SAML_2_0}:nameid-format"
11
+ STATUS = "#{SAML_2_0}:status"
12
12
 
13
- ASSERTION = "#{SAML_2_0}:assertion".freeze
14
- ATTR_SPLAT = "#{ATTR_NAME_FORMAT}:*".freeze
15
- BASIC = "#{ATTR_NAME_FORMAT}:basic".freeze
16
- BEARER = "#{SAML_2_0}:cm:bearer".freeze
17
- EMAIL_ADDRESS = "#{NAME_ID_FORMAT_1_1}:emailAddress".freeze
18
- INVALID_NAME_ID_POLICY = "#{STATUS}:InvalidNameIDPolicy".freeze
19
- METADATA = "#{SAML_2_0}:metadata".freeze
20
- PASSWORD = "#{SAML_2_0}:ac:classes:Password".freeze
13
+ ASSERTION = "#{SAML_2_0}:assertion"
14
+ ATTR_SPLAT = "#{ATTR_NAME_FORMAT}:*"
15
+ BASIC = "#{ATTR_NAME_FORMAT}:basic"
16
+ BEARER = "#{SAML_2_0}:cm:bearer"
17
+ EMAIL_ADDRESS = "#{NAME_ID_FORMAT_1_1}:emailAddress"
18
+ INVALID_NAME_ID_POLICY = "#{STATUS}:InvalidNameIDPolicy"
19
+ METADATA = "#{SAML_2_0}:metadata"
20
+ PASSWORD = "#{SAML_2_0}:ac:classes:Password"
21
21
  PASSWORD_PROTECTED =
22
- "#{SAML_2_0}:ac:classes:PasswordProtectedTransport".freeze
23
- PERSISTENT = "#{NAME_ID_FORMAT_2_0}:persistent".freeze
24
- PROTOCOL = "#{SAML_2_0}:protocol".freeze
25
- REQUESTER_ERROR = "#{STATUS}:Requester".freeze
26
- RESPONDER_ERROR = "#{STATUS}:Responder".freeze
27
- SUCCESS = "#{STATUS}:Success".freeze
28
- TRANSIENT = "#{NAME_ID_FORMAT_2_0}:transient".freeze
29
- UNSPECIFIED = "#{SAML_2_0}:consent:unspecified".freeze
30
- UNSPECIFIED_NAMEID = "#{NAME_ID_FORMAT_1_1}:unspecified".freeze
31
- URI = "#{ATTR_NAME_FORMAT}:uri".freeze
32
- VERSION_MISMATCH_ERROR = "#{STATUS}:VersionMismatch".freeze
22
+ "#{SAML_2_0}:ac:classes:PasswordProtectedTransport"
23
+ PERSISTENT = "#{NAME_ID_FORMAT_2_0}:persistent"
24
+ PROTOCOL = "#{SAML_2_0}:protocol"
25
+ REQUESTER_ERROR = "#{STATUS}:Requester"
26
+ RESPONDER_ERROR = "#{STATUS}:Responder"
27
+ SUCCESS = "#{STATUS}:Success"
28
+ TRANSIENT = "#{NAME_ID_FORMAT_2_0}:transient"
29
+ UNSPECIFIED = "#{SAML_2_0}:consent:unspecified"
30
+ UNSPECIFIED_NAMEID = "#{NAME_ID_FORMAT_1_1}:unspecified"
31
+ URI = "#{ATTR_NAME_FORMAT}:uri"
32
+ VERSION_MISMATCH_ERROR = "#{STATUS}:VersionMismatch"
33
33
  end
34
34
  end
35
35
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Saml
2
4
  module Kit
3
5
  class Organization
@@ -105,7 +105,7 @@ module Saml
105
105
  dsignature.errors.each do |attribute|
106
106
  errors.add(attribute, error_message(attribute))
107
107
  end
108
- rescue Xmldsig::SchemaError => error
108
+ rescue StandardError => error
109
109
  errors.add(:base, error.message)
110
110
  end
111
111
 
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Saml
4
4
  module Kit
5
- VERSION = '1.0.31'.freeze
5
+ VERSION = '1.1.0'
6
6
  end
7
7
  end
@@ -14,7 +14,7 @@ Gem::Specification.new do |spec|
14
14
  spec.description = 'A simple toolkit for working with SAML.'
15
15
  spec.homepage = 'https://github.com/saml-kit/saml-kit'
16
16
  spec.license = 'MIT'
17
- spec.required_ruby_version = '>= 2.2.0'
17
+ spec.required_ruby_version = '~> 2.4'
18
18
 
19
19
  spec.files = `git ls-files -z`.split("\x0").reject do |f|
20
20
  (
@@ -31,7 +31,7 @@ Gem::Specification.new do |spec|
31
31
  spec.add_dependency 'activemodel', '>= 4.2.0'
32
32
  spec.add_dependency 'net-hippie', '~> 0.1'
33
33
  spec.add_dependency 'xml-kit', '>= 0.3.0', '< 1.0.0'
34
- spec.add_development_dependency 'bundler', '~> 1.17'
34
+ spec.add_development_dependency 'bundler', '~> 2.0'
35
35
  spec.add_development_dependency 'bundler-audit', '~> 0.6'
36
36
  spec.add_development_dependency 'ffaker', '~> 2.7'
37
37
  spec.add_development_dependency 'rake', '~> 10.0'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: saml-kit
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.31
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - mo khan
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-04-17 00:00:00.000000000 Z
11
+ date: 2019-04-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activemodel
@@ -64,14 +64,14 @@ dependencies:
64
64
  requirements:
65
65
  - - "~>"
66
66
  - !ruby/object:Gem::Version
67
- version: '1.17'
67
+ version: '2.0'
68
68
  type: :development
69
69
  prerelease: false
70
70
  version_requirements: !ruby/object:Gem::Requirement
71
71
  requirements:
72
72
  - - "~>"
73
73
  - !ruby/object:Gem::Version
74
- version: '1.17'
74
+ version: '2.0'
75
75
  - !ruby/object:Gem::Dependency
76
76
  name: bundler-audit
77
77
  requirement: !ruby/object:Gem::Requirement
@@ -334,17 +334,16 @@ require_paths:
334
334
  - lib
335
335
  required_ruby_version: !ruby/object:Gem::Requirement
336
336
  requirements:
337
- - - ">="
337
+ - - "~>"
338
338
  - !ruby/object:Gem::Version
339
- version: 2.2.0
339
+ version: '2.4'
340
340
  required_rubygems_version: !ruby/object:Gem::Requirement
341
341
  requirements:
342
342
  - - ">="
343
343
  - !ruby/object:Gem::Version
344
344
  version: '0'
345
345
  requirements: []
346
- rubyforge_project:
347
- rubygems_version: 2.4.5.1
346
+ rubygems_version: 3.0.3
348
347
  signing_key:
349
348
  specification_version: 4
350
349
  summary: A simple toolkit for working with SAML.