authproto 0.3.0.beta2 → 0.3.0.beta3

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 (72) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +19 -0
  3. data/README.md +108 -5
  4. data/examples/confidential_client/README.md +10 -0
  5. data/examples/confidential_client/app.rb +8 -7
  6. data/examples/confidential_client/scripts/generate_keys.rb +1 -1
  7. data/examples/minisky_console/Gemfile.lock +2 -2
  8. data/examples/minisky_console/README.md +20 -1
  9. data/examples/minisky_console/localhost.rb +5 -3
  10. data/examples/minisky_console/production.rb +9 -3
  11. data/lib/authproto/client.rb +73 -90
  12. data/lib/authproto/configuration.rb +37 -16
  13. data/lib/authproto/dpop/client.rb +105 -40
  14. data/lib/authproto/dpop/{key_manager.rb → key_set.rb} +54 -120
  15. data/lib/authproto/dpop/nonce_manager.rb +33 -20
  16. data/lib/authproto/dpop/proof_generator.rb +17 -32
  17. data/lib/authproto/dpop.rb +19 -0
  18. data/lib/authproto/http_helpers.rb +85 -0
  19. data/lib/authproto/metadata/authorization_server.rb +12 -6
  20. data/lib/authproto/metadata/client_metadata.rb +18 -5
  21. data/lib/authproto/metadata/resource_server.rb +4 -2
  22. data/lib/authproto/minisky.rb +36 -34
  23. data/lib/authproto/par/client.rb +22 -73
  24. data/lib/authproto/par/client_assertion.rb +47 -16
  25. data/lib/authproto/par/request.rb +4 -8
  26. data/lib/authproto/par.rb +2 -1
  27. data/lib/authproto/serialization/session.rb +31 -13
  28. data/lib/authproto/serialization/token_set.rb +1 -2
  29. data/lib/authproto/state/session.rb +66 -6
  30. data/lib/authproto/state/session_manager.rb +95 -21
  31. data/lib/authproto/state/token_set.rb +16 -16
  32. data/lib/authproto/state.rb +1 -1
  33. data/lib/authproto/storage/key_builder.rb +3 -11
  34. data/lib/authproto/storage/memory.rb +8 -2
  35. data/lib/authproto/token/refresh.rb +26 -59
  36. data/lib/authproto/validated_uri.rb +23 -0
  37. data/lib/authproto/version.rb +1 -1
  38. data/lib/authproto.rb +0 -1
  39. data/sig/authproto/client.rbs +5 -7
  40. data/sig/authproto/dependencies.rbs +2 -0
  41. data/sig/authproto/dpop/client.rbs +11 -4
  42. data/sig/authproto/dpop/{key_manager.rbs → key_set.rbs} +9 -11
  43. data/sig/authproto/dpop/nonce_manager.rbs +4 -4
  44. data/sig/authproto/dpop/proof_generator.rbs +5 -10
  45. data/sig/authproto/dpop.rbs +6 -0
  46. data/sig/authproto/http_helpers.rbs +7 -0
  47. data/sig/authproto/localhost_server.rbs +1 -1
  48. data/sig/authproto/metadata/authorization_server.rbs +1 -0
  49. data/sig/authproto/metadata/client_metadata.rbs +2 -1
  50. data/sig/authproto/metadata/resource_server.rbs +1 -0
  51. data/sig/authproto/minisky_oauth.rbs +5 -2
  52. data/sig/authproto/par/client.rbs +4 -8
  53. data/sig/authproto/par/client_assertion.rbs +4 -0
  54. data/sig/authproto/par/request.rbs +0 -9
  55. data/sig/authproto/state/session.rbs +10 -3
  56. data/sig/authproto/state/session_manager.rbs +8 -3
  57. data/sig/authproto/state/token_set.rbs +1 -2
  58. data/sig/authproto/storage/key_builder.rbs +1 -2
  59. data/sig/authproto/token/refresh.rbs +3 -4
  60. data/sig/authproto.rbs +5 -2
  61. metadata +14 -19
  62. data/.rspec +0 -1
  63. data/.rubocop.yml +0 -31
  64. data/.tm_properties +0 -1
  65. data/.yardopts +0 -5
  66. data/AGENTS.md +0 -80
  67. data/Rakefile +0 -8
  68. data/examples/confidential_client/.gitignore +0 -6
  69. data/examples/minisky_console/.gitignore +0 -2
  70. data/lib/authproto/serialization/dpop_key.rb +0 -38
  71. data/misc/yard_attributes.rb +0 -34
  72. data/sig/authproto/serialization/dpop_key.rbs +0 -14
@@ -1,2 +0,0 @@
1
- .env
2
- db
@@ -1,38 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative '../dpop/key_manager'
4
- require_relative 'base'
5
-
6
- module AuthProto
7
- module Serialization
8
-
9
- #
10
- # Handles serialization of DPoP keys
11
- #
12
-
13
- class DPoPKey < Base
14
-
15
- # Returns the envelope type used by this serializer.
16
- # @return [String] `DPoPKey`
17
- def type_identifier
18
- "DPoPKey"
19
- end
20
-
21
- private
22
-
23
- def validate_object(obj)
24
- return if obj.is_a?(AuthProto::DPoP::KeyManager)
25
-
26
- raise ValidationError, "Expected KeyManager object, got #{obj.class}"
27
- end
28
-
29
- def serialize_data(obj)
30
- obj.to_jwk(include_private: true).to_h
31
- end
32
-
33
- def deserialize_data(data)
34
- AuthProto::DPoP::KeyManager.from_jwk(data)
35
- end
36
- end
37
- end
38
- end
@@ -1,34 +0,0 @@
1
- require 'yard'
2
-
3
- YARD::Parser::SourceParser.after_parse_list do
4
- fields = YARD::Registry.at('AuthProto::PAR::Request::Fields').attributes[:instance]
5
-
6
- {
7
- 'AuthProto::PAR::Request' => false,
8
- 'AuthProto::PAR::Request::Configuration' => true
9
- }.each do |path, writable|
10
- target = YARD::Registry.at(path)
11
-
12
- fields.each do |name, attribute|
13
- original = attribute[:read]
14
-
15
- reader = YARD::CodeObjects::MethodObject.new(target, name, :instance)
16
- reader.docstring = original.docstring.to_raw
17
- reader.signature = "def #{name}"
18
-
19
- target.attributes[:instance][name] = { read: reader, write: nil }
20
-
21
- next unless writable
22
-
23
- return_tag = reader.tag(:return)
24
- return_tag.types = (return_tag.types + ['nil']).uniq
25
-
26
- writer = YARD::CodeObjects::MethodObject.new(target, "#{name}=", :instance)
27
- writer.docstring = original.docstring.to_raw
28
- writer.parameters = [['value', nil]]
29
- writer.signature = "def #{name}=(value)"
30
-
31
- target.attributes[:instance][name][:write] = writer
32
- end
33
- end
34
- end
@@ -1,14 +0,0 @@
1
- module AuthProto
2
- module Serialization
3
- class DPoPKey < Base[DPoP::KeyManager]
4
- def self.serialize: (DPoP::KeyManager obj) -> String
5
- def self.deserialize: (String data) -> DPoP::KeyManager
6
- def type_identifier: () -> String
7
-
8
- private
9
- def validate_object: (DPoP::KeyManager obj) -> void
10
- def serialize_data: (DPoP::KeyManager obj) -> json_object
11
- def deserialize_data: (json_object data) -> DPoP::KeyManager
12
- end
13
- end
14
- end