zaikio-hub 0.10.0 → 0.11.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/CHANGELOG.md +9 -1
- data/lib/zaikio/hub/token_data.rb +51 -0
- data/lib/zaikio/hub/version.rb +1 -1
- data/lib/zaikio/hub.rb +2 -9
- metadata +5 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bc8cad3e052fb8b2a20e218a59ecbaafb01811adc2b166cc512797f9c7d36047
|
4
|
+
data.tar.gz: ff4b1176481847d8cc8dd015d6275d2630ff85886d441d8906be591590ec27fa
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1b05da9a0bf4d590c5fdf7ffd535c3f0d27baaa3cde3d2a4764a4ef5cdd8f8a5414fa5777ac33a3908893096492aa880e1eac9e0a34d6b68eb5fe0115f441214
|
7
|
+
data.tar.gz: 7e6ab83a077728d97fb54800aa13bff979a7895fa24b0960d62c14ea4cb36363ac7393be3ff7428548a14c19154116327820b129617ad04a1da224fefc867383
|
data/CHANGELOG.md
CHANGED
@@ -7,6 +7,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
7
7
|
|
8
8
|
## [Unreleased]
|
9
9
|
|
10
|
+
## [0.11.0] - 2022-08-30
|
11
|
+
|
12
|
+
* Extract token data logic into its own `Zaikio::Hub::TokenData` class
|
13
|
+
This also exposes the `sub` attribute of the token as `TokenData#subject`.
|
14
|
+
* Support newer versions of `jwt` and `spyke`
|
15
|
+
|
10
16
|
## [0.10.0] - 2022-08-15
|
11
17
|
|
12
18
|
* Update `zaikio-client-helpers` and reuse logic to use `Zaikio::Client.with_token`
|
@@ -90,7 +96,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
90
96
|
### Added
|
91
97
|
- Added subscriptions (migration required)
|
92
98
|
|
93
|
-
[Unreleased]: https://github.com/zaikio/zaikio-hub-ruby/compare/v0.
|
99
|
+
[Unreleased]: https://github.com/zaikio/zaikio-hub-ruby/compare/v0.11.0..HEAD
|
100
|
+
[0.11.0]: https://github.com/zaikio/zaikio-hub-ruby/compare/v0.10.0..v0.11.0
|
101
|
+
[0.10.0]: https://github.com/zaikio/zaikio-hub-ruby/compare/v0.9.0..v0.10.0
|
94
102
|
[0.9.0]: https://github.com/zaikio/zaikio-hub-ruby/compare/v0.8.0..v0.9.0
|
95
103
|
[0.8.0]: https://github.com/zaikio/zaikio-hub-ruby/compare/v0.7.0..v0.8.0
|
96
104
|
[0.7.0]: https://github.com/zaikio/zaikio-hub-ruby/compare/v0.6.2..v0.7.0
|
@@ -0,0 +1,51 @@
|
|
1
|
+
module Zaikio
|
2
|
+
module Hub
|
3
|
+
class TokenData
|
4
|
+
attr_reader :audience, :on_behalf_of, :subject, :scopes
|
5
|
+
|
6
|
+
def self.from(payload)
|
7
|
+
subjects = payload["sub"].split(">")
|
8
|
+
|
9
|
+
new(
|
10
|
+
audience: payload["aud"].first,
|
11
|
+
on_behalf_of: subjects.first,
|
12
|
+
subject: subjects.last,
|
13
|
+
scopes: payload["scope"]
|
14
|
+
)
|
15
|
+
end
|
16
|
+
|
17
|
+
def initialize(audience:, on_behalf_of:, subject:, scopes:)
|
18
|
+
@audience = audience
|
19
|
+
@on_behalf_of = on_behalf_of
|
20
|
+
@subject = subject
|
21
|
+
@scopes = scopes
|
22
|
+
end
|
23
|
+
|
24
|
+
def on_behalf_of_type
|
25
|
+
@on_behalf_of_type ||= type_for(:on_behalf_of)
|
26
|
+
end
|
27
|
+
|
28
|
+
def on_behalf_of_id
|
29
|
+
@on_behalf_of_id ||= id_for(:on_behalf_of)
|
30
|
+
end
|
31
|
+
|
32
|
+
def subject_type
|
33
|
+
@subject_type ||= type_for(:subject)
|
34
|
+
end
|
35
|
+
|
36
|
+
def subject_id
|
37
|
+
@subject_id ||= id_for(:subject)
|
38
|
+
end
|
39
|
+
|
40
|
+
private
|
41
|
+
|
42
|
+
def type_for(key)
|
43
|
+
public_send(key).split("/").first
|
44
|
+
end
|
45
|
+
|
46
|
+
def id_for(key)
|
47
|
+
public_send(key).split("/").last
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
data/lib/zaikio/hub/version.rb
CHANGED
data/lib/zaikio/hub.rb
CHANGED
@@ -27,6 +27,7 @@ require "zaikio/hub/connection"
|
|
27
27
|
require "zaikio/hub/app"
|
28
28
|
require "zaikio/hub/subscription"
|
29
29
|
require "zaikio/hub/test_account"
|
30
|
+
require "zaikio/hub/token_data"
|
30
31
|
|
31
32
|
module Zaikio
|
32
33
|
module Hub
|
@@ -73,15 +74,7 @@ module Zaikio
|
|
73
74
|
end
|
74
75
|
|
75
76
|
def create_token_data(payload)
|
76
|
-
|
77
|
-
|
78
|
-
OpenStruct.new(
|
79
|
-
audience: payload["aud"].first,
|
80
|
-
on_behalf_of_id: subjects.first.split("/").last,
|
81
|
-
subject_id: subjects.last.split("/").last,
|
82
|
-
subject_type: subjects.last.split("/").first,
|
83
|
-
scopes: payload["scope"]
|
84
|
-
)
|
77
|
+
TokenData.from(payload)
|
85
78
|
end
|
86
79
|
end
|
87
80
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: zaikio-hub
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.11.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- crispymtn
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2022-08-
|
13
|
+
date: 2022-08-30 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: concurrent-ruby
|
@@ -35,7 +35,7 @@ dependencies:
|
|
35
35
|
version: 2.2.1
|
36
36
|
- - "<"
|
37
37
|
- !ruby/object:Gem::Version
|
38
|
-
version: 2.
|
38
|
+
version: 2.6.0
|
39
39
|
type: :runtime
|
40
40
|
prerelease: false
|
41
41
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -45,7 +45,7 @@ dependencies:
|
|
45
45
|
version: 2.2.1
|
46
46
|
- - "<"
|
47
47
|
- !ruby/object:Gem::Version
|
48
|
-
version: 2.
|
48
|
+
version: 2.6.0
|
49
49
|
- !ruby/object:Gem::Dependency
|
50
50
|
name: multi_json
|
51
51
|
requirement: !ruby/object:Gem::Requirement
|
@@ -157,6 +157,7 @@ files:
|
|
157
157
|
- lib/zaikio/hub/specialist.rb
|
158
158
|
- lib/zaikio/hub/subscription.rb
|
159
159
|
- lib/zaikio/hub/test_account.rb
|
160
|
+
- lib/zaikio/hub/token_data.rb
|
160
161
|
- lib/zaikio/hub/version.rb
|
161
162
|
homepage: https://www.zaikio.com/
|
162
163
|
licenses:
|