Core: Pass REST auth manager to S3 signer (#2846)

What does this change do?
- RestCatalog now passes its AuthManager into FileIO so downstream
components can reuse a live token.
- S3V4RestSigner now calls the AuthManager’s auth_header() when no
static token is provided, ensuring the signer gets a fresh bearer token.
- Added a unit test to verify the signer pulls the Authorization header
from an AuthManager.

Why is this needed?
- After the AuthManager refactor, the signer no longer received a token,
causing remote signing to 401 for REST catalog users (e.g.,
Lakekeeper/MinIO). This restores token propagation and refresh.

How was this tested?
- make lint
- make test
- uv run python -m pytest tests/io/test_fsspec.py -k auth_manager -v

Closes #2544

---------

Co-authored-by: Soham <010Soham@users.noreply.github.com>
Co-authored-by: Fokko Driesprong <fokko@apache.org>
Co-authored-by: Kevin Liu <kevinjqliu@users.noreply.github.com>
4 files changed
tree: 115e00a9b681fd7a869c6a304101305d45b942b4
  1. .github/
  2. dev/
  3. mkdocs/
  4. pyiceberg/
  5. tests/
  6. vendor/
  7. .asf.yaml
  8. .codespellrc
  9. .gitignore
  10. .markdownlint.yaml
  11. .pre-commit-config.yaml
  12. LICENSE
  13. Makefile
  14. MANIFEST.in
  15. NOTICE
  16. pyproject.toml
  17. README.md
  18. ruff.toml
  19. setup.py
  20. uv.lock
README.md

Iceberg Python

PyIceberg is a Python library for programmatic access to Iceberg table metadata as well as to table data in Iceberg format. It is a Python implementation of the Iceberg table spec.

The documentation is available at https://py.iceberg.apache.org/.

Get in Touch