-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Description
Description
I receive an unknown_error : badarg from erlang:list_to_existing_atom/1 when I try to authenticate using a JWT token and [jwt_auth] required_claims includes a tuple with param, like exp, iss {"yourissuername"} (from the example).
Steps to Reproduce
- configure couchdb to accept jwt auth
[chttpd] authentication_handlers = {chttpd_auth, jwt_authentication_handler} - configure required claims to include a tuple claim, like the
example
[jwt_auth] required_claims = exp, {iss, "IssuerNameHere"} - make a request to
_sessionbearing a JWT token.
(doesn't really matter which token, the error happens before actual validation afaict)
Expected Behaviour
To get authenticated (or not, but not an unknown error)
Your Environment
{"couchdb":"Welcome","version":"3.1.1","git_sha":"ce596c65d","uuid":"c4d21e152a90a6cf779e046c9ddb012b","features":["access-ready","partitioned","pluggable-storage-engines","reshard","scheduler"],"vendor":{"name":"The Apache Software Foundation"}}
- CouchDB version used: 3.1.1
- Browser name and version: n/a
- Operating system and version: official docker image
Additional Context
It happens somewhere here. (In the main branch, that code looks different, with a regex supporting tuples.)
stack trace
[error] 2020-10-29T13:51:27.130984Z nonode@nohost <0.19228.0> 9177353606 req_err(824051426) unknown_error : badarg [
<<"erlang:list_to_existing_atom/1">>,
<<"couch_httpd_auth:-get_configured_claims/0-lc$^0/1-0-/1 L216">>,
<<"couch_httpd_auth:-get_configured_claims/0-lc$^0/1-0-/1 L216">>,
<<"couch_httpd_auth:jwt_authentication_handler/1 L194">>,
<<"chttpd:authenticate_request/2 L532">>,
<<"chttpd:process_request/1 L304">>,
<<"chttpd:handle_request_int/1 L244">>,
<<"mochiweb_http:headers/6 L150">>
]
I realise now, after typing everything, that the docs I linked are for main, and tuples in required_claims were just not yet merged in 3.1.1. So perhaps this now turns into the question: how then do I provide which iss claim I expect?