Commit 6b52746
Changed files (11)
lib
saml
kit
spec
saml
kit
bindings
builders
lib/saml/kit/deprecated/metadata.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
module Saml
module Kit
class Metadata
lib/saml/kit/bindings.rb
@@ -11,10 +11,10 @@ module Saml
# the different SAML bindings that are
# supported by this gem.
module Bindings
- BINDINGS_2_0 = 'urn:oasis:names:tc:SAML:2.0:bindings'.freeze
- HTTP_ARTIFACT = "#{BINDINGS_2_0}:HTTP-Artifact".freeze
- HTTP_POST = "#{BINDINGS_2_0}:HTTP-POST".freeze
- HTTP_REDIRECT = "#{BINDINGS_2_0}:HTTP-Redirect".freeze
+ BINDINGS_2_0 = 'urn:oasis:names:tc:SAML:2.0:bindings'
+ HTTP_ARTIFACT = "#{BINDINGS_2_0}:HTTP-Artifact"
+ HTTP_POST = "#{BINDINGS_2_0}:HTTP-POST"
+ HTTP_REDIRECT = "#{BINDINGS_2_0}:HTTP-Redirect"
ALL = {
http_post: HTTP_POST,
http_redirect: HTTP_REDIRECT,
lib/saml/kit/namespaces.rb
@@ -3,33 +3,33 @@
module Saml
module Kit
module Namespaces
- SAML_2_0 = 'urn:oasis:names:tc:SAML:2.0'.freeze
- SAML_1_1 = 'urn:oasis:names:tc:SAML:1.1'.freeze
- ATTR_NAME_FORMAT = "#{SAML_2_0}:attrname-format".freeze
- NAME_ID_FORMAT_1_1 = "#{SAML_1_1}:nameid-format".freeze
- NAME_ID_FORMAT_2_0 = "#{SAML_2_0}:nameid-format".freeze
- STATUS = "#{SAML_2_0}:status".freeze
+ SAML_2_0 = 'urn:oasis:names:tc:SAML:2.0'
+ SAML_1_1 = 'urn:oasis:names:tc:SAML:1.1'
+ ATTR_NAME_FORMAT = "#{SAML_2_0}:attrname-format"
+ NAME_ID_FORMAT_1_1 = "#{SAML_1_1}:nameid-format"
+ NAME_ID_FORMAT_2_0 = "#{SAML_2_0}:nameid-format"
+ STATUS = "#{SAML_2_0}:status"
- ASSERTION = "#{SAML_2_0}:assertion".freeze
- ATTR_SPLAT = "#{ATTR_NAME_FORMAT}:*".freeze
- BASIC = "#{ATTR_NAME_FORMAT}:basic".freeze
- BEARER = "#{SAML_2_0}:cm:bearer".freeze
- EMAIL_ADDRESS = "#{NAME_ID_FORMAT_1_1}:emailAddress".freeze
- INVALID_NAME_ID_POLICY = "#{STATUS}:InvalidNameIDPolicy".freeze
- METADATA = "#{SAML_2_0}:metadata".freeze
- PASSWORD = "#{SAML_2_0}:ac:classes:Password".freeze
+ ASSERTION = "#{SAML_2_0}:assertion"
+ ATTR_SPLAT = "#{ATTR_NAME_FORMAT}:*"
+ BASIC = "#{ATTR_NAME_FORMAT}:basic"
+ BEARER = "#{SAML_2_0}:cm:bearer"
+ EMAIL_ADDRESS = "#{NAME_ID_FORMAT_1_1}:emailAddress"
+ INVALID_NAME_ID_POLICY = "#{STATUS}:InvalidNameIDPolicy"
+ METADATA = "#{SAML_2_0}:metadata"
+ PASSWORD = "#{SAML_2_0}:ac:classes:Password"
PASSWORD_PROTECTED =
- "#{SAML_2_0}:ac:classes:PasswordProtectedTransport".freeze
- PERSISTENT = "#{NAME_ID_FORMAT_2_0}:persistent".freeze
- PROTOCOL = "#{SAML_2_0}:protocol".freeze
- REQUESTER_ERROR = "#{STATUS}:Requester".freeze
- RESPONDER_ERROR = "#{STATUS}:Responder".freeze
- SUCCESS = "#{STATUS}:Success".freeze
- TRANSIENT = "#{NAME_ID_FORMAT_2_0}:transient".freeze
- UNSPECIFIED = "#{SAML_2_0}:consent:unspecified".freeze
- UNSPECIFIED_NAMEID = "#{NAME_ID_FORMAT_1_1}:unspecified".freeze
- URI = "#{ATTR_NAME_FORMAT}:uri".freeze
- VERSION_MISMATCH_ERROR = "#{STATUS}:VersionMismatch".freeze
+ "#{SAML_2_0}:ac:classes:PasswordProtectedTransport"
+ PERSISTENT = "#{NAME_ID_FORMAT_2_0}:persistent"
+ PROTOCOL = "#{SAML_2_0}:protocol"
+ REQUESTER_ERROR = "#{STATUS}:Requester"
+ RESPONDER_ERROR = "#{STATUS}:Responder"
+ SUCCESS = "#{STATUS}:Success"
+ TRANSIENT = "#{NAME_ID_FORMAT_2_0}:transient"
+ UNSPECIFIED = "#{SAML_2_0}:consent:unspecified"
+ UNSPECIFIED_NAMEID = "#{NAME_ID_FORMAT_1_1}:unspecified"
+ URI = "#{ATTR_NAME_FORMAT}:uri"
+ VERSION_MISMATCH_ERROR = "#{STATUS}:VersionMismatch"
end
end
end
lib/saml/kit/organization.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
module Saml
module Kit
class Organization
lib/saml/kit/version.rb
@@ -2,6 +2,6 @@
module Saml
module Kit
- VERSION = '1.0.31'.freeze
+ VERSION = '1.0.31'
end
end
spec/saml/kit/bindings/url_builder_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
RSpec.describe Saml::Kit::Bindings::UrlBuilder do
describe '#build' do
let(:xml) { '<xml></xml>' }
@@ -57,9 +59,9 @@ RSpec.describe Saml::Kit::Bindings::UrlBuilder do
query_params = to_query_params(result)
expect(query_params['SigAlg']).to eql(CGI.escape(::Xml::Kit::Namespaces::SHA256))
- payload = "#{query_string_parameter}=#{query_params[query_string_parameter]}"
- payload << "&RelayState=#{query_params['RelayState']}"
- payload << "&SigAlg=#{query_params['SigAlg']}"
+ payload = "#{query_string_parameter}=#{query_params[query_string_parameter]}" \
+ "&RelayState=#{query_params['RelayState']}" \
+ "&SigAlg=#{query_params['SigAlg']}"
private_key = configuration.private_keys(use: :signing).last
expected_signature = Base64.strict_encode64(private_key.sign(OpenSSL::Digest::SHA256.new, payload))
expect(query_params['Signature']).to eql(expected_signature)
@@ -70,8 +72,8 @@ RSpec.describe Saml::Kit::Bindings::UrlBuilder do
query_params = to_query_params(result)
expect(query_params['SigAlg']).to eql(CGI.escape(::Xml::Kit::Namespaces::SHA256))
- payload = "#{query_string_parameter}=#{query_params[query_string_parameter]}"
- payload << "&SigAlg=#{query_params['SigAlg']}"
+ payload = "#{query_string_parameter}=#{query_params[query_string_parameter]}" \
+ "&SigAlg=#{query_params['SigAlg']}"
private_key = configuration.private_keys(use: :signing).last
expected_signature = Base64.strict_encode64(private_key.sign(OpenSSL::Digest::SHA256.new, payload))
expect(query_params['Signature']).to eql(expected_signature)
spec/saml/kit/builders/assertion_builder_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'spec_helper'
RSpec.describe Saml::Kit::Builders::Assertion do
.rubocop.yml
@@ -12,7 +12,7 @@ AllCops:
- 'spec/examples/**/*'
- 'tmp/**/*'
- 'vendor/**/*'
- TargetRubyVersion: 2.2
+ TargetRubyVersion: 2.4
Layout/AlignParameters:
Enabled: true
CHANGELOG.md
@@ -8,6 +8,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased]
### Changed
- Rescue from invalid signature validation
+- Change minimum ruby version to 2.4
+- Change minimum bundler to 2.0
## [1.0.31] - 2019-04-17
### Changed
Gemfile.lock
@@ -108,7 +108,7 @@ PLATFORMS
ruby
DEPENDENCIES
- bundler (~> 1.17)
+ bundler (~> 2.0)
bundler-audit (~> 0.6)
ffaker (~> 2.7)
rake (~> 10.0)
@@ -122,4 +122,4 @@ DEPENDENCIES
webmock (~> 3.1)
BUNDLED WITH
- 1.17.3
+ 2.0.1
saml-kit.gemspec
@@ -14,7 +14,7 @@ Gem::Specification.new do |spec|
spec.description = 'A simple toolkit for working with SAML.'
spec.homepage = 'https://github.com/saml-kit/saml-kit'
spec.license = 'MIT'
- spec.required_ruby_version = '>= 2.2.0'
+ spec.required_ruby_version = '>= 2.4.0'
spec.files = `git ls-files -z`.split("\x0").reject do |f|
(
@@ -31,7 +31,7 @@ Gem::Specification.new do |spec|
spec.add_dependency 'activemodel', '>= 4.2.0'
spec.add_dependency 'net-hippie', '~> 0.1'
spec.add_dependency 'xml-kit', '>= 0.3.0', '< 1.0.0'
- spec.add_development_dependency 'bundler', '~> 1.17'
+ spec.add_development_dependency 'bundler', '~> 2.0'
spec.add_development_dependency 'bundler-audit', '~> 0.6'
spec.add_development_dependency 'ffaker', '~> 2.7'
spec.add_development_dependency 'rake', '~> 10.0'