linzer 0.7.1 → 0.7.2
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 +4 -4
- data/CHANGELOG.md +8 -0
- data/Rakefile +6 -0
- data/lib/linzer/http.rb +1 -0
- data/lib/linzer/message/adapter/abstract.rb +1 -1
- data/lib/linzer/message/adapter/http_gem/request.rb +2 -2
- data/lib/linzer/message/adapter/http_gem/response.rb +2 -2
- data/lib/linzer/message/adapter/net_http/request.rb +2 -2
- data/lib/linzer/message/adapter/net_http/response.rb +2 -2
- data/lib/linzer/message/adapter/rack/common.rb +3 -5
- data/lib/linzer/message/adapter/rack/request.rb +2 -2
- data/lib/linzer/message/adapter/rack/response.rb +5 -3
- data/lib/linzer/message.rb +1 -1
- data/lib/linzer/version.rb +1 -1
- data/lib/linzer.rb +6 -1
- data/lib/rack/auth/signature.rb +6 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 760341bd66c313c36150f7cb31d741c84252ffe726ecd5bc838928b5f656832f
|
4
|
+
data.tar.gz: 6df1c1af21e5fbadc3eb242dc84973251ddc8dd6849606a2bd213ea57ffd9d89
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 899a41a945b59b368110befe463d300445d605483ef64020e1e35c12e71e0945f3b6aeb1774155cbc4919246f88fc0b77175fe16d2f4270e4bc57f861983f145
|
7
|
+
data.tar.gz: 8af02940869d0e451a8c45738f943cb32bdc515347d325121cafbb9c49e6e1e601d897749e2a5f9453f7c1f6a98acff59e778a5489ed70a60476f0086ab4bace
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,13 @@
|
|
1
1
|
## [Unreleased]
|
2
2
|
|
3
|
+
## [0.7.2] - 2025-05-21
|
4
|
+
|
5
|
+
- Add a few integration tests against CloudFlare test server.
|
6
|
+
|
7
|
+
- Fix bug when accessing headers in http adapter classes.
|
8
|
+
Pull request [#14](https://github.com/nomadium/linzer/pull/14)
|
9
|
+
by [oneiros](https://github.com/oneiros).
|
10
|
+
|
3
11
|
## [0.7.1] - 2025-05-18
|
4
12
|
|
5
13
|
- Introduce specific exception classes for message signing errors
|
data/Rakefile
CHANGED
@@ -7,4 +7,10 @@ RSpec::Core::RakeTask.new(:spec)
|
|
7
7
|
|
8
8
|
require "standard/rake"
|
9
9
|
|
10
|
+
desc "Run RSpec integration examples"
|
11
|
+
task :integration do
|
12
|
+
sh "bundle exec rspec -t integration spec/integration/**"
|
13
|
+
end
|
14
|
+
|
10
15
|
task default: %i[spec standard]
|
16
|
+
task all: %i[integration default]
|
data/lib/linzer/http.rb
CHANGED
@@ -74,11 +74,9 @@ module Linzer
|
|
74
74
|
if has_tr
|
75
75
|
value = tr(name)
|
76
76
|
else
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
end
|
81
|
-
value = @operation.headers[name.value.to_s] if response?
|
77
|
+
rack_header_name = rack_header_name(name.value.to_s)
|
78
|
+
value = @operation.env[rack_header_name] if request?
|
79
|
+
value = @operation.get_header(rack_header_name) if response?
|
82
80
|
end
|
83
81
|
value.dup&.strip
|
84
82
|
end
|
@@ -16,12 +16,14 @@ module Linzer
|
|
16
16
|
freeze
|
17
17
|
end
|
18
18
|
|
19
|
-
def
|
20
|
-
@operation.
|
19
|
+
def header(name)
|
20
|
+
@operation.get_header(rack_header_name(name))
|
21
21
|
end
|
22
22
|
|
23
23
|
def attach!(signature)
|
24
|
-
signature.to_h.each
|
24
|
+
signature.to_h.each do |h, v|
|
25
|
+
@operation.set_header(rack_header_name(h), v)
|
26
|
+
end
|
25
27
|
@operation
|
26
28
|
end
|
27
29
|
end
|
data/lib/linzer/message.rb
CHANGED
@@ -15,7 +15,7 @@ module Linzer
|
|
15
15
|
def_delegators :@adapter, :request?, :response?, :attached_request?
|
16
16
|
|
17
17
|
# fields look up
|
18
|
-
def_delegators :@adapter, :
|
18
|
+
def_delegators :@adapter, :header, :field?, :[]
|
19
19
|
|
20
20
|
# to attach a signature to the underlying HTTP message
|
21
21
|
def_delegators :@adapter, :attach!
|
data/lib/linzer/version.rb
CHANGED
data/lib/linzer.rb
CHANGED
@@ -59,7 +59,12 @@ module Linzer
|
|
59
59
|
|
60
60
|
def verify!(request_or_response, key: nil, no_older_than: 900)
|
61
61
|
message = Message.new(request_or_response)
|
62
|
-
|
62
|
+
signature_headers = {}
|
63
|
+
%w[signature-input signature].each do |name|
|
64
|
+
value = message.header(name)
|
65
|
+
signature_headers[name] = value if value
|
66
|
+
end
|
67
|
+
signature = Signature.build(signature_headers)
|
63
68
|
keyid = signature.parameters["keyid"]
|
64
69
|
raise Linzer::Error, "key not found" if !key && !keyid
|
65
70
|
verify_key = block_given? ? (yield keyid) : key
|
data/lib/rack/auth/signature.rb
CHANGED
@@ -67,7 +67,12 @@ module Rack
|
|
67
67
|
signature_opts[:label] = label if label
|
68
68
|
|
69
69
|
@message = Linzer::Message.new(request)
|
70
|
-
|
70
|
+
signature_headers = {}
|
71
|
+
%w[signature-input signature].each do |name|
|
72
|
+
value = @message.header(name)
|
73
|
+
signature_headers[name] = value if value
|
74
|
+
end
|
75
|
+
signature = Linzer::Signature.build(signature_headers, **signature_opts)
|
71
76
|
request.env["rack.signature"] = signature
|
72
77
|
signature
|
73
78
|
end
|