|
1 | 1 | # 3.0.0 (Unreleased) |
2 | 2 |
|
3 | 3 | ## Breaking Changes |
| 4 | + |
4 | 5 | - **Drop support for Ruby < 3.2** - Now requires Ruby 3.2, 3.3, or 3.4+ |
5 | 6 | - **Drop support for Rails 6.x** - Now requires Rails 7.2+ or 8.0+ |
6 | 7 | - **Remove deprecated Ruby 2.x compatibility code** |
7 | 8 |
|
| 9 | +## New Features |
| 10 | + |
| 11 | +- Add Excon HTTP client support with middleware (based on contribution by @stiak in PR #154) |
| 12 | + |
8 | 13 | ## Improvements |
| 14 | + |
9 | 15 | - Update minimum Ruby version to 3.2 |
10 | 16 | - Update minimum Rails version to 7.2 |
11 | 17 | - Support Rails 8.0 |
12 | 18 | - Remove explicit drb dependency (now provided by Rails 7.2+) |
13 | 19 | - Update development dependencies to latest versions: |
| 20 | + - Excon ~> 0.100 |
14 | 21 | - Faraday ~> 2.0 |
15 | 22 | - HTTP ~> 5.0 |
16 | 23 | - HTTPi ~> 4.0 |
|
19 | 26 | - Rest-Client ~> 2.1 |
20 | 27 |
|
21 | 28 | # 2.6.0 (2025-01-18) |
| 29 | + |
22 | 30 | - Add Faraday middleware support (#1322051 Frédéric Mangano) |
23 | 31 | - Add MD5 compatibility option in authentic? method (#a618e15 Samir ALI CHERIF) |
24 | 32 | - Add support for Ruby 3.1 and Rails 7.0 (#552cab0 fwininger) |
|
30 | 38 | - Add drb gem dependency (2.0.4-2.0.5) for Ruby 3.4+ compatibility while avoiding Ruby 2.6 conflicts |
31 | 39 |
|
32 | 40 | # 2.5.1 (2021-11-26) |
| 41 | + |
33 | 42 | - Add spec coverage for all content hashes (#202 fwininger) |
34 | 43 | - Require MFA for Rubygems (#203 fwininger) |
35 | 44 | - Integration with GitHub Actions |
36 | 45 | - Fix look up of `X-AUTHORIZATION-CONTENT-SHA256` header |
37 | 46 | - Adding license information to the gemspec |
38 | 47 |
|
39 | 48 | # 2.5.0 (2021-05-11) |
| 49 | + |
40 | 50 | - Add support for Ruby 3.0 (#194 fwininger) |
41 | 51 | - Add support for Rails 6.1 (#194 fwininger) |
42 | 52 | - Drop support for Ruby 2.4 (#193 fwininger) |
|
45 | 55 | - Fix Faraday warning: `WARNING: Faraday::Request#method is deprecated` (#191 fwininger) |
46 | 56 |
|
47 | 57 | # 2.4.1 (2020-06-23) |
| 58 | + |
48 | 59 | - Fix inadvertent ActiveSupport dependency (#189 taylorthurlow) |
49 | 60 |
|
50 | 61 | # 2.4.0 (2020-05-05) |
| 62 | + |
51 | 63 | - Improved support for Rails 6.0 (#179 taylorthurlow, #177 fwininger) |
52 | 64 | - Added Ruby 2.6.0 support (#174 fwininger) |
53 | 65 | - README updates (#186 iranthau) |
54 | 66 |
|
55 | 67 | # 2.3.1 (2018-11-06) |
| 68 | + |
56 | 69 | - Fixed a regression in the http.rb driver (#173 tycooon) |
57 | 70 |
|
58 | 71 | # 2.3.0 (2018-10-23) |
| 72 | + |
59 | 73 | - Added support for Grape API (#169 phuongnd08 & dunghuynh) |
60 | 74 | - Added option for specifying customer headers to sign via new `headers_to_sign` |
61 | 75 | argument (#170 fakenine) |
62 | 76 | - Fix tests and drop support for Ruby < 2.3 (#171 fwininger) |
63 | 77 |
|
64 | 78 | # 2.2.0 (2018-03-12) |
| 79 | + |
65 | 80 | - Drop support ruby 1.x, rails 2.x, rails 3.x (#141 fwininger) |
66 | 81 | - Add http.rb request driver (#164 tycooon) |
67 | 82 | - Fix POST and PUT requests in RestClient (#151 fwininger) |
|
73 | 88 | - Updates to the README (zfletch) |
74 | 89 |
|
75 | 90 | # 2.1.0 (2016-12-22) |
| 91 | + |
76 | 92 | - Fixed a NoMethodError that might occur when using the NetHttp Driver (#130 grahamkenville) |
77 | 93 | - More securely compare signatures in a way that prevents timing attacks (#56 leishman, #133 will0) |
78 | 94 | - Remove support for MD2 and MD4 hashing algorithms since they are insecure (#134 will0) |
79 | 95 | - Disallow requests that are too far in the future to limit the time available for a brute force signature guess (#119 fwininger) |
80 | 96 |
|
81 | 97 | # 2.0.1 (2016-07-25) |
| 98 | + |
82 | 99 | - Support of `api_auth_options` in ActiveResource integration (#102 fwininger) |
83 | 100 | - Replace use of `#blank?` with `#nil?` to not depend on ActiveSupport (#114 packrat386) |
84 | 101 | - Fix Auth header matching to not match invalid SHA algorithms (#115 packrat386) |
85 | 102 | - Replace `alias_method_chain` with `alias_method` in the railtie since |
86 | 103 | alias_method_chain is deprecated in Rails 5 (#118 mlarraz) |
87 | 104 |
|
88 | 105 | # 2.0.0 (2016-05-11) |
| 106 | + |
89 | 107 | - IMPORTANT: 2.0.0 is backwards incompatible with the default settings of v1.x |
90 | 108 | v2.0.0 always includes the http method in the canonical string. |
91 | 109 | You can use the upgrade strategy in v1.4.x and above to migrate to v2.0.0 |
92 | 110 | without any down time. Please see the 1.4.0 release nodes for more info |
93 | 111 | - Added support for other digest algorithms like SHA-256 (#98 fwininger) |
94 | 112 |
|
95 | 113 | # 1.5.0 (2016-01-21) |
| 114 | + |
96 | 115 | - Added a sign_with_http_method configuration option to the ActiveResource |
97 | 116 | rails tie to correspond to passing the `:with_http_method => true` into |
98 | 117 | `ApiAuth.sign!` |
99 | 118 |
|
100 | 119 | # 1.4.1 (2016-01-04) |
| 120 | + |
101 | 121 | - Fixed an issue where getters wouldn't immediately have the correct value after |
102 | 122 | setting a date or content md5 in some of the request drivers (#91) |
103 | 123 |
|
104 | 124 | # 1.4.0 (2015-12-16) |
105 | 125 |
|
106 | 126 | ## IMPORTANT SECURITY FIX (with backwards compatible fallback) |
107 | 127 |
|
108 | | - This version introduces a security fix. In previous versions, the canonical |
109 | | - string does not include the http method used to make the request, this means |
110 | | - two requests that would otherwise be identical (such as a GET and DELETE) |
111 | | - would have the same signature allowing for a MITM to swap one method for |
112 | | - another. |
| 128 | +This version introduces a security fix. In previous versions, the canonical |
| 129 | +string does not include the http method used to make the request, this means |
| 130 | +two requests that would otherwise be identical (such as a GET and DELETE) |
| 131 | +would have the same signature allowing for a MITM to swap one method for |
| 132 | +another. |
113 | 133 |
|
114 | | - In ApiAuth v1.4 `ApiAuth.authentic?` will allow for requests signed using either |
115 | | - the canonical string WITH the http method, or WITHOUT it. `ApiAuth.sign!` will, |
116 | | - by default, still sign the request using the canonical string without the |
117 | | - method. However, passing in the `:with_http_method => true` option into |
118 | | - `ApiAuth.sign?` will cause the request to use the http method as part of the |
119 | | - canonical string. |
| 134 | +In ApiAuth v1.4 `ApiAuth.authentic?` will allow for requests signed using either |
| 135 | +the canonical string WITH the http method, or WITHOUT it. `ApiAuth.sign!` will, |
| 136 | +by default, still sign the request using the canonical string without the |
| 137 | +method. However, passing in the `:with_http_method => true` option into |
| 138 | +`ApiAuth.sign?` will cause the request to use the http method as part of the |
| 139 | +canonical string. |
120 | 140 |
|
121 | | - Example: |
| 141 | +Example: |
122 | 142 |
|
123 | | - ```ruby |
124 | | - ApiAuth.sign!(request, access_id, secret_key, {:with_http_method => true}) |
125 | | - ``` |
| 143 | +```ruby |
| 144 | + ApiAuth.sign!(request, access_id, secret_key, {:with_http_method => true}) |
| 145 | +``` |
126 | 146 |
|
127 | | - This allows for an upgrade strategy that would look like the following. |
| 147 | +This allows for an upgrade strategy that would look like the following. |
128 | 148 |
|
129 | | - 1. Update server side code to use ApiAuth v1.4 |
130 | | - 2. Update client side code to use ApiAuth v1.4 |
131 | | - 3. Update all client side code to sign with http method |
132 | | - 4. Update server side code to ApiAuth v2.0 (removes the ability to authenticate without the http method) |
133 | | - 5. Update all client side code to ApiAuth v2.0 (forces all signatures to contain the http method) |
| 149 | +1. Update server side code to use ApiAuth v1.4 |
| 150 | +2. Update client side code to use ApiAuth v1.4 |
| 151 | +3. Update all client side code to sign with http method |
| 152 | +4. Update server side code to ApiAuth v2.0 (removes the ability to authenticate without the http method) |
| 153 | +5. Update all client side code to ApiAuth v2.0 (forces all signatures to contain the http method) |
134 | 154 |
|
135 | 155 | ## Additional changes |
136 | 156 |
|
137 | | - - Performance enhancement: reduce allocation of Headers object (#81 pd) |
138 | | - - Performance enhancement: avoid reallocating static Regexps (#82 pd) |
| 157 | +- Performance enhancement: reduce allocation of Headers object (#81 pd) |
| 158 | +- Performance enhancement: avoid reallocating static Regexps (#82 pd) |
139 | 159 |
|
140 | 160 | # 1.3.2 (2015-08-28) |
| 161 | + |
141 | 162 | - Fixed a bug where some client adapters didn't treat an empty path as |
142 | 163 | "/" in the canonical string (#75 managr) |
143 | 164 |
|
144 | 165 | # 1.3.1 (2015-03-13) |
| 166 | + |
145 | 167 | - Fixed a bug where Faraday requests with no parameters were not signed |
146 | 168 | correctly (#65 nathanhoel) |
147 | 169 |
|
148 | 170 | # 1.3.0 (2015-03-12) |
| 171 | + |
149 | 172 | - Add a Faraday Request Driver (#64 nathanhoel) |
150 | 173 |
|
151 | 174 | # 1.2.6 (2014-10-01) |
| 175 | + |
152 | 176 | - Fix a bug in the ActionController request driver where calculated_md5 was |
153 | 177 | incorrect in certain scenarios. (#53 karl-petter) |
154 | 178 |
|
155 | 179 | # 1.2.5 (2014-09-09) |
| 180 | + |
156 | 181 | - Fix a bug where ApiAuth.authentic? would cause an ArgumentError when given a |
157 | 182 | request with an invalid date in the date header. It will now return false |
158 | 183 | instead. (#51 Nakort) |
159 | 184 |
|
160 | 185 | # 1.2.4 (2014-08-27) |
| 186 | + |
161 | 187 | - Fix a bug in the Net::HTTP request driver where the md5 isn't calculated |
162 | 188 | correctly when the content of the request is set with the `.body_stream` |
163 | 189 | method. (#49 adamcrown) |
164 | 190 |
|
165 | 191 | # 1.2.3 (2014-08-01) |
| 192 | + |
166 | 193 | - Update action controller request driver to fix a bug with OLD versions of |
167 | 194 | Rails using CGI |
168 | 195 |
|
169 | 196 | # 1.2.2 (2014-07-08) |
| 197 | + |
170 | 198 | - Fix Rest Client driver to account for the generated date when signing (cjeeky) |
171 | 199 |
|
172 | 200 | # 1.2.1 (2014-07-03) |
173 | 201 |
|
174 | 202 | - Fix Rest Client driver to account for the generated md5 when signing |
175 | 203 | (#45 cjeeky) |
176 | | -- Support for testing against Rails 4.1 (#42 awendt) |
| 204 | +- Support for testing against Rails 4.1 (#42 awendt) |
177 | 205 | - Support all requests inheriting from Rack::Request (#43 mcls) |
178 | 206 |
|
179 | 207 | # 1.2.0 (2014-05-16) |
|
0 commit comments