I tried below yaml token config:
# use jwt token from auth provider 1 if exists, otherwise trigger oauth from provider 2
eas:
plugins:
- type: jwt
header_name: my-jwt-header
config:
secret: https://www.provider1.com/public_key-jwk.json
options:
audience: /special/audience/for/me
issuer: https://www.provider1.com
pcb:
skip:
- query_engine: jp
query: $.req.headers.my-jwt-header
rule:
method: regex
value: /^bearer/i
negate: true
- type: oidc
issuer:
discover_url: https://www.provider2.com/.well-known/openid-configuration
client:
client_id: aaaaa
client_secret: bbbb
scopes:
- openid
- email
- profile
pkce:
enabled: true
code_challenge_method: S256
When I test to send a curl request with header my-jwt-header, external-auth-server throws below errors about json:
{"level":"info","message":"starting verify for plugin: jwt","service":"external-auth-server","timestamp":"2023-07-25T23:12:10.380Z"}
{"level":"error","message":"Lexical error on line 1. Unrecognized text.\n$.req.headers.my-jwt-header\n---------------^","service":"external-auth-server","stack":"Error: Lexical error on line 1. Unrecognized text.\n$.req.headers.my-jwt-header\n---------------^\n at Parser.parseError (/home/eas/app/node_modules/jsonpath/generated/parser.js:166:15)\n at Parser.parser.yy.parseError (/home/eas/app/node_modules/jsonpath/lib/parser.js:13:17)\n at Object.parseError (/home/eas/app/node_modules/jsonpath/generated/parser.js:341:28)\n at Object.next (/home/eas/app/node_modules/jsonpath/generated/parser.js:595:25)\n at Object.lex (/home/eas/app/node_modules/jsonpath/generated/parser.js:605:22)\n at lex (/home/eas/app/node_modules/jsonpath/generated/parser.js:194:28)\n at Parser.parse (/home/eas/app/node_modules/jsonpath/generated/parser.js:207:26)\n at JSONPath.nodes (/home/eas/app/node_modules/jsonpath/lib/index.js:118:26)\n at JSONPath.query (/home/eas/app/node_modules/jsonpath/lib/index.js:94:22)\n at Assertion.jsonpath_query (/home/eas/app/src/assertion/index.js:41:23)","timestamp":"2023-07-25T23:12:10.380Z"}
Is query_engine jp not supported in yaml format?
BTW, our jwt header doesn't have "bearer" in it. I manually added it in my manual curl test. If the real client sends the jwt header without "bearer", will that be a problem for external-auth-server? Is there a query rule that can check the existence of a header?
I tried below yaml token config:
When I test to send a curl request with header my-jwt-header, external-auth-server throws below errors about json:
Is query_engine jp not supported in yaml format?
BTW, our jwt header doesn't have "bearer" in it. I manually added it in my manual curl test. If the real client sends the jwt header without "bearer", will that be a problem for external-auth-server? Is there a query rule that can check the existence of a header?