grpc 1.36.0 → 1.37.0.pre1

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of grpc might be problematic. Click here for more details.

Files changed (221) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +65 -37
  3. data/include/grpc/grpc.h +15 -1
  4. data/include/grpc/impl/codegen/port_platform.h +2 -0
  5. data/src/core/ext/filters/client_channel/client_channel.cc +327 -305
  6. data/src/core/ext/filters/client_channel/client_channel_factory.h +2 -1
  7. data/src/core/ext/filters/client_channel/config_selector.h +8 -0
  8. data/src/core/ext/filters/client_channel/dynamic_filters.cc +9 -4
  9. data/src/core/ext/filters/client_channel/global_subchannel_pool.cc +24 -142
  10. data/src/core/ext/filters/client_channel/global_subchannel_pool.h +15 -10
  11. data/src/core/ext/filters/client_channel/lb_policy.cc +3 -0
  12. data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc +23 -0
  13. data/src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.h +27 -0
  14. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_impl.cc +7 -22
  15. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_manager.cc +1 -1
  16. data/src/core/ext/filters/client_channel/lb_policy/xds/xds_cluster_resolver.cc +2 -2
  17. data/src/core/ext/filters/client_channel/local_subchannel_pool.cc +27 -67
  18. data/src/core/ext/filters/client_channel/local_subchannel_pool.h +10 -9
  19. data/src/core/ext/filters/client_channel/resolver.cc +3 -0
  20. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +2 -2
  21. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_windows.cc +3 -1
  22. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +5 -9
  23. data/src/core/ext/filters/client_channel/resolver/google_c2p/google_c2p_resolver.cc +18 -3
  24. data/src/core/ext/filters/client_channel/resolver/xds/xds_resolver.cc +295 -91
  25. data/src/core/ext/filters/client_channel/server_address.cc +3 -0
  26. data/src/core/ext/filters/client_channel/subchannel.cc +69 -146
  27. data/src/core/ext/filters/client_channel/subchannel.h +63 -95
  28. data/src/core/ext/filters/client_channel/subchannel_pool_interface.cc +16 -2
  29. data/src/core/ext/filters/client_channel/subchannel_pool_interface.h +10 -8
  30. data/src/core/ext/filters/client_idle/client_idle_filter.cc +1 -1
  31. data/src/core/ext/filters/fault_injection/fault_injection_filter.cc +495 -0
  32. data/src/core/ext/filters/fault_injection/fault_injection_filter.h +39 -0
  33. data/src/core/ext/filters/fault_injection/service_config_parser.cc +189 -0
  34. data/src/core/ext/filters/fault_injection/service_config_parser.h +85 -0
  35. data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.cc +1 -1
  36. data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +1 -1
  37. data/src/core/ext/transport/chttp2/client/insecure/channel_create.cc +3 -2
  38. data/src/core/ext/transport/chttp2/client/insecure/channel_create_posix.cc +1 -1
  39. data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +3 -2
  40. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +457 -170
  41. data/src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.cc +1 -1
  42. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +39 -7
  43. data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +12 -1
  44. data/src/core/ext/transport/chttp2/transport/frame_data.cc +5 -1
  45. data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +1 -1
  46. data/src/core/ext/transport/chttp2/transport/internal.h +1 -0
  47. data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.c +406 -0
  48. data/src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.h +1459 -0
  49. data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c +350 -0
  50. data/src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.h +1348 -0
  51. data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.c +6 -0
  52. data/src/core/ext/upb-generated/envoy/config/core/v3/protocol.upb.h +25 -0
  53. data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.c +144 -0
  54. data/src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.h +488 -0
  55. data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.c +141 -0
  56. data/src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.h +452 -0
  57. data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.c +15 -0
  58. data/src/core/ext/upb-generated/envoy/config/route/v3/route_components.upb.h +44 -0
  59. data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.c +79 -0
  60. data/src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.h +268 -0
  61. data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.c +78 -0
  62. data/src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.h +281 -0
  63. data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.c +41 -0
  64. data/src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.h +113 -0
  65. data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c +6 -5
  66. data/src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h +13 -9
  67. data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.c +93 -0
  68. data/src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.h +323 -0
  69. data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.c +36 -0
  70. data/src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.h +90 -0
  71. data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.c +46 -0
  72. data/src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.h +124 -0
  73. data/src/core/ext/upb-generated/udpa/type/v1/typed_struct.upb.c +33 -0
  74. data/src/core/ext/upb-generated/udpa/type/v1/typed_struct.upb.h +77 -0
  75. data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.c +354 -0
  76. data/src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.h +140 -0
  77. data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.c +383 -0
  78. data/src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.h +115 -0
  79. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.c +10 -7
  80. data/src/core/ext/upbdefs-generated/envoy/config/core/v3/protocol.upbdefs.h +5 -0
  81. data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.c +141 -0
  82. data/src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.h +70 -0
  83. data/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.c +141 -0
  84. data/src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.h +70 -0
  85. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c +13 -7
  86. data/src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.h +5 -0
  87. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/common/fault/v3/fault.upbdefs.c +102 -0
  88. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/common/fault/v3/fault.upbdefs.h +55 -0
  89. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/fault/v3/fault.upbdefs.c +120 -0
  90. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/fault/v3/fault.upbdefs.h +45 -0
  91. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.c +76 -0
  92. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.h +35 -0
  93. data/src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c +21 -20
  94. data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.c +130 -0
  95. data/src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.h +50 -0
  96. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.c +56 -0
  97. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.h +35 -0
  98. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.c +63 -0
  99. data/src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.h +40 -0
  100. data/src/core/ext/upbdefs-generated/udpa/type/v1/typed_struct.upbdefs.c +44 -0
  101. data/src/core/ext/upbdefs-generated/udpa/type/v1/typed_struct.upbdefs.h +35 -0
  102. data/src/core/ext/xds/xds_api.cc +1591 -279
  103. data/src/core/ext/xds/xds_api.h +279 -39
  104. data/src/core/ext/xds/xds_bootstrap.cc +21 -5
  105. data/src/core/ext/xds/xds_bootstrap.h +5 -1
  106. data/src/core/ext/xds/xds_client.cc +168 -23
  107. data/src/core/ext/xds/xds_client.h +26 -0
  108. data/src/core/ext/xds/xds_client_stats.h +2 -2
  109. data/src/core/ext/xds/xds_http_fault_filter.cc +226 -0
  110. data/src/core/ext/xds/xds_http_fault_filter.h +63 -0
  111. data/src/core/ext/xds/xds_http_filters.cc +114 -0
  112. data/src/core/ext/xds/xds_http_filters.h +130 -0
  113. data/src/core/ext/xds/xds_server_config_fetcher.cc +391 -126
  114. data/src/core/lib/channel/channel_stack.cc +12 -0
  115. data/src/core/lib/channel/channel_stack.h +7 -0
  116. data/src/core/lib/channel/channelz.cc +92 -4
  117. data/src/core/lib/channel/channelz.h +30 -1
  118. data/src/core/lib/channel/channelz_registry.cc +14 -0
  119. data/src/core/lib/channel/handshaker.cc +0 -39
  120. data/src/core/lib/channel/handshaker.h +0 -17
  121. data/src/core/lib/channel/status_util.cc +12 -2
  122. data/src/core/lib/channel/status_util.h +5 -0
  123. data/src/core/lib/gpr/sync_abseil.cc +3 -6
  124. data/src/core/lib/gpr/sync_windows.cc +2 -2
  125. data/src/core/lib/gprpp/atomic.h +3 -3
  126. data/src/core/lib/gprpp/dual_ref_counted.h +3 -3
  127. data/src/core/lib/gprpp/ref_counted_ptr.h +2 -0
  128. data/src/core/lib/gprpp/thd.h +1 -1
  129. data/src/core/lib/iomgr/buffer_list.h +1 -1
  130. data/src/core/lib/iomgr/cfstream_handle.cc +2 -2
  131. data/src/core/lib/iomgr/error.h +1 -1
  132. data/src/core/lib/iomgr/ev_apple.cc +1 -1
  133. data/src/core/lib/iomgr/ev_epoll1_linux.cc +3 -3
  134. data/src/core/lib/iomgr/ev_posix.cc +3 -3
  135. data/src/core/lib/iomgr/exec_ctx.cc +6 -2
  136. data/src/core/lib/iomgr/resource_quota.cc +1 -1
  137. data/src/core/lib/iomgr/sockaddr_utils.cc +120 -0
  138. data/src/core/lib/iomgr/sockaddr_utils.h +25 -0
  139. data/src/core/lib/iomgr/tcp_posix.cc +1 -4
  140. data/src/core/lib/iomgr/tcp_uv.cc +2 -2
  141. data/src/core/lib/iomgr/timer_generic.cc +2 -2
  142. data/src/core/lib/iomgr/timer_manager.cc +1 -1
  143. data/src/core/lib/iomgr/wakeup_fd_nospecial.cc +1 -1
  144. data/src/core/lib/{security/authorization → matchers}/matchers.cc +8 -8
  145. data/src/core/lib/{security/authorization → matchers}/matchers.h +14 -12
  146. data/src/core/lib/security/security_connector/ssl_utils.cc +6 -4
  147. data/src/core/lib/security/security_connector/tls/tls_security_connector.cc +6 -0
  148. data/src/core/lib/security/transport/security_handshaker.cc +32 -2
  149. data/src/core/lib/slice/slice_intern.cc +6 -7
  150. data/src/core/lib/surface/channel.h +3 -3
  151. data/src/core/lib/surface/completion_queue.cc +1 -1
  152. data/src/core/lib/surface/lame_client.cc +38 -19
  153. data/src/core/lib/surface/lame_client.h +4 -3
  154. data/src/core/lib/surface/server.cc +40 -33
  155. data/src/core/lib/surface/server.h +74 -15
  156. data/src/core/lib/surface/version.cc +1 -1
  157. data/src/core/lib/transport/metadata_batch.cc +27 -0
  158. data/src/core/lib/transport/metadata_batch.h +14 -0
  159. data/src/core/plugin_registry/grpc_plugin_registry.cc +6 -0
  160. data/src/core/tsi/alts/handshaker/alts_handshaker_client.cc +1 -4
  161. data/src/core/tsi/alts/handshaker/alts_tsi_handshaker.h +1 -1
  162. data/src/core/tsi/alts/handshaker/transport_security_common_api.cc +1 -3
  163. data/src/core/tsi/fake_transport_security.cc +10 -1
  164. data/src/ruby/ext/grpc/extconf.rb +9 -1
  165. data/src/ruby/ext/grpc/rb_channel.c +10 -1
  166. data/src/ruby/ext/grpc/rb_channel_credentials.c +11 -1
  167. data/src/ruby/ext/grpc/rb_channel_credentials.h +4 -0
  168. data/src/ruby/ext/grpc/rb_compression_options.c +1 -1
  169. data/src/ruby/ext/grpc/rb_enable_cpp.cc +1 -1
  170. data/src/ruby/ext/grpc/rb_grpc.c +4 -0
  171. data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +2 -0
  172. data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +4 -1
  173. data/src/ruby/ext/grpc/rb_server.c +13 -1
  174. data/src/ruby/ext/grpc/rb_server_credentials.c +19 -3
  175. data/src/ruby/ext/grpc/rb_server_credentials.h +4 -0
  176. data/src/ruby/ext/grpc/rb_xds_channel_credentials.c +215 -0
  177. data/src/ruby/ext/grpc/rb_xds_channel_credentials.h +35 -0
  178. data/src/ruby/ext/grpc/rb_xds_server_credentials.c +169 -0
  179. data/src/ruby/ext/grpc/rb_xds_server_credentials.h +35 -0
  180. data/src/ruby/lib/grpc/generic/client_stub.rb +4 -2
  181. data/src/ruby/lib/grpc/version.rb +1 -1
  182. data/src/ruby/spec/call_spec.rb +1 -1
  183. data/src/ruby/spec/channel_credentials_spec.rb +32 -0
  184. data/src/ruby/spec/channel_spec.rb +17 -6
  185. data/src/ruby/spec/client_auth_spec.rb +27 -1
  186. data/src/ruby/spec/errors_spec.rb +1 -1
  187. data/src/ruby/spec/generic/active_call_spec.rb +2 -2
  188. data/src/ruby/spec/generic/client_stub_spec.rb +4 -4
  189. data/src/ruby/spec/generic/rpc_server_spec.rb +1 -1
  190. data/src/ruby/spec/server_credentials_spec.rb +25 -0
  191. data/src/ruby/spec/server_spec.rb +22 -0
  192. data/third_party/boringssl-with-bazel/err_data.c +255 -255
  193. data/third_party/boringssl-with-bazel/src/crypto/cpu-arm-linux.c +11 -2
  194. data/third_party/boringssl-with-bazel/src/crypto/cpu-arm.c +3 -3
  195. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/cipher/cipher.c +21 -13
  196. data/third_party/boringssl-with-bazel/src/crypto/fipsmodule/rand/rand.c +7 -5
  197. data/third_party/boringssl-with-bazel/src/crypto/x509/x509_cmp.c +0 -28
  198. data/third_party/boringssl-with-bazel/src/crypto/x509/x_attrib.c +22 -17
  199. data/third_party/boringssl-with-bazel/src/crypto/x509/x_x509.c +3 -1
  200. data/third_party/boringssl-with-bazel/src/include/openssl/cipher.h +4 -0
  201. data/third_party/boringssl-with-bazel/src/include/openssl/cpu.h +22 -32
  202. data/third_party/boringssl-with-bazel/src/include/openssl/ssl.h +25 -9
  203. data/third_party/boringssl-with-bazel/src/include/openssl/x509.h +0 -1
  204. data/third_party/boringssl-with-bazel/src/ssl/t1_lib.cc +33 -19
  205. data/third_party/xxhash/xxhash.h +5443 -0
  206. metadata +93 -49
  207. data/src/core/lib/security/authorization/authorization_engine.cc +0 -177
  208. data/src/core/lib/security/authorization/authorization_engine.h +0 -84
  209. data/src/core/lib/security/authorization/evaluate_args.cc +0 -148
  210. data/src/core/lib/security/authorization/evaluate_args.h +0 -59
  211. data/src/core/lib/security/authorization/mock_cel/activation.h +0 -57
  212. data/src/core/lib/security/authorization/mock_cel/cel_expr_builder_factory.h +0 -44
  213. data/src/core/lib/security/authorization/mock_cel/cel_expression.h +0 -69
  214. data/src/core/lib/security/authorization/mock_cel/cel_value.h +0 -99
  215. data/src/core/lib/security/authorization/mock_cel/evaluator_core.h +0 -67
  216. data/src/core/lib/security/authorization/mock_cel/flat_expr_builder.h +0 -57
  217. data/third_party/abseil-cpp/absl/container/flat_hash_set.h +0 -504
  218. data/third_party/upb/upb/json_decode.c +0 -1443
  219. data/third_party/upb/upb/json_decode.h +0 -23
  220. data/third_party/upb/upb/json_encode.c +0 -713
  221. data/third_party/upb/upb/json_encode.h +0 -36
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: grpc
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.36.0
4
+ version: 1.37.0.pre1
5
5
  platform: ruby
6
6
  authors:
7
7
  - gRPC Authors
8
8
  autorequire:
9
9
  bindir: src/ruby/bin
10
10
  cert_chain: []
11
- date: 2021-02-23 00:00:00.000000000 Z
11
+ date: 2021-03-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: google-protobuf
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '3.14'
19
+ version: '3.15'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '3.14'
26
+ version: '3.15'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: googleapis-common-protos-types
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -312,6 +312,8 @@ files:
312
312
  - src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.h
313
313
  - src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc
314
314
  - src/core/ext/filters/client_channel/lb_policy/priority/priority.cc
315
+ - src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.cc
316
+ - src/core/ext/filters/client_channel/lb_policy/ring_hash/ring_hash.h
315
317
  - src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc
316
318
  - src/core/ext/filters/client_channel/lb_policy/subchannel_list.h
317
319
  - src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc
@@ -373,6 +375,10 @@ files:
373
375
  - src/core/ext/filters/client_idle/client_idle_filter.cc
374
376
  - src/core/ext/filters/deadline/deadline_filter.cc
375
377
  - src/core/ext/filters/deadline/deadline_filter.h
378
+ - src/core/ext/filters/fault_injection/fault_injection_filter.cc
379
+ - src/core/ext/filters/fault_injection/fault_injection_filter.h
380
+ - src/core/ext/filters/fault_injection/service_config_parser.cc
381
+ - src/core/ext/filters/fault_injection/service_config_parser.h
376
382
  - src/core/ext/filters/http/client/http_client_filter.cc
377
383
  - src/core/ext/filters/http/client/http_client_filter.h
378
384
  - src/core/ext/filters/http/client_authority_filter.cc
@@ -453,12 +459,16 @@ files:
453
459
  - src/core/ext/transport/inproc/inproc_plugin.cc
454
460
  - src/core/ext/transport/inproc/inproc_transport.cc
455
461
  - src/core/ext/transport/inproc/inproc_transport.h
462
+ - src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.c
463
+ - src/core/ext/upb-generated/envoy/admin/v3/config_dump.upb.h
456
464
  - src/core/ext/upb-generated/envoy/annotations/deprecation.upb.c
457
465
  - src/core/ext/upb-generated/envoy/annotations/deprecation.upb.h
458
466
  - src/core/ext/upb-generated/envoy/annotations/resource.upb.c
459
467
  - src/core/ext/upb-generated/envoy/annotations/resource.upb.h
460
468
  - src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.c
461
469
  - src/core/ext/upb-generated/envoy/config/accesslog/v3/accesslog.upb.h
470
+ - src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.c
471
+ - src/core/ext/upb-generated/envoy/config/bootstrap/v3/bootstrap.upb.h
462
472
  - src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.c
463
473
  - src/core/ext/upb-generated/envoy/config/cluster/v3/circuit_breaker.upb.h
464
474
  - src/core/ext/upb-generated/envoy/config/cluster/v3/cluster.upb.c
@@ -507,6 +517,10 @@ files:
507
517
  - src/core/ext/upb-generated/envoy/config/listener/v3/listener_components.upb.h
508
518
  - src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.c
509
519
  - src/core/ext/upb-generated/envoy/config/listener/v3/udp_listener_config.upb.h
520
+ - src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.c
521
+ - src/core/ext/upb-generated/envoy/config/metrics/v3/stats.upb.h
522
+ - src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.c
523
+ - src/core/ext/upb-generated/envoy/config/overload/v3/overload.upb.h
510
524
  - src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.c
511
525
  - src/core/ext/upb-generated/envoy/config/rbac/v3/rbac.upb.h
512
526
  - src/core/ext/upb-generated/envoy/config/route/v3/route.upb.c
@@ -519,6 +533,12 @@ files:
519
533
  - src/core/ext/upb-generated/envoy/config/trace/v3/http_tracer.upb.h
520
534
  - src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.c
521
535
  - src/core/ext/upb-generated/envoy/extensions/clusters/aggregate/v3/cluster.upb.h
536
+ - src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.c
537
+ - src/core/ext/upb-generated/envoy/extensions/filters/common/fault/v3/fault.upb.h
538
+ - src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.c
539
+ - src/core/ext/upb-generated/envoy/extensions/filters/http/fault/v3/fault.upb.h
540
+ - src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.c
541
+ - src/core/ext/upb-generated/envoy/extensions/filters/http/router/v3/router.upb.h
522
542
  - src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.c
523
543
  - src/core/ext/upb-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upb.h
524
544
  - src/core/ext/upb-generated/envoy/extensions/transport_sockets/tls/v3/cert.upb.c
@@ -545,8 +565,12 @@ files:
545
565
  - src/core/ext/upb-generated/envoy/service/route/v3/rds.upb.h
546
566
  - src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.c
547
567
  - src/core/ext/upb-generated/envoy/service/route/v3/srds.upb.h
568
+ - src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.c
569
+ - src/core/ext/upb-generated/envoy/service/status/v3/csds.upb.h
548
570
  - src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.c
549
571
  - src/core/ext/upb-generated/envoy/type/matcher/v3/metadata.upb.h
572
+ - src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.c
573
+ - src/core/ext/upb-generated/envoy/type/matcher/v3/node.upb.h
550
574
  - src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.c
551
575
  - src/core/ext/upb-generated/envoy/type/matcher/v3/number.upb.h
552
576
  - src/core/ext/upb-generated/envoy/type/matcher/v3/path.upb.c
@@ -555,6 +579,8 @@ files:
555
579
  - src/core/ext/upb-generated/envoy/type/matcher/v3/regex.upb.h
556
580
  - src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.c
557
581
  - src/core/ext/upb-generated/envoy/type/matcher/v3/string.upb.h
582
+ - src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.c
583
+ - src/core/ext/upb-generated/envoy/type/matcher/v3/struct.upb.h
558
584
  - src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.c
559
585
  - src/core/ext/upb-generated/envoy/type/matcher/v3/value.upb.h
560
586
  - src/core/ext/upb-generated/envoy/type/metadata/v3/metadata.upb.c
@@ -615,6 +641,8 @@ files:
615
641
  - src/core/ext/upb-generated/udpa/annotations/versioning.upb.h
616
642
  - src/core/ext/upb-generated/udpa/data/orca/v1/orca_load_report.upb.c
617
643
  - src/core/ext/upb-generated/udpa/data/orca/v1/orca_load_report.upb.h
644
+ - src/core/ext/upb-generated/udpa/type/v1/typed_struct.upb.c
645
+ - src/core/ext/upb-generated/udpa/type/v1/typed_struct.upb.h
618
646
  - src/core/ext/upb-generated/validate/validate.upb.c
619
647
  - src/core/ext/upb-generated/validate/validate.upb.h
620
648
  - src/core/ext/upb-generated/xds/core/v3/authority.upb.c
@@ -629,12 +657,16 @@ files:
629
657
  - src/core/ext/upb-generated/xds/core/v3/resource_locator.upb.h
630
658
  - src/core/ext/upb-generated/xds/core/v3/resource_name.upb.c
631
659
  - src/core/ext/upb-generated/xds/core/v3/resource_name.upb.h
660
+ - src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.c
661
+ - src/core/ext/upbdefs-generated/envoy/admin/v3/config_dump.upbdefs.h
632
662
  - src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.c
633
663
  - src/core/ext/upbdefs-generated/envoy/annotations/deprecation.upbdefs.h
634
664
  - src/core/ext/upbdefs-generated/envoy/annotations/resource.upbdefs.c
635
665
  - src/core/ext/upbdefs-generated/envoy/annotations/resource.upbdefs.h
636
666
  - src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.c
637
667
  - src/core/ext/upbdefs-generated/envoy/config/accesslog/v3/accesslog.upbdefs.h
668
+ - src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.c
669
+ - src/core/ext/upbdefs-generated/envoy/config/bootstrap/v3/bootstrap.upbdefs.h
638
670
  - src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.c
639
671
  - src/core/ext/upbdefs-generated/envoy/config/cluster/v3/circuit_breaker.upbdefs.h
640
672
  - src/core/ext/upbdefs-generated/envoy/config/cluster/v3/cluster.upbdefs.c
@@ -683,6 +715,10 @@ files:
683
715
  - src/core/ext/upbdefs-generated/envoy/config/listener/v3/listener_components.upbdefs.h
684
716
  - src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.c
685
717
  - src/core/ext/upbdefs-generated/envoy/config/listener/v3/udp_listener_config.upbdefs.h
718
+ - src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.c
719
+ - src/core/ext/upbdefs-generated/envoy/config/metrics/v3/stats.upbdefs.h
720
+ - src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.c
721
+ - src/core/ext/upbdefs-generated/envoy/config/overload/v3/overload.upbdefs.h
686
722
  - src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.c
687
723
  - src/core/ext/upbdefs-generated/envoy/config/route/v3/route.upbdefs.h
688
724
  - src/core/ext/upbdefs-generated/envoy/config/route/v3/route_components.upbdefs.c
@@ -693,6 +729,12 @@ files:
693
729
  - src/core/ext/upbdefs-generated/envoy/config/trace/v3/http_tracer.upbdefs.h
694
730
  - src/core/ext/upbdefs-generated/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.c
695
731
  - src/core/ext/upbdefs-generated/envoy/extensions/clusters/aggregate/v3/cluster.upbdefs.h
732
+ - src/core/ext/upbdefs-generated/envoy/extensions/filters/common/fault/v3/fault.upbdefs.c
733
+ - src/core/ext/upbdefs-generated/envoy/extensions/filters/common/fault/v3/fault.upbdefs.h
734
+ - src/core/ext/upbdefs-generated/envoy/extensions/filters/http/fault/v3/fault.upbdefs.c
735
+ - src/core/ext/upbdefs-generated/envoy/extensions/filters/http/fault/v3/fault.upbdefs.h
736
+ - src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.c
737
+ - src/core/ext/upbdefs-generated/envoy/extensions/filters/http/router/v3/router.upbdefs.h
696
738
  - src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.c
697
739
  - src/core/ext/upbdefs-generated/envoy/extensions/filters/network/http_connection_manager/v3/http_connection_manager.upbdefs.h
698
740
  - src/core/ext/upbdefs-generated/envoy/extensions/transport_sockets/tls/v3/cert.upbdefs.c
@@ -719,8 +761,12 @@ files:
719
761
  - src/core/ext/upbdefs-generated/envoy/service/route/v3/rds.upbdefs.h
720
762
  - src/core/ext/upbdefs-generated/envoy/service/route/v3/srds.upbdefs.c
721
763
  - src/core/ext/upbdefs-generated/envoy/service/route/v3/srds.upbdefs.h
764
+ - src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.c
765
+ - src/core/ext/upbdefs-generated/envoy/service/status/v3/csds.upbdefs.h
722
766
  - src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.c
723
767
  - src/core/ext/upbdefs-generated/envoy/type/matcher/v3/metadata.upbdefs.h
768
+ - src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.c
769
+ - src/core/ext/upbdefs-generated/envoy/type/matcher/v3/node.upbdefs.h
724
770
  - src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.c
725
771
  - src/core/ext/upbdefs-generated/envoy/type/matcher/v3/number.upbdefs.h
726
772
  - src/core/ext/upbdefs-generated/envoy/type/matcher/v3/path.upbdefs.c
@@ -729,6 +775,8 @@ files:
729
775
  - src/core/ext/upbdefs-generated/envoy/type/matcher/v3/regex.upbdefs.h
730
776
  - src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.c
731
777
  - src/core/ext/upbdefs-generated/envoy/type/matcher/v3/string.upbdefs.h
778
+ - src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.c
779
+ - src/core/ext/upbdefs-generated/envoy/type/matcher/v3/struct.upbdefs.h
732
780
  - src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.c
733
781
  - src/core/ext/upbdefs-generated/envoy/type/matcher/v3/value.upbdefs.h
734
782
  - src/core/ext/upbdefs-generated/envoy/type/metadata/v3/metadata.upbdefs.c
@@ -773,6 +821,8 @@ files:
773
821
  - src/core/ext/upbdefs-generated/udpa/annotations/status.upbdefs.h
774
822
  - src/core/ext/upbdefs-generated/udpa/annotations/versioning.upbdefs.c
775
823
  - src/core/ext/upbdefs-generated/udpa/annotations/versioning.upbdefs.h
824
+ - src/core/ext/upbdefs-generated/udpa/type/v1/typed_struct.upbdefs.c
825
+ - src/core/ext/upbdefs-generated/udpa/type/v1/typed_struct.upbdefs.h
776
826
  - src/core/ext/upbdefs-generated/validate/validate.upbdefs.c
777
827
  - src/core/ext/upbdefs-generated/validate/validate.upbdefs.h
778
828
  - src/core/ext/upbdefs-generated/xds/core/v3/authority.upbdefs.c
@@ -805,6 +855,10 @@ files:
805
855
  - src/core/ext/xds/xds_client.h
806
856
  - src/core/ext/xds/xds_client_stats.cc
807
857
  - src/core/ext/xds/xds_client_stats.h
858
+ - src/core/ext/xds/xds_http_fault_filter.cc
859
+ - src/core/ext/xds/xds_http_fault_filter.h
860
+ - src/core/ext/xds/xds_http_filters.cc
861
+ - src/core/ext/xds/xds_http_filters.h
808
862
  - src/core/ext/xds/xds_server_config_fetcher.cc
809
863
  - src/core/lib/avl/avl.cc
810
864
  - src/core/lib/avl/avl.h
@@ -1116,21 +1170,11 @@ files:
1116
1170
  - src/core/lib/json/json_util.cc
1117
1171
  - src/core/lib/json/json_util.h
1118
1172
  - src/core/lib/json/json_writer.cc
1173
+ - src/core/lib/matchers/matchers.cc
1174
+ - src/core/lib/matchers/matchers.h
1119
1175
  - src/core/lib/profiling/basic_timers.cc
1120
1176
  - src/core/lib/profiling/stap_timers.cc
1121
1177
  - src/core/lib/profiling/timers.h
1122
- - src/core/lib/security/authorization/authorization_engine.cc
1123
- - src/core/lib/security/authorization/authorization_engine.h
1124
- - src/core/lib/security/authorization/evaluate_args.cc
1125
- - src/core/lib/security/authorization/evaluate_args.h
1126
- - src/core/lib/security/authorization/matchers.cc
1127
- - src/core/lib/security/authorization/matchers.h
1128
- - src/core/lib/security/authorization/mock_cel/activation.h
1129
- - src/core/lib/security/authorization/mock_cel/cel_expr_builder_factory.h
1130
- - src/core/lib/security/authorization/mock_cel/cel_expression.h
1131
- - src/core/lib/security/authorization/mock_cel/cel_value.h
1132
- - src/core/lib/security/authorization/mock_cel/evaluator_core.h
1133
- - src/core/lib/security/authorization/mock_cel/flat_expr_builder.h
1134
1178
  - src/core/lib/security/context/security_context.cc
1135
1179
  - src/core/lib/security/context/security_context.h
1136
1180
  - src/core/lib/security/credentials/alts/alts_credentials.cc
@@ -1394,6 +1438,10 @@ files:
1394
1438
  - src/ruby/ext/grpc/rb_server.h
1395
1439
  - src/ruby/ext/grpc/rb_server_credentials.c
1396
1440
  - src/ruby/ext/grpc/rb_server_credentials.h
1441
+ - src/ruby/ext/grpc/rb_xds_channel_credentials.c
1442
+ - src/ruby/ext/grpc/rb_xds_channel_credentials.h
1443
+ - src/ruby/ext/grpc/rb_xds_server_credentials.c
1444
+ - src/ruby/ext/grpc/rb_xds_server_credentials.h
1397
1445
  - src/ruby/lib/grpc.rb
1398
1446
  - src/ruby/lib/grpc/core/status_codes.rb
1399
1447
  - src/ruby/lib/grpc/core/time_consts.rb
@@ -1525,7 +1573,6 @@ files:
1525
1573
  - third_party/abseil-cpp/absl/base/thread_annotations.h
1526
1574
  - third_party/abseil-cpp/absl/container/fixed_array.h
1527
1575
  - third_party/abseil-cpp/absl/container/flat_hash_map.h
1528
- - third_party/abseil-cpp/absl/container/flat_hash_set.h
1529
1576
  - third_party/abseil-cpp/absl/container/inlined_vector.h
1530
1577
  - third_party/abseil-cpp/absl/container/internal/common.h
1531
1578
  - third_party/abseil-cpp/absl/container/internal/compressed_tuple.h
@@ -2320,10 +2367,6 @@ files:
2320
2367
  - third_party/upb/upb/def.hpp
2321
2368
  - third_party/upb/upb/encode.c
2322
2369
  - third_party/upb/upb/encode.h
2323
- - third_party/upb/upb/json_decode.c
2324
- - third_party/upb/upb/json_decode.h
2325
- - third_party/upb/upb/json_encode.c
2326
- - third_party/upb/upb/json_encode.h
2327
2370
  - third_party/upb/upb/msg.c
2328
2371
  - third_party/upb/upb/msg.h
2329
2372
  - third_party/upb/upb/port_def.inc
@@ -2338,6 +2381,7 @@ files:
2338
2381
  - third_party/upb/upb/upb.h
2339
2382
  - third_party/upb/upb/upb.hpp
2340
2383
  - third_party/upb/upb/upb.int.h
2384
+ - third_party/xxhash/xxhash.h
2341
2385
  - third_party/zlib/adler32.c
2342
2386
  - third_party/zlib/compress.c
2343
2387
  - third_party/zlib/crc32.c
@@ -2381,55 +2425,55 @@ required_ruby_version: !ruby/object:Gem::Requirement
2381
2425
  version: 2.4.0
2382
2426
  required_rubygems_version: !ruby/object:Gem::Requirement
2383
2427
  requirements:
2384
- - - ">="
2428
+ - - ">"
2385
2429
  - !ruby/object:Gem::Version
2386
- version: '0'
2430
+ version: 1.3.1
2387
2431
  requirements: []
2388
- rubygems_version: 3.2.11
2432
+ rubygems_version: 3.2.15
2389
2433
  signing_key:
2390
2434
  specification_version: 4
2391
2435
  summary: GRPC system in Ruby
2392
2436
  test_files:
2393
- - src/ruby/spec/client_server_spec.rb
2394
- - src/ruby/spec/debug_message_spec.rb
2437
+ - src/ruby/spec/call_credentials_spec.rb
2395
2438
  - src/ruby/spec/user_agent_spec.rb
2396
- - src/ruby/spec/support/helpers.rb
2397
- - src/ruby/spec/support/services.rb
2398
- - src/ruby/spec/client_auth_spec.rb
2399
- - src/ruby/spec/channel_connection_spec.rb
2400
- - src/ruby/spec/errors_spec.rb
2401
- - src/ruby/spec/spec_helper.rb
2402
2439
  - src/ruby/spec/error_sanity_spec.rb
2440
+ - src/ruby/spec/debug_message_spec.rb
2403
2441
  - src/ruby/spec/server_credentials_spec.rb
2404
- - src/ruby/spec/testdata/client.pem
2442
+ - src/ruby/spec/testdata/client.key
2405
2443
  - src/ruby/spec/testdata/ca.pem
2406
2444
  - src/ruby/spec/testdata/server1.key
2407
- - src/ruby/spec/testdata/client.key
2445
+ - src/ruby/spec/testdata/client.pem
2408
2446
  - src/ruby/spec/testdata/README
2409
2447
  - src/ruby/spec/testdata/server1.pem
2410
- - src/ruby/spec/channel_credentials_spec.rb
2448
+ - src/ruby/spec/client_auth_spec.rb
2411
2449
  - src/ruby/spec/google_rpc_status_utils_spec.rb
2412
- - src/ruby/spec/time_consts_spec.rb
2450
+ - src/ruby/spec/channel_connection_spec.rb
2413
2451
  - src/ruby/spec/server_spec.rb
2414
- - src/ruby/spec/call_spec.rb
2415
- - src/ruby/spec/compression_options_spec.rb
2416
- - src/ruby/spec/channel_spec.rb
2417
- - src/ruby/spec/pb/duplicate/codegen_spec.rb
2452
+ - src/ruby/spec/support/services.rb
2453
+ - src/ruby/spec/support/helpers.rb
2454
+ - src/ruby/spec/time_consts_spec.rb
2418
2455
  - src/ruby/spec/pb/health/checker_spec.rb
2419
2456
  - src/ruby/spec/pb/codegen/package_option_spec.rb
2420
- - src/ruby/spec/pb/codegen/grpc/testing/package_options_ruby_style.proto
2421
- - src/ruby/spec/pb/codegen/grpc/testing/package_options_import2.proto
2422
2457
  - src/ruby/spec/pb/codegen/grpc/testing/package_options_import.proto
2423
- - src/ruby/spec/pb/codegen/grpc/testing/package_options.proto
2424
2458
  - src/ruby/spec/pb/codegen/grpc/testing/same_package_service_name.proto
2459
+ - src/ruby/spec/pb/codegen/grpc/testing/package_options.proto
2460
+ - src/ruby/spec/pb/codegen/grpc/testing/package_options_ruby_style.proto
2461
+ - src/ruby/spec/pb/codegen/grpc/testing/package_options_import2.proto
2425
2462
  - src/ruby/spec/pb/codegen/grpc/testing/same_ruby_package_service_name.proto
2426
- - src/ruby/spec/call_credentials_spec.rb
2463
+ - src/ruby/spec/pb/duplicate/codegen_spec.rb
2464
+ - src/ruby/spec/channel_spec.rb
2465
+ - src/ruby/spec/channel_credentials_spec.rb
2466
+ - src/ruby/spec/client_server_spec.rb
2467
+ - src/ruby/spec/call_spec.rb
2468
+ - src/ruby/spec/errors_spec.rb
2469
+ - src/ruby/spec/spec_helper.rb
2427
2470
  - src/ruby/spec/generic/server_interceptors_spec.rb
2428
- - src/ruby/spec/generic/rpc_server_spec.rb
2429
- - src/ruby/spec/generic/interceptor_registry_spec.rb
2430
- - src/ruby/spec/generic/rpc_desc_spec.rb
2431
- - src/ruby/spec/generic/rpc_server_pool_spec.rb
2432
- - src/ruby/spec/generic/client_stub_spec.rb
2433
2471
  - src/ruby/spec/generic/client_interceptors_spec.rb
2434
2472
  - src/ruby/spec/generic/service_spec.rb
2473
+ - src/ruby/spec/generic/rpc_server_pool_spec.rb
2474
+ - src/ruby/spec/generic/client_stub_spec.rb
2475
+ - src/ruby/spec/generic/interceptor_registry_spec.rb
2476
+ - src/ruby/spec/generic/rpc_server_spec.rb
2435
2477
  - src/ruby/spec/generic/active_call_spec.rb
2478
+ - src/ruby/spec/generic/rpc_desc_spec.rb
2479
+ - src/ruby/spec/compression_options_spec.rb
@@ -1,177 +0,0 @@
1
- // Copyright 2020 gRPC authors.
2
- //
3
- // Licensed under the Apache License, Version 2.0 (the "License");
4
- // you may not use this file except in compliance with the License.
5
- // You may obtain a copy of the License at
6
- //
7
- // http://www.apache.org/licenses/LICENSE-2.0
8
- //
9
- // Unless required by applicable law or agreed to in writing, software
10
- // distributed under the License is distributed on an "AS IS" BASIS,
11
- // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
- // See the License for the specific language governing permissions and
13
- // limitations under the License.
14
-
15
- #include <grpc/support/port_platform.h>
16
-
17
- #include "absl/memory/memory.h"
18
-
19
- #include "src/core/lib/security/authorization/authorization_engine.h"
20
-
21
- namespace grpc_core {
22
-
23
- namespace {
24
-
25
- // Symbols for traversing Envoy Attributes
26
- constexpr char kUrlPath[] = "url_path";
27
- constexpr char kHost[] = "host";
28
- constexpr char kMethod[] = "method";
29
- constexpr char kHeaders[] = "headers";
30
- constexpr char kSourceAddress[] = "source_address";
31
- constexpr char kSourcePort[] = "source_port";
32
- constexpr char kDestinationAddress[] = "destination_address";
33
- constexpr char kDestinationPort[] = "destination_port";
34
- constexpr char kSpiffeId[] = "spiffe_id";
35
- constexpr char kCertServerName[] = "cert_server_name";
36
-
37
- } // namespace
38
-
39
- std::unique_ptr<AuthorizationEngine>
40
- AuthorizationEngine::CreateAuthorizationEngine(
41
- const std::vector<envoy_config_rbac_v3_RBAC*>& rbac_policies) {
42
- if (rbac_policies.empty() || rbac_policies.size() > 2) {
43
- gpr_log(GPR_ERROR,
44
- "Invalid rbac policies vector. Must contain either one or two rbac "
45
- "policies.");
46
- return nullptr;
47
- } else if (rbac_policies.size() == 2 &&
48
- (envoy_config_rbac_v3_RBAC_action(rbac_policies[0]) != kDeny ||
49
- envoy_config_rbac_v3_RBAC_action(rbac_policies[1]) != kAllow)) {
50
- gpr_log(GPR_ERROR,
51
- "Invalid rbac policies vector. Must contain one deny \
52
- policy and one allow policy, in that order.");
53
- return nullptr;
54
- } else {
55
- return absl::make_unique<AuthorizationEngine>(rbac_policies);
56
- }
57
- }
58
-
59
- AuthorizationEngine::AuthorizationEngine(
60
- const std::vector<envoy_config_rbac_v3_RBAC*>& rbac_policies) {
61
- for (const auto& rbac_policy : rbac_policies) {
62
- // Extract array of policies and store their condition fields in either
63
- // allow_if_matched_ or deny_if_matched_, depending on the policy action.
64
- upb::Arena temp_arena;
65
- size_t policy_num = UPB_MAP_BEGIN;
66
- const envoy_config_rbac_v3_RBAC_PoliciesEntry* policy_entry;
67
- while ((policy_entry = envoy_config_rbac_v3_RBAC_policies_next(
68
- rbac_policy, &policy_num)) != nullptr) {
69
- const upb_strview policy_name_strview =
70
- envoy_config_rbac_v3_RBAC_PoliciesEntry_key(policy_entry);
71
- const std::string policy_name(policy_name_strview.data,
72
- policy_name_strview.size);
73
- const envoy_config_rbac_v3_Policy* policy =
74
- envoy_config_rbac_v3_RBAC_PoliciesEntry_value(policy_entry);
75
- const google_api_expr_v1alpha1_Expr* condition =
76
- envoy_config_rbac_v3_Policy_condition(policy);
77
- // Parse condition to make a pointer tied to the lifetime of arena_.
78
- size_t serial_len;
79
- const char* serialized = google_api_expr_v1alpha1_Expr_serialize(
80
- condition, temp_arena.ptr(), &serial_len);
81
- const google_api_expr_v1alpha1_Expr* parsed_condition =
82
- google_api_expr_v1alpha1_Expr_parse(serialized, serial_len,
83
- arena_.ptr());
84
- if (envoy_config_rbac_v3_RBAC_action(rbac_policy) == kAllow) {
85
- allow_if_matched_.insert(std::make_pair(policy_name, parsed_condition));
86
- } else {
87
- deny_if_matched_.insert(std::make_pair(policy_name, parsed_condition));
88
- }
89
- }
90
- }
91
- }
92
-
93
- std::unique_ptr<mock_cel::Activation> AuthorizationEngine::CreateActivation(
94
- const EvaluateArgs& args) {
95
- std::unique_ptr<mock_cel::Activation> activation;
96
- for (const auto& elem : envoy_attributes_) {
97
- if (elem == kUrlPath) {
98
- absl::string_view url_path(args.GetPath());
99
- if (!url_path.empty()) {
100
- activation->InsertValue(kUrlPath,
101
- mock_cel::CelValue::CreateStringView(url_path));
102
- }
103
- } else if (elem == kHost) {
104
- absl::string_view host(args.GetHost());
105
- if (!host.empty()) {
106
- activation->InsertValue(kHost,
107
- mock_cel::CelValue::CreateStringView(host));
108
- }
109
- } else if (elem == kMethod) {
110
- absl::string_view method(args.GetMethod());
111
- if (!method.empty()) {
112
- activation->InsertValue(kMethod,
113
- mock_cel::CelValue::CreateStringView(method));
114
- }
115
- } else if (elem == kHeaders) {
116
- std::multimap<absl::string_view, absl::string_view> headers =
117
- args.GetHeaders();
118
- std::vector<std::pair<mock_cel::CelValue, mock_cel::CelValue>>
119
- header_items;
120
- for (const auto& header_key : header_keys_) {
121
- auto header_item = headers.find(header_key);
122
- if (header_item != headers.end()) {
123
- header_items.push_back(
124
- std::pair<mock_cel::CelValue, mock_cel::CelValue>(
125
- mock_cel::CelValue::CreateStringView(header_key),
126
- mock_cel::CelValue::CreateStringView(header_item->second)));
127
- }
128
- }
129
- headers_ = mock_cel::ContainerBackedMapImpl::Create(
130
- absl::Span<std::pair<mock_cel::CelValue, mock_cel::CelValue>>(
131
- header_items));
132
- activation->InsertValue(kHeaders,
133
- mock_cel::CelValue::CreateMap(headers_.get()));
134
- } else if (elem == kSourceAddress) {
135
- absl::string_view source_address(args.GetPeerAddress());
136
- if (!source_address.empty()) {
137
- activation->InsertValue(
138
- kSourceAddress,
139
- mock_cel::CelValue::CreateStringView(source_address));
140
- }
141
- } else if (elem == kSourcePort) {
142
- activation->InsertValue(
143
- kSourcePort, mock_cel::CelValue::CreateInt64(args.GetPeerPort()));
144
- } else if (elem == kDestinationAddress) {
145
- absl::string_view destination_address(args.GetLocalAddress());
146
- if (!destination_address.empty()) {
147
- activation->InsertValue(
148
- kDestinationAddress,
149
- mock_cel::CelValue::CreateStringView(destination_address));
150
- }
151
- } else if (elem == kDestinationPort) {
152
- activation->InsertValue(kDestinationPort, mock_cel::CelValue::CreateInt64(
153
- args.GetLocalPort()));
154
- } else if (elem == kSpiffeId) {
155
- absl::string_view spiffe_id(args.GetSpiffeId());
156
- if (!spiffe_id.empty()) {
157
- activation->InsertValue(
158
- kSpiffeId, mock_cel::CelValue::CreateStringView(spiffe_id));
159
- }
160
- } else if (elem == kCertServerName) {
161
- absl::string_view cert_server_name(args.GetCertServerName());
162
- if (!cert_server_name.empty()) {
163
- activation->InsertValue(
164
- kCertServerName,
165
- mock_cel::CelValue::CreateStringView(cert_server_name));
166
- }
167
- } else {
168
- gpr_log(GPR_ERROR,
169
- "Error: Authorization engine does not support evaluating "
170
- "attribute %s.",
171
- elem.c_str());
172
- }
173
- }
174
- return activation;
175
- }
176
-
177
- } // namespace grpc_core