Closed
Description
Describe the bug
The Basic Authentication implementation in stac-fastapi-elasticsearch is not working as expected. When configuring multiple user credentials through STAC_FASTAPI_ROUTE_DEPENDENCIES, the authentication fails even with valid credentials.
To Reproduce
Steps to reproduce the behavior:
- Configure basic auth with multiple users in docker-compose.yml:
- STAC_FASTAPI_ROUTE_DEPENDENCIES=[{"routes":[{"method":"*","path":"*"}],"dependencies":[{"method":"stac_fastapi.core.basic_auth.BasicAuth","kwargs":{"credentials":[{"username":"admin","password":"admin"}]}}]},{"routes":[{"path":"/","method":["GET"]},{"path":"/conformance","method":["GET"]},{"path":"/collections/{collection_id}/items/{item_id}","method":["GET"]},{"path":"/search","method":["GET","POST"]},{"path":"/collections","method":["GET"]},{"path":"/collections/{collection_id}","method":["GET"]},{"path":"/collections/{collection_id}/items","method":["GET"]},{"path":"/queryables","method":["GET"]},{"path":"/queryables/collections/{collection_id}/queryables","method":["GET"]},{"path":"/_mgmt/ping","method":["GET"]}],"dependencies":[{"method":"stac_fastapi.core.basic_auth.BasicAuth","kwargs":{"credentials":[{"username":"reader","password":"reader"}]}}]}]
- Start the stac-fastapi-elasticsearch service with basic auth configuration:
docker-compose up -d
- Try to access the root endpoint with valid credentials:
curl --request GET \
--url http://localhost:8080/ \
--header 'Authorization: Basic YWRtaW46YWRtaW4='
curl --request GET \
--url http://localhost:8080/ \
--header 'Authorization: Basic cmVhZGVyOnJlYWRlcg=='
- Receive error response:
{"detail":"Incorrect username or password"}
Expected behavior
- The API should accept valid credentials from any user configured in the route dependencies
- Both "admin:admin" and "reader:reader" credentials should work for their respective configured routes
- When a route is configured for multiple users, any of their credentials should work
Environment:
- OS: Ubuntu 22.04.4 LTS
- Docker version: Docker version 27.1.1, build 6312585
- stac-fastapi-elasticsearch version: 3.2.0
- Python version: 3.10
Metadata
Metadata
Assignees
Labels
No labels