firebase_id_token 4.0.0 → 4.1.0
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/.github/workflows/test.yml +8 -1
- data/CHANGELOG.md +23 -0
- data/Gemfile +3 -0
- data/README.md +1 -1
- data/firebase_id_token.gemspec +3 -3
- data/lib/firebase_id_token/version.rb +1 -1
- data/spec/fixtures/files/jwt.json +4 -4
- metadata +19 -13
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: '0695685edfb0ec64dc747dfe0860a997a699d31d2e053bf36a5148ec1ef9222a'
|
|
4
|
+
data.tar.gz: 6395caeaa8500afd41480ed04235dc7b040aad062776a341480b4c1183026867
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: e6d6374f5760b7b3f5346d58011825908ea07858728fa60e670fbfa6fe871f6f376a113af074b662350657595ce998f3c711a0fe6929656f878c9b3e1ea1bcc1
|
|
7
|
+
data.tar.gz: 0bc06cbf24867d1d13caac3b5ebae25e63233b7619fb4277bb4cb0f08439a1c2a47295c5dfe7a1feba0a19cda33e478c4fc37df849f1cc44062d21e8b805afdd
|
data/.github/workflows/test.yml
CHANGED
|
@@ -7,8 +7,15 @@ on:
|
|
|
7
7
|
|
|
8
8
|
jobs:
|
|
9
9
|
test:
|
|
10
|
-
name: "Run Tests"
|
|
10
|
+
name: "Run Tests (JWT ${{ matrix.jwt }})"
|
|
11
11
|
runs-on: ubuntu-latest
|
|
12
|
+
strategy:
|
|
13
|
+
matrix:
|
|
14
|
+
jwt:
|
|
15
|
+
- "~> 2.10"
|
|
16
|
+
- "~> 3.0"
|
|
17
|
+
env:
|
|
18
|
+
JWT_VERSION: "${{ matrix.jwt }}"
|
|
12
19
|
services:
|
|
13
20
|
redis:
|
|
14
21
|
image: redis
|
data/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,29 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
6
6
|
|
|
7
7
|
## [Unreleased]
|
|
8
8
|
|
|
9
|
+
## [4.1.0] - 2026-09-04
|
|
10
|
+
|
|
11
|
+
### Added
|
|
12
|
+
- Support for `jwt` 3.x. The dependency constraint is now `>= 2.10, < 4`.
|
|
13
|
+
[PR #49](https://github.com/fschuindt/firebase_id_token/pull/49).
|
|
14
|
+
- Support for Rails 8. The `activesupport` dependency constraint is now
|
|
15
|
+
`>= 7.0.4.3, < 9`. [PR #49](https://github.com/fschuindt/firebase_id_token/pull/49).
|
|
16
|
+
- CI now runs the test suite against both `jwt` 2.x and 3.x.
|
|
17
|
+
|
|
18
|
+
### Changed
|
|
19
|
+
- Raised the minimum `httparty` to `0.24.0` and the minimum `jwt` to `2.10`,
|
|
20
|
+
so a lockfile can no longer resolve to versions affected by
|
|
21
|
+
[CVE-2025-68696](https://github.com/advisories/GHSA-hm5p-x4rq-38w4) and
|
|
22
|
+
[CVE-2026-45363](https://github.com/advisories/GHSA-c32j-vqhx-rx3x). This
|
|
23
|
+
gem was not exploitable through either issue: it requests a fixed Google
|
|
24
|
+
URL and verifies `RS256` signatures with a certificate public key, but the
|
|
25
|
+
floor lets dependency scanners rest.
|
|
26
|
+
- The test fixture used by `FirebaseIdToken.test!` (private key, certificate
|
|
27
|
+
and sample tokens) was regenerated with a 2048-bit RSA key, as `jwt` 3.x
|
|
28
|
+
refuses to sign with shorter keys. Test suites that encode tokens with
|
|
29
|
+
`FirebaseIdToken::Testing::Certificates.private_key` keep working; anything
|
|
30
|
+
hardcoding the old key or certificate must be updated.
|
|
31
|
+
|
|
9
32
|
## [4.0.0] - 2026-07-28
|
|
10
33
|
|
|
11
34
|
### Added
|
data/Gemfile
CHANGED
|
@@ -3,6 +3,9 @@ source 'https://rubygems.org'
|
|
|
3
3
|
# Specify your gem's dependencies in firebase_id_token.gemspec
|
|
4
4
|
gemspec
|
|
5
5
|
|
|
6
|
+
# Allow CI to resolve the bundle against each supported JWT major release.
|
|
7
|
+
gem 'jwt', ENV['JWT_VERSION'] if ENV['JWT_VERSION']
|
|
8
|
+
|
|
6
9
|
# connection_pool 3.x is incompatible with ActiveSupport 7.x's
|
|
7
10
|
# RedisCacheStore (positional options hash vs keyword arguments).
|
|
8
11
|
gem 'connection_pool', '< 3.0'
|
data/README.md
CHANGED
data/firebase_id_token.gemspec
CHANGED
|
@@ -32,8 +32,8 @@ Gem::Specification.new do |spec|
|
|
|
32
32
|
spec.add_development_dependency 'redis', '~> 5.0', '>= 5.0.6'
|
|
33
33
|
spec.add_development_dependency 'redis-namespace', '~> 1.10'
|
|
34
34
|
|
|
35
|
-
spec.add_dependency 'httparty', '>= 0.
|
|
36
|
-
spec.add_runtime_dependency 'jwt', '
|
|
37
|
-
spec.add_runtime_dependency 'activesupport', '
|
|
35
|
+
spec.add_dependency 'httparty', '>= 0.24.0', '< 1.0'
|
|
36
|
+
spec.add_runtime_dependency 'jwt', '>= 2.10', '< 4'
|
|
37
|
+
spec.add_runtime_dependency 'activesupport', '>= 7.0.4.3', '< 9'
|
|
38
38
|
spec.add_runtime_dependency 'json', '~> 2.6', '>= 2.6.3'
|
|
39
39
|
end
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
|
-
"private_key": "-----BEGIN RSA PRIVATE KEY-----\
|
|
3
|
-
"certificate": "-----BEGIN CERTIFICATE-----\
|
|
4
|
-
"jwt_token": "
|
|
5
|
-
"bad_jwt_token": "
|
|
2
|
+
"private_key": "-----BEGIN RSA PRIVATE KEY-----\nMIIEogIBAAKCAQEApNSNhB8hUjiSdbZQ66U5ZubeH5UatngujRp1wZSMRfVLFKMo\nQ4ykoVwQ9pNOoT5f4g5Vw2bzSfO5WU7KeS33u+DWaOXIB03823+zCIbtgMSfHdRm\nilg3vdXAFd1iZX4jrEe7EeiRV6n+s07369GRdkTZGOnTPkxau/3ooHn4BKd5IFAb\nttQFGY89P/URHtKxqJysaQR5SkOaL0JZo27h3UnJXtbEFgn3t6Z9lgnZee1lZ4D9\nR5dihH4IWnCP3WdpfSU7Ty5xJOvlcYuk3VJDvk+a4GHC3s0cvDi4RpKsoHL0MPES\na7yDlACqCyNwivPKYTkppgluxX+Od2bL0EFeQQIDAQABAoIBAC5jU2B3kl0dZrqS\nELwAx+LZ3nFs+ROZRyCW7cUJFWEq43JvaIl6L2rqCiwa0Oo4L6vi9OgFNTr+yI8F\nyZ3I/gt1/2GOKXlEzYDIs44WywiOTWmLuT/+C9H1MhX1NBf0I/38Qf2MQjs1sGSu\nOL+5PwLV5XNJexXxTyfREYL4UICeXXEEM/eBMWOkGxKRQSGWK2+Z4dd6kPMJS1BG\naEvy00pGhpNwScD4+/y+ohYNaCp/hM077etxdLEUMJ3QHiqTeegaAuMSVmpQMOVt\njuanTbFC/VBVcpPIS5TYp/fwijL+yQTNYzASZg5hKTIjVdCb7W1q/XIjVHxBg7bo\nb/ny9QECgYEA2umxns53tw8kv6fu9O+tmO0Wx8c+jb+X5xOBLwLg1TDjFHHRMP3v\nZ0Lsu08lZDNnuzeIEyuMtWCaDJKTvYR6HqFPmAR/tnc6jBQ9ni66Lkmpf1Z4cVDG\nr2vqVL1INbfpVOCA6tPPNALTLl6vfmzn2n0ry81NCP3vdWhHi9tyVBkCgYEAwMFI\npCn36dELLn9B9tXvVvH4IcuhDJvn9gsE8qGCyiVaUGiRd4n92PC4OHfeGR1Uwwy1\nFN5B3Foe6+4MvDaX12Jb9A60Xx4xxsVQaKu7Y6y2yH223dXTzVivs/nEIiL8YXio\nAeAivxhEayN6qg3PjyhHn0nRdWLg4Qi8N/vf4GkCgYANHuSeeBGEz0uMkSwpUhQ9\njjhHURHWvR0FpI2hm7KOFJgHqaq4HQA0WDaII35COzKEbhehzoJofJm/FynzufT3\n0QNMQTjGXu8LZksrJ/HQxGl8UFp3sDe4W+d3nMCvN46sn6gaaweIPoMZzGMIWM6s\nscPmOy/a0h2AE/f10flQQQKBgGV3mcipOxL/cxZn8Q6B8brgJ1GLAt1DWOkhRdp/\ngPzuistXMHQv1MwVc7RuDSFFWnBOySgSE7NuUWa66kNNrcK4yVUBRJvppiRPjBN9\ni2hd695ApznBrPwk2mEwcrnRlu+sdyx9k2zq1mFbzN+l44QlnQZR8owLn/t2ALar\nxV85AoGAF980bfimSfH5Lrhd+/8d/AvtZGe3bZO61Hbk1UOac/pwWOo+rhXNYU+7\nVz9McFL+5GRGVy5rCaF2mcAyEw66ASJYDpz57rY2xWeyxlv5r75b8VHgRwLI3j0z\nnjKiZIG+4/HuKedwJ2tAw7VbpT8OrW21ygiusV6OKKolwlQw4eg=\n-----END RSA PRIVATE KEY-----\n",
|
|
3
|
+
"certificate": "-----BEGIN CERTIFICATE-----\nMIIDIzCCAgugAwIBAgIBATANBgkqhkiG9w0BAQsFADA6MQswCQYDVQQGEwJCRTEN\nMAsGA1UECgwEVGVzdDENMAsGA1UECwwEVGVzdDENMAsGA1UEAwwEVGVzdDAgFw0x\nNzA0MjQwMDAwMDBaGA8zMDE2MDgyNTAwMDAwMFowOjELMAkGA1UEBhMCQkUxDTAL\nBgNVBAoMBFRlc3QxDTALBgNVBAsMBFRlc3QxDTALBgNVBAMMBFRlc3QwggEiMA0G\nCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCk1I2EHyFSOJJ1tlDrpTlm5t4flRq2\neC6NGnXBlIxF9UsUoyhDjKShXBD2k06hPl/iDlXDZvNJ87lZTsp5Lfe74NZo5cgH\nTfzbf7MIhu2AxJ8d1GaKWDe91cAV3WJlfiOsR7sR6JFXqf6zTvfr0ZF2RNkY6dM+\nTFq7/eigefgEp3kgUBu21AUZjz0/9REe0rGonKxpBHlKQ5ovQlmjbuHdScle1sQW\nCfe3pn2WCdl57WVngP1Hl2KEfghacI/dZ2l9JTtPLnEk6+Vxi6TdUkO+T5rgYcLe\nzRy8OLhGkqygcvQw8RJrvIOUAKoLI3CK88phOSmmCW7Ff453ZsvQQV5BAgMBAAGj\nMjAwMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFOAuZYu2I5fJqC8EIgyfE06B\nPaCjMA0GCSqGSIb3DQEBCwUAA4IBAQBSNeQOJ456vFFQ5hJNDVplAVYgs5htgZzQ\nSxyKT0KLkL9q7AOV2mbUwGitlKAPK7VJO1dsIhcwHjTY3BNVjcb3cBwGboafl/kL\nFvENCR0aUtd+rh9wVLpHZaUFrN1wqJQi/Qt8mtrEAopLFiGRK06N0UxhwzFKTpFH\n0BpyBs6XUS+bZhdOXf/8F8AqEWNZ9Yk7GYm6PnluNJTbZmG9UsQ1Ymm0Q05ar6b4\nESFU4wQsONQo5dOsIjcpCmayUcNn2m28iVxHMvvOjzsRx5g986cvjqrzpGO0QBoa\nX9L9cz867Z4hWsGYDALl8HbPHw4p7NBHz/YDLBm9J3WqRq/1KeWz\n-----END CERTIFICATE-----\n",
|
|
4
|
+
"jwt_token": "eyJraWQiOiIxMjNxd2UiLCJhbGciOiJSUzI1NiJ9.eyJpc3MiOiJodHRwczovL3NlY3VyZXRva2VuLmdvb2dsZS5jb20vZmlyZWJhc2UtaWQtdG9rZW4iLCJuYW1lIjoiVWdseSBCb2IiLCJwaWN0dXJlIjoiaHR0cHM6Ly9zb21ldXJsLmNvbS9waG90by5qcGciLCJhdWQiOiJmaXJlYmFzZS1pZC10b2tlbiIsImF1dGhfdGltZSI6MTQ5Mjk4MTE5MiwidXNlcl9pZCI6InRoZVVzZXJJRCIsInN1YiI6InRoZVVzZXJJRCIsImlhdCI6MTQ5Mjk4MTIwMCwiZXhwIjozMzAyOTAwMDAxNywiZW1haWwiOiJ1Z2x5Ym9iQGVtYWlsdXJsLmNvbSIsImVtYWlsX3ZlcmlmaWVkIjp0cnVlLCJmaXJlYmFzZSI6eyJpZGVudGl0aWVzIjp7Imdvb2dsZS5jb20iOlsiMTAxMDEwMTAxMDEwMTAxMDEwMSJdLCJlbWFpbCI6WyJ1Z2x5Ym9iQGVtYWlsdXJsLmNvbSJdfSwic2lnbl9pbl9wcm92aWRlciI6Imdvb2dsZS5jb20ifX0.ghH3aNT1McWoB3wVHEKO7_FlwPqX_I4K6gJyZiVymOv9b1Rs06kzhT8DWY7m5nUP5ifCH-IDs_SvfT5lyWE0BT0BLGY_yhiGolpjj0Yjh1UeSklZOLn8VGEL7E-OuUU4EAS9ebiMC72IJ1-cWLossEwHXk5YRgCgV2g_wfXDeAgcqik0V92HNMx3glGCQ_NKMCdwCpC5-tnPPtUGRNpi48Lqg2CqQ7iZPyWp7M8GDWhDSlnQfJsJBxVhiyMOR_di-_MOKiSDYYoR1tZBULj7nDaBZKbvywcG-pPybXvqCjXCQafga6GheFJdsAog1hyG3ObdqVsXUphVP5t_8KltLA",
|
|
5
|
+
"bad_jwt_token": "eyJraWQiOiIxMjNxd2UiLCJhbGciOiJSUzI1NiJ9.eyJpc3MiOiJodHRwczovL3NlY3VyZXRva2VuLmdvb2dsZS5jb20vZmlyZWJhc2UtaWQtdG9rZW4iLCJuYW1lIjoiVWdseSBCb2IiLCJwaWN0dXJlIjoiaHR0cHM6Ly9zb21ldXJsLmNvbS9waG90by5qcGciLCJhdWQiOiJmaXJlYmFzZS1pZC10b2tlbiIsImF1dGhfdGltZSI6MTQ5Mjk4MTE5MiwidXNlcl9pZCI6InRoZVVzZXJJRCIsInN1YiI6InRoZVVzZXJJRCIsImlhdCI6MTQ5Mjk4MTIwMCwiZXhwIjozMzAyOTAwMDAxNywiZW1haWwiOiJ1Z2x5Ym9iQGVtYWlsdXJsLmNvbSIsImVtYWlsX3ZlcmlmaWVkIjp0cnVlLCJmaXJlYmFzZSI6eyJpZGVudGl0aWVzIjp7Imdvb2dsZS5jb20iOlsiMTAxMDEwMTAxMDEwMTAxMDEwMSJdLCJlbWFpbCI6WyJ1Z2x5Ym9iQGVtYWlsdXJsLmNvbSJdfSwic2lnbl9pbl9wcm92aWRlciI6Imdvb2dsZS5jb20ifX0.AhH3aNT1McWoB3wVHEKO7_FlwPqX_I4K6gJyZiVymOv9b1Rs06kzhT8DWY7m5nUP5ifCH-IDs_SvfT5lyWE0BT0BLGY_yhiGolpjj0Yjh1UeSklZOLn8VGEL7E-OuUU4EAS9ebiMC72IJ1-cWLossEwHXk5YRgCgV2g_wfXDeAgcqik0V92HNMx3glGCQ_NKMCdwCpC5-tnPPtUGRNpi48Lqg2CqQ7iZPyWp7M8GDWhDSlnQfJsJBxVhiyMOR_di-_MOKiSDYYoR1tZBULj7nDaBZKbvywcG-pPybXvqCjXCQafga6GheFJdsAog1hyG3ObdqVsXUphVP5t_8KltLA"
|
|
6
6
|
}
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: firebase_id_token
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 4.
|
|
4
|
+
version: 4.1.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Fernando Schuindt
|
|
@@ -159,7 +159,7 @@ dependencies:
|
|
|
159
159
|
requirements:
|
|
160
160
|
- - ">="
|
|
161
161
|
- !ruby/object:Gem::Version
|
|
162
|
-
version:
|
|
162
|
+
version: 0.24.0
|
|
163
163
|
- - "<"
|
|
164
164
|
- !ruby/object:Gem::Version
|
|
165
165
|
version: '1.0'
|
|
@@ -169,7 +169,7 @@ dependencies:
|
|
|
169
169
|
requirements:
|
|
170
170
|
- - ">="
|
|
171
171
|
- !ruby/object:Gem::Version
|
|
172
|
-
version:
|
|
172
|
+
version: 0.24.0
|
|
173
173
|
- - "<"
|
|
174
174
|
- !ruby/object:Gem::Version
|
|
175
175
|
version: '1.0'
|
|
@@ -177,36 +177,42 @@ dependencies:
|
|
|
177
177
|
name: jwt
|
|
178
178
|
requirement: !ruby/object:Gem::Requirement
|
|
179
179
|
requirements:
|
|
180
|
-
- - "
|
|
180
|
+
- - ">="
|
|
181
|
+
- !ruby/object:Gem::Version
|
|
182
|
+
version: '2.10'
|
|
183
|
+
- - "<"
|
|
181
184
|
- !ruby/object:Gem::Version
|
|
182
|
-
version: '
|
|
185
|
+
version: '4'
|
|
183
186
|
type: :runtime
|
|
184
187
|
prerelease: false
|
|
185
188
|
version_requirements: !ruby/object:Gem::Requirement
|
|
186
189
|
requirements:
|
|
187
|
-
- - "
|
|
190
|
+
- - ">="
|
|
191
|
+
- !ruby/object:Gem::Version
|
|
192
|
+
version: '2.10'
|
|
193
|
+
- - "<"
|
|
188
194
|
- !ruby/object:Gem::Version
|
|
189
|
-
version: '
|
|
195
|
+
version: '4'
|
|
190
196
|
- !ruby/object:Gem::Dependency
|
|
191
197
|
name: activesupport
|
|
192
198
|
requirement: !ruby/object:Gem::Requirement
|
|
193
199
|
requirements:
|
|
194
|
-
- - "~>"
|
|
195
|
-
- !ruby/object:Gem::Version
|
|
196
|
-
version: '7.0'
|
|
197
200
|
- - ">="
|
|
198
201
|
- !ruby/object:Gem::Version
|
|
199
202
|
version: 7.0.4.3
|
|
203
|
+
- - "<"
|
|
204
|
+
- !ruby/object:Gem::Version
|
|
205
|
+
version: '9'
|
|
200
206
|
type: :runtime
|
|
201
207
|
prerelease: false
|
|
202
208
|
version_requirements: !ruby/object:Gem::Requirement
|
|
203
209
|
requirements:
|
|
204
|
-
- - "~>"
|
|
205
|
-
- !ruby/object:Gem::Version
|
|
206
|
-
version: '7.0'
|
|
207
210
|
- - ">="
|
|
208
211
|
- !ruby/object:Gem::Version
|
|
209
212
|
version: 7.0.4.3
|
|
213
|
+
- - "<"
|
|
214
|
+
- !ruby/object:Gem::Version
|
|
215
|
+
version: '9'
|
|
210
216
|
- !ruby/object:Gem::Dependency
|
|
211
217
|
name: json
|
|
212
218
|
requirement: !ruby/object:Gem::Requirement
|