purple-restaurant-61197
03/10/2023, 8:34 PMoathkeeper_1 | time=2023-03-10T20:30:26Z level=info msg=started handling request http_request=map[headers:map[] host: method:PRI path:* query:<nil> remote:172.24.0.1:55394 scheme:http]
oathkeeper_1 | time=2023-03-10T20:30:26Z level=warning msg=Access request denied audience=application error=map[debug: message:Requested url does not match any rules reason: stack_trace:
purple-restaurant-61197
03/10/2023, 8:37 PMmethod:PRI
.
Here's my match rule:
-
id: "grpc:public"
upstream:
url: "<http://localhost:9001>"
preserve_host: true
match:
url: "<http://localhost:4455/><**>"
methods:
- POST
- HEAD
- GET
- PUT
- PATCH
- DELETE
- CONNECT
- TRACE
authenticators:
-
handler: anonymous
authorizer:
handler: allow
mutators:
-
handler: noop
Where localhost:9001 is running my gRPC service. I also tried this match config, seeing there's some level of support with gRPC (via middleware?), but that had the same results
match:
authority: localhost:4455
full_method: services.reports.v1.ReportsService/CreateGuestToken
Any help would be appreciated - thank you!flaky-lamp-1593
03/10/2023, 9:05 PMmethod:PRI
purple-restaurant-61197
03/10/2023, 9:41 PMmethod:PRI
seems like a part of the http/2 spec - https://www.rfc-editor.org/rfc/rfc7540#section-3.5purple-restaurant-61197
03/10/2023, 9:41 PMflaky-lamp-1593
03/10/2023, 9:42 PMflaky-lamp-1593
03/10/2023, 9:43 PMmatch:
purple-restaurant-61197
03/10/2023, 9:44 PMpurple-restaurant-61197
03/10/2023, 10:03 PMPRI
method is part of a connection handshake/preface, and would look like:
PRI * HTTP/2.0\r\n\r\nSM\r\n\r\n"
Which probably corresponds to this:
Not Found status_code:404] http_request=map[headers:map[x-forwarded-for:172.24.0.1] host: method:PRI path:* query:<nil> remote:172.24.0.1:55448 scheme:http] http_response=map[status_code:404]
I wonder if I need a special match rule to just pass anything with this special method along to my backing serverpurple-restaurant-61197
03/10/2023, 10:08 PM-
id: "http2:pri"
upstream:
url: "<http://localhost:9001>"
preserve_host: true
match:
url: "*"
methods:
- PRI
authenticators:
-
handler: anonymous
authorizer:
handler: allow
mutators:
-
handler: noop
flaky-lamp-1593
03/10/2023, 10:12 PMpurple-restaurant-61197
03/10/2023, 10:38 PMPRI
method in http/2. From the spec, this sounds like a valid thing, though.
This method is never used by an actual client.
This method will appear to be used when an HTTP/1.1 server or
intermediary attempts to parse an HTTP/2 connection preface.
So I wonder if missing typical request data is just characteristic of this special-case http methodpurple-restaurant-61197
03/10/2023, 10:40 PMpurple-restaurant-61197
03/20/2023, 2:05 PM