apache / apache/gravitino

[Subtask] Forward the authenticated caller's credentials from standalone Lance REST to Gravitino

Open
#13,091 0 comments 0 reactions 0 assignees View on GitHub
subtask
Dominant language
Java
Stars
3.2k
Forks
935
Avg merge
1d 16h
Merged PRs (30d)
298

Description

### Describe the subtask

Add a `caller` value for `gravitino.lance-rest.gravitino-auth-type` (and make it the default) under which each outbound Gravitino request carries the incoming caller's `Authorization` header and `X-Gravitino-Active-Roles`, read per request from the authenticated principal, with no service-account fallback.

Only `Basic` and `Bearer` are forwardable; `Negotiate` is rejected with 401 since a Kerberos ticket cannot be replayed to a second service. OAuth tokens must be valid at both services. `createNamespace` retries as a create when the preceding load is denied, so a caller holding only the create privilege is not blocked by the read.

Documentation must state the trust-boundary change: standalone Lance REST becomes a relay for caller credentials, and a compromised Lance REST process can act as any caller against Gravitino.

Implemented by #12984.

### Parent issue

#13090

Contributor guide

Open the contributing guide

Research direction

Read parent issue #13090 and the implementation referenced by #12984 first, then inspect standalone Lance REST authentication and its outbound Gravitino requests. Done means caller credentials are forwarded under the default caller mode, Negotiate is rejected, createNamespace handles the denied-load retry, and the trust-boundary change is documented.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
api, authentication, backend
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Clearly specified
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.