himari 0.4.0 → 0.6.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.
Files changed (51) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +58 -0
  3. data/lib/himari/access_token.rb +77 -4
  4. data/lib/himari/access_token_jwt.rb +46 -0
  5. data/lib/himari/app.rb +101 -28
  6. data/lib/himari/authorization_code.rb +18 -4
  7. data/lib/himari/client_registration.rb +71 -4
  8. data/lib/himari/config.rb +8 -3
  9. data/lib/himari/decisions/authentication.rb +18 -2
  10. data/lib/himari/decisions/authorization.rb +18 -7
  11. data/lib/himari/decisions/base.rb +7 -3
  12. data/lib/himari/decisions/claims.rb +14 -9
  13. data/lib/himari/dynamic_client_registration.rb +255 -0
  14. data/lib/himari/id_token.rb +15 -28
  15. data/lib/himari/item_provider.rb +3 -1
  16. data/lib/himari/item_providers/oauth_client_metadata.rb +222 -0
  17. data/lib/himari/item_providers/static.rb +2 -0
  18. data/lib/himari/item_providers/storage.rb +33 -0
  19. data/lib/himari/jwt_token.rb +50 -0
  20. data/lib/himari/lifetime_value.rb +5 -3
  21. data/lib/himari/log_line.rb +2 -0
  22. data/lib/himari/middlewares/authentication_rule.rb +2 -0
  23. data/lib/himari/middlewares/authorization_rule.rb +2 -0
  24. data/lib/himari/middlewares/claims_rule.rb +2 -0
  25. data/lib/himari/middlewares/client.rb +2 -0
  26. data/lib/himari/middlewares/config.rb +2 -0
  27. data/lib/himari/middlewares/dynamic_clients.rb +55 -0
  28. data/lib/himari/middlewares/metadata_clients.rb +121 -0
  29. data/lib/himari/middlewares/signing_key.rb +2 -0
  30. data/lib/himari/provider_chain.rb +3 -1
  31. data/lib/himari/refresh_token.rb +93 -0
  32. data/lib/himari/rule.rb +2 -0
  33. data/lib/himari/rule_processor.rb +3 -0
  34. data/lib/himari/services/client_registration_endpoint.rb +78 -0
  35. data/lib/himari/services/downstream_authorization.rb +22 -7
  36. data/lib/himari/services/jwks_endpoint.rb +3 -1
  37. data/lib/himari/services/oidc_authorization_endpoint.rb +56 -3
  38. data/lib/himari/services/oidc_provider_metadata_endpoint.rb +30 -7
  39. data/lib/himari/services/oidc_token_endpoint.rb +225 -38
  40. data/lib/himari/services/oidc_userinfo_endpoint.rb +14 -8
  41. data/lib/himari/services/upstream_authentication.rb +62 -14
  42. data/lib/himari/session_data.rb +31 -2
  43. data/lib/himari/signing_key.rb +17 -14
  44. data/lib/himari/storages/base.rb +45 -1
  45. data/lib/himari/storages/filesystem.rb +14 -3
  46. data/lib/himari/storages/memory.rb +10 -2
  47. data/lib/himari/token_string.rb +40 -4
  48. data/lib/himari/version.rb +1 -1
  49. data/public/public/index.css +18 -0
  50. data/views/consent.erb +59 -0
  51. metadata +49 -14
metadata CHANGED
@@ -1,29 +1,28 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: himari
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sorah Fukumori
8
- autorequire:
9
8
  bindir: exe
10
9
  cert_chain: []
11
- date: 2023-03-26 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
- name: sinatra
13
+ name: omniauth
15
14
  requirement: !ruby/object:Gem::Requirement
16
15
  requirements:
17
16
  - - ">="
18
17
  - !ruby/object:Gem::Version
19
- version: '3.0'
18
+ version: '2.0'
20
19
  type: :runtime
21
20
  prerelease: false
22
21
  version_requirements: !ruby/object:Gem::Requirement
23
22
  requirements:
24
23
  - - ">="
25
24
  - !ruby/object:Gem::Version
26
- version: '3.0'
25
+ version: '2.0'
27
26
  - !ruby/object:Gem::Dependency
28
27
  name: rack-protection
29
28
  requirement: !ruby/object:Gem::Requirement
@@ -39,19 +38,19 @@ dependencies:
39
38
  - !ruby/object:Gem::Version
40
39
  version: '0'
41
40
  - !ruby/object:Gem::Dependency
42
- name: omniauth
41
+ name: sinatra
43
42
  requirement: !ruby/object:Gem::Requirement
44
43
  requirements:
45
44
  - - ">="
46
45
  - !ruby/object:Gem::Version
47
- version: '2.0'
46
+ version: '3.0'
48
47
  type: :runtime
49
48
  prerelease: false
50
49
  version_requirements: !ruby/object:Gem::Requirement
51
50
  requirements:
52
51
  - - ">="
53
52
  - !ruby/object:Gem::Version
54
- version: '2.0'
53
+ version: '3.0'
55
54
  - !ruby/object:Gem::Dependency
56
55
  name: addressable
57
56
  requirement: !ruby/object:Gem::Requirement
@@ -67,7 +66,21 @@ dependencies:
67
66
  - !ruby/object:Gem::Version
68
67
  version: '0'
69
68
  - !ruby/object:Gem::Dependency
70
- name: rack-oauth2
69
+ name: concurrent-ruby
70
+ requirement: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - ">="
73
+ - !ruby/object:Gem::Version
74
+ version: '0'
75
+ type: :runtime
76
+ prerelease: false
77
+ version_requirements: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - ">="
80
+ - !ruby/object:Gem::Version
81
+ version: '0'
82
+ - !ruby/object:Gem::Dependency
83
+ name: httpx
71
84
  requirement: !ruby/object:Gem::Requirement
72
85
  requirements:
73
86
  - - ">="
@@ -94,7 +107,20 @@ dependencies:
94
107
  - - ">="
95
108
  - !ruby/object:Gem::Version
96
109
  version: '0'
97
- description:
110
+ - !ruby/object:Gem::Dependency
111
+ name: rack-oauth2
112
+ requirement: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - ">="
115
+ - !ruby/object:Gem::Version
116
+ version: '0'
117
+ type: :runtime
118
+ prerelease: false
119
+ version_requirements: !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - ">="
122
+ - !ruby/object:Gem::Version
123
+ version: '0'
98
124
  email:
99
125
  - her@sorah.jp
100
126
  executables: []
@@ -102,10 +128,12 @@ extensions: []
102
128
  extra_rdoc_files: []
103
129
  files:
104
130
  - ".rspec"
131
+ - CHANGELOG.md
105
132
  - LICENSE.txt
106
133
  - Rakefile
107
134
  - lib/himari.rb
108
135
  - lib/himari/access_token.rb
136
+ - lib/himari/access_token_jwt.rb
109
137
  - lib/himari/app.rb
110
138
  - lib/himari/authorization_code.rb
111
139
  - lib/himari/client_registration.rb
@@ -114,9 +142,13 @@ files:
114
142
  - lib/himari/decisions/authorization.rb
115
143
  - lib/himari/decisions/base.rb
116
144
  - lib/himari/decisions/claims.rb
145
+ - lib/himari/dynamic_client_registration.rb
117
146
  - lib/himari/id_token.rb
118
147
  - lib/himari/item_provider.rb
148
+ - lib/himari/item_providers/oauth_client_metadata.rb
119
149
  - lib/himari/item_providers/static.rb
150
+ - lib/himari/item_providers/storage.rb
151
+ - lib/himari/jwt_token.rb
120
152
  - lib/himari/lifetime_value.rb
121
153
  - lib/himari/log_line.rb
122
154
  - lib/himari/middlewares/authentication_rule.rb
@@ -124,10 +156,14 @@ files:
124
156
  - lib/himari/middlewares/claims_rule.rb
125
157
  - lib/himari/middlewares/client.rb
126
158
  - lib/himari/middlewares/config.rb
159
+ - lib/himari/middlewares/dynamic_clients.rb
160
+ - lib/himari/middlewares/metadata_clients.rb
127
161
  - lib/himari/middlewares/signing_key.rb
128
162
  - lib/himari/provider_chain.rb
163
+ - lib/himari/refresh_token.rb
129
164
  - lib/himari/rule.rb
130
165
  - lib/himari/rule_processor.rb
166
+ - lib/himari/services/client_registration_endpoint.rb
131
167
  - lib/himari/services/downstream_authorization.rb
132
168
  - lib/himari/services/jwks_endpoint.rb
133
169
  - lib/himari/services/oidc_authorization_endpoint.rb
@@ -144,6 +180,7 @@ files:
144
180
  - lib/himari/version.rb
145
181
  - public/public/index.css
146
182
  - sig/himari.rbs
183
+ - views/consent.erb
147
184
  - views/login.erb
148
185
  homepage: https://github.com/sorah/himari
149
186
  licenses:
@@ -151,7 +188,6 @@ licenses:
151
188
  metadata:
152
189
  homepage_uri: https://github.com/sorah/himari
153
190
  source_code_uri: https://github.com/sorah/himari
154
- post_install_message:
155
191
  rdoc_options: []
156
192
  require_paths:
157
193
  - lib
@@ -166,8 +202,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
166
202
  - !ruby/object:Gem::Version
167
203
  version: '0'
168
204
  requirements: []
169
- rubygems_version: 3.1.6
170
- signing_key:
205
+ rubygems_version: 4.0.10
171
206
  specification_version: 4
172
207
  summary: Small OIDC IdP for small teams - Omniauth to OIDC
173
208
  test_files: []