mdqt 0.7.0 → 0.8.0

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
2
  SHA256:
3
- metadata.gz: 46e40432be4833725b33540baa11fe2e1743510d95be216619948b8fd2d7b3f2
4
- data.tar.gz: e8fa83e312ed1b8d3a309e017afd058b5bb3c586d9523b5a4ea29f62364942ec
3
+ metadata.gz: eddc289f85b0a56a6bc01ad77a3a59ae1473a493b50efe5d7e28e69d26e387a7
4
+ data.tar.gz: 7ad454f0ee1488e96e00a60b303494d2800a1fcec3fb4c64925eb0fae07c94f9
5
5
  SHA512:
6
- metadata.gz: 6d8e4a2ca25ccbccbceedac4ed4f2f33010ed37acefb36d00818392640432478ed7244415c6885e763c0c6afba872f6d440c9b3fa179ddca58a2e518aeb50059
7
- data.tar.gz: '0862c373965072f7a470e9d27559c30556a51b3e769aca8366cd63746923891f49ca978c6abbc73d9470e183abbdd0bda509cf53386288a6afc1f1946fe06849'
6
+ metadata.gz: a0c2f6828d47d9e6ec21964e523a5b7a9e8d5f1bd4a39174528a20a8a0af98f0d4b20a75b16af3891619603db94240ec177c87fe918ea6df9e9490aa960b002b
7
+ data.tar.gz: 816544153bdcbfc3c47f29640c7538cbe199ab6d7323288ec10aa358e7764e93695a17166d91768defafcb12e0577f403d0cae9149cfdc21d4f733f3b941a51d
@@ -7,11 +7,17 @@
7
7
 
8
8
  name: Ruby
9
9
 
10
+ env:
11
+ LANG: "en_GB.UTF-8"
12
+
10
13
  on:
11
14
  push:
12
- branches: [ master ]
15
+ branches: [ "master" ]
13
16
  pull_request:
14
- branches: [ master ]
17
+ branches: [ "master" ]
18
+
19
+ permissions:
20
+ contents: read
15
21
 
16
22
  jobs:
17
23
  test:
@@ -19,17 +25,17 @@ jobs:
19
25
  runs-on: ubuntu-latest
20
26
  strategy:
21
27
  matrix:
22
- ruby-version: ['2.6', '2.7', '3.0']
28
+ ruby-version: ['3.0']
23
29
 
24
30
  steps:
25
- - uses: actions/checkout@v2
31
+ - uses: actions/checkout@v3
26
32
  - name: Set up Ruby
27
33
  # To automatically get bug fixes and new Ruby versions for ruby/setup-ruby,
28
34
  # change this to (see https://github.com/ruby/setup-ruby#versioning):
29
35
  # uses: ruby/setup-ruby@v1
30
- uses: ruby/setup-ruby@473e4d8fe5dd94ee328fdfca9f8c9c7afc9dae5e
36
+ uses: ruby/setup-ruby@55283cc23133118229fd3f97f9336ee23a179fcf # v1.146.0
31
37
  with:
32
38
  ruby-version: ${{ matrix.ruby-version }}
33
39
  bundler-cache: true # runs 'bundle install' and caches installed gems automatically
34
40
  - name: Run tests
35
- run: bundle exec rake
41
+ run: bundle exec rake features
data/CHANGELOG.md CHANGED
@@ -1,5 +1,23 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.8.0
4
+
5
+ ## Breaking Changes
6
+
7
+ - MDQT now requires Ruby 3.0 or later, due to updated dependencies and their requirements
8
+ - MDQT now installs XML handling gems automatically - Nokogiri and XMLDSig are no longer optional. Nokogiri seems to be
9
+ less troublesome to install now and is needed by some useful current and planned features. Please let me know if this
10
+ causes you any problems.
11
+
12
+ ## Improvements
13
+
14
+ - New HTTP library means caching should be slightly faster and HTTP2 is now supported
15
+ - MDQ base URLs should end with a slash, so slashless URLs are now normalised to include one.
16
+
17
+ ## Fixes
18
+
19
+ - URLs for MDQ entity records now properly support paths - previously only MDQ services at the root path would work
20
+
3
21
  ## 0.7.0
4
22
 
5
23
  ### Improvements
data/Gemfile CHANGED
@@ -6,5 +6,4 @@ gemspec
6
6
  gem 'simplecov', require: false, group: :test
7
7
 
8
8
  gem 'pry'
9
- gem 'nokogiri', '~> 1.12', '>= 1.12.5'
10
- gem 'xmldsig', '>= 0.6.6'
9
+ gem 'rake'
data/README.md CHANGED
@@ -33,7 +33,7 @@ The UK Access Management Federation has a
33
33
  ## Installation
34
34
 
35
35
  MDQT is tested on recent MacOS and Linux, and should work with
36
- Ruby 2.2.0 or later and recent JRuby releases.
36
+ Ruby 3.0.0 or later and recent JRuby releases.
37
37
 
38
38
  ### As a gem for general use
39
39
 
@@ -62,7 +62,7 @@ and then execute:
62
62
  (Experimental)
63
63
  See the instructions at [MDQT-Container](https://github.com/Digital-Identity-Labs/mdqt-container)
64
64
 
65
- ### Extra steps for verifying signed metadata
65
+ ### Verifying signed metadata, installing Nokogiri
66
66
 
67
67
  MDQT can check that metadata has not been tampered with by verifying its
68
68
  signature. Some MDQ services use unencrypted HTTP connections and rely
@@ -71,17 +71,9 @@ signature. Some MDQ services use unencrypted HTTP connections and rely
71
71
  MDQT supports signature verification but requires a Ruby library called
72
72
  Nokogiri to do the hard work. Nokogiri is fast and useful but can sometimes
73
73
  be awkward to install for non-developers (it can sometimes require a C development
74
- environment and various XML libraries). To make it easier to install a basic MDQT we've made
75
- XML signature verification an optional feature.
76
-
77
- To enable signature verification you must also install the `xmdsig` gem:
78
-
79
- $ sudo gem install xmldsig
80
-
81
- The `xmldsig` gem will install Nokogiri, and Nokogiri will try to build itself.
82
- If you encounter any problems installing Nokogiri the
83
- [Installing Nokogiri](http://www.nokogiri.org/tutorials/installing_nokogiri.html)
84
- documentation is very helpful.
74
+ environment and various XML libraries). In most cases Nokogiri will install
75
+ automatically, without problems, when you install MDQT, but if you encounter any
76
+ problems installing Nokogiri the [Installing Nokogiri](http://www.nokogiri.org/tutorials/installing_nokogiri.html) documentation is very helpful.
85
77
 
86
78
  ## Commandline Usage as an MDQ client
87
79
 
@@ -255,8 +247,10 @@ by Tom Scavo of Internet2. Some of the scripts provide similar functionality to
255
247
 
256
248
  ## Library Usage
257
249
 
258
- Please don't! This gem is early in development and the API is not stable. Later
259
- releases of this gem will provide a simple library to use in other Ruby applications.
250
+ Please don't! We originally had plans to include a usable generic library was part of MDQT but unless there's new demand
251
+ for it that's now unlikely to happen. However, we do now have a set of libraries for the Elixir language, based around
252
+ [Smee](https://github.com/Digital-Identity-Labs/smee) - not very helpful for Ruby projects but possibly of use for new
253
+ projects.
260
254
 
261
255
  ## Development
262
256
 
data/lib/mdqt/cli/base.rb CHANGED
@@ -85,7 +85,7 @@ module MDQT
85
85
  choice = options.service.to_s.strip
86
86
 
87
87
  if choice.downcase.start_with? "http"
88
- choice
88
+ normalize_base_url(choice)
89
89
  else
90
90
  Defaults.lookup_service_alias(choice)
91
91
  end
@@ -172,6 +172,15 @@ module MDQT
172
172
 
173
173
  private
174
174
 
175
+ ## Base URLs should end with a "/", it might be easier to just add one rather than raise an error
176
+ def self.normalize_base_url(url)
177
+ if url.end_with?('/')
178
+ url
179
+ else
180
+ "#{url}/"
181
+ end
182
+ end
183
+
175
184
  end
176
185
 
177
186
  end
@@ -57,7 +57,7 @@ module MDQT
57
57
  },
58
58
  { alias: "dfn",
59
59
  locale: "de_utf8",
60
- url: "https://mdq.aai.dfn.de"
60
+ url: "https://mdq.aai.dfn.de/"
61
61
  },
62
62
  ]
63
63
  end
data/lib/mdqt/cli/url.rb CHANGED
@@ -27,7 +27,7 @@ module MDQT
27
27
 
28
28
  def build_url(mds, entity_id)
29
29
 
30
- URI.join(service_url(options), "/entities/#{mds.prepare_id(entity_id)}")
30
+ URI.join(service_url(options), "entities/#{mds.prepare_id(entity_id)}")
31
31
  end
32
32
 
33
33
  end
@@ -3,22 +3,26 @@ module MDQT
3
3
 
4
4
  class MetadataService
5
5
 
6
- require 'faraday'
7
- require 'typhoeus'
8
- require 'typhoeus/adapters/faraday'
9
6
  require 'cgi'
10
7
 
11
- require 'faraday_middleware'
8
+ require 'faraday'
12
9
  require 'faraday-http-cache'
10
+ require 'faraday/follow_redirects'
13
11
 
12
+ require 'active_support'
13
+ require 'active_support/core_ext'
14
14
  require 'active_support/cache'
15
15
  require 'active_support/cache/file_store'
16
16
  require 'active_support/cache/mem_cache_store'
17
17
  require 'active_support/logger'
18
18
  require 'active_support/notifications'
19
+ require "httpx/adapters/faraday"
19
20
 
20
21
  require_relative './metadata_response'
21
22
 
23
+ #Rails.application.config.active_support.cache_format_version = 7.0
24
+ ActiveSupport::Deprecation.behavior = :silence
25
+
22
26
  def initialize(base_url, options = {})
23
27
  @base_url = base_url
24
28
  @cache_type = options[:cache_type] ? options[:cache_type].to_sym : :none
@@ -142,8 +146,7 @@ module MDQT
142
146
  def connection
143
147
  Faraday.new(:url => base_url) do |faraday|
144
148
  faraday.request :url_encoded
145
- faraday.use FaradayMiddleware::Gzip
146
- faraday.use FaradayMiddleware::FollowRedirects
149
+ faraday.response :follow_redirects
147
150
  if cache?
148
151
  faraday.use :http_cache,
149
152
  store: cache_store,
@@ -156,7 +159,7 @@ module MDQT
156
159
  faraday.headers['Accept-Charset'] = 'utf-8'
157
160
  faraday.headers['User-Agent'] = "MDQT v#{MDQT::VERSION}"
158
161
  #faraday.response :logger
159
- faraday.adapter :typhoeus
162
+ faraday.adapter :httpx
160
163
  end
161
164
  end
162
165
 
data/lib/mdqt/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module MDQT
2
- VERSION = "0.7.0"
2
+ VERSION = "0.8.0"
3
3
  end
data/mdqt.gemspec CHANGED
@@ -14,7 +14,7 @@ Gem::Specification.new do |spec|
14
14
  spec.homepage = "https://github.com/Digital-Identity-Labs/mdqt"
15
15
  spec.license = "MIT"
16
16
 
17
- spec.required_ruby_version = '>= 2.1.0'
17
+ spec.required_ruby_version = '>= 3.0.0'
18
18
 
19
19
  spec.files = `git ls-files -z`.split("\x0").reject do |f|
20
20
  f.match(%r{^(test|spec|features)/})
@@ -24,21 +24,19 @@ Gem::Specification.new do |spec|
24
24
  spec.require_paths = ["lib"]
25
25
 
26
26
  spec.add_dependency 'commander', "~>4.6"
27
- spec.add_dependency 'faraday', "~>1.8"
28
- spec.add_dependency 'faraday_middleware', "~>1.2"
29
- spec.add_dependency 'faraday-http-cache', "~>2.2"
30
- spec.add_dependency 'typhoeus', "~>1.4"
31
- spec.add_dependency 'activesupport', "~>6.1"
32
- spec.add_dependency 'dalli', "~>3.0"
27
+ spec.add_dependency 'faraday', "~>2.9.0"
28
+ spec.add_dependency 'faraday-http-cache', "~>2.5.0"
29
+ spec.add_dependency 'faraday-follow_redirects', "~>0.3.0"
30
+ spec.add_dependency 'httpx', "~>1.2.0"
31
+ spec.add_dependency 'activesupport', "~>7.1.2"
32
+ spec.add_dependency 'dalli', "~>3.2"
33
33
  spec.add_dependency 'pastel', "~>0.8"
34
34
  spec.add_dependency 'terminal-table', "~>3.0"
35
- spec.add_dependency 'concurrent-ruby-ext', "1.1.9"
35
+ spec.add_dependency 'concurrent-ruby-ext', "~>1.2.2"
36
+ spec.add_dependency 'xmldsig', "~>0.7.0"
36
37
 
37
-
38
- #spec.add_dependency 'xmldsig'
39
-
40
- spec.add_development_dependency "bundler", "~> 2"
41
- spec.add_development_dependency "rake", ">= 12.3.3"
38
+ # spec.add_development_dependency "bundler", "~>2"
39
+ # spec.add_development_dependency "rake", ">= 13.1.0"
42
40
  spec.add_development_dependency "rspec", "~> 3.10"
43
41
  spec.add_development_dependency "cucumber", "~> 7.1"
44
42
  spec.add_development_dependency "aruba", "~> 2.0"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mdqt
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.0
4
+ version: 0.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pete Birkinshaw
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-01-16 00:00:00.000000000 Z
11
+ date: 2024-01-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: commander
@@ -30,84 +30,84 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '1.8'
33
+ version: 2.9.0
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
- version: '1.8'
40
+ version: 2.9.0
41
41
  - !ruby/object:Gem::Dependency
42
- name: faraday_middleware
42
+ name: faraday-http-cache
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '1.2'
47
+ version: 2.5.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
- version: '1.2'
54
+ version: 2.5.0
55
55
  - !ruby/object:Gem::Dependency
56
- name: faraday-http-cache
56
+ name: faraday-follow_redirects
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '2.2'
61
+ version: 0.3.0
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '2.2'
68
+ version: 0.3.0
69
69
  - !ruby/object:Gem::Dependency
70
- name: typhoeus
70
+ name: httpx
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '1.4'
75
+ version: 1.2.0
76
76
  type: :runtime
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: '1.4'
82
+ version: 1.2.0
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: activesupport
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: '6.1'
89
+ version: 7.1.2
90
90
  type: :runtime
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: '6.1'
96
+ version: 7.1.2
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: dalli
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
101
  - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: '3.0'
103
+ version: '3.2'
104
104
  type: :runtime
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: '3.0'
110
+ version: '3.2'
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: pastel
113
113
  requirement: !ruby/object:Gem::Requirement
@@ -140,44 +140,30 @@ dependencies:
140
140
  name: concurrent-ruby-ext
141
141
  requirement: !ruby/object:Gem::Requirement
142
142
  requirements:
143
- - - '='
143
+ - - "~>"
144
144
  - !ruby/object:Gem::Version
145
- version: 1.1.9
145
+ version: 1.2.2
146
146
  type: :runtime
147
147
  prerelease: false
148
148
  version_requirements: !ruby/object:Gem::Requirement
149
149
  requirements:
150
- - - '='
150
+ - - "~>"
151
151
  - !ruby/object:Gem::Version
152
- version: 1.1.9
152
+ version: 1.2.2
153
153
  - !ruby/object:Gem::Dependency
154
- name: bundler
154
+ name: xmldsig
155
155
  requirement: !ruby/object:Gem::Requirement
156
156
  requirements:
157
157
  - - "~>"
158
158
  - !ruby/object:Gem::Version
159
- version: '2'
160
- type: :development
159
+ version: 0.7.0
160
+ type: :runtime
161
161
  prerelease: false
162
162
  version_requirements: !ruby/object:Gem::Requirement
163
163
  requirements:
164
164
  - - "~>"
165
165
  - !ruby/object:Gem::Version
166
- version: '2'
167
- - !ruby/object:Gem::Dependency
168
- name: rake
169
- requirement: !ruby/object:Gem::Requirement
170
- requirements:
171
- - - ">="
172
- - !ruby/object:Gem::Version
173
- version: 12.3.3
174
- type: :development
175
- prerelease: false
176
- version_requirements: !ruby/object:Gem::Requirement
177
- requirements:
178
- - - ">="
179
- - !ruby/object:Gem::Version
180
- version: 12.3.3
166
+ version: 0.7.0
181
167
  - !ruby/object:Gem::Dependency
182
168
  name: rspec
183
169
  requirement: !ruby/object:Gem::Requirement
@@ -332,14 +318,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
332
318
  requirements:
333
319
  - - ">="
334
320
  - !ruby/object:Gem::Version
335
- version: 2.1.0
321
+ version: 3.0.0
336
322
  required_rubygems_version: !ruby/object:Gem::Requirement
337
323
  requirements:
338
324
  - - ">="
339
325
  - !ruby/object:Gem::Version
340
326
  version: '0'
341
327
  requirements: []
342
- rubygems_version: 3.4.1
328
+ rubygems_version: 3.5.4
343
329
  signing_key:
344
330
  specification_version: 4
345
331
  summary: Library and commandline utility for accessing MDQ services