apache / apache/gravitino

[FEATURE]Support passing complete request object for authentication signature

Open
#8,434 1 comment 0 reactions 0 assignees View on GitHub
feature
Dominant language
Java
Stars
3.2k
Forks
935
Avg merge
1d 15h
Merged PRs (30d)
315

Description

### Describe the feature

In the authentication process, both the client and server need access to the complete request object (including method, path, headers, and body) in order to generate and verify signatures. This helps prevent man-in-the-middle attacks by ensuring the integrity of the request.
Additionally, depending on the signature method used by the client, some extra headers may be added to the request and need to be passed to the server for verification.

### Motivation

Currently, the authentication process may not cover the entire request object, which could leave room for certain types of attacks (e.g., replay or tampering). By signing the full request and verifying it on the server side, we can greatly improve security and ensure that the request has not been altered in transit.
Supporting additional headers for different signature schemes also increases flexibility for clients.

### Describe the solution

_No response_

### Additional context

_No response_

Contributor guide

Open the contributing guide

Research direction

No files, tests, or entry points are named. Start by tracing authentication request handling on both client and server, then identify how signatures and additional headers are currently passed and verified. Done means the complete method, path, headers, and body can be signed and verified consistently without leaving the required signature-scheme headers out.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
authentication, backend-api-design, security
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.