Files
seaweedfs/weed
chrislu e312b83349 fix: extract role information from JWT token in presigned URL validation
The TestPresignedURLIAMValidation was failing because the presigned URL
validation was hardcoding the principal ARN as 'PresignedUser' instead
of extracting the actual role from the JWT session token.

### Problem:
- Test used session token from S3ReadOnlyRole
- ValidatePresignedURLWithIAM hardcoded principal as PresignedUser
- Authorization checked wrong role permissions
- PUT operation incorrectly succeeded instead of being denied

### Solution:
- Extract role and session information from JWT token claims
- Use parseJWTToken() to get 'role' and 'snam' claims
- Build correct principal ARN from token data
- Use 'principal' claim directly if available, fallback to constructed ARN

### Test Results:
 TestPresignedURLIAMValidation: All 4 test cases now pass
 GET with read permissions: ALLOWED (correct)
 PUT with read-only permissions: DENIED (correct - was failing before)
 GET without session token: Falls back to standard auth
 Invalid session token: Correctly rejected

### Technical Details:
- Principal now correctly shows: arn:seaweed:sts::assumed-role/S3ReadOnlyRole/presigned-test-session
- Authorization logic now validates against actual assumed role
- Maintains compatibility with existing presigned URL generation tests
- All 20+ presigned URL tests continue to pass

This ensures presigned URLs respect the actual IAM role permissions
from the session token, providing proper security enforcement.
2025-08-24 21:05:25 -07:00
..
2025-08-09 21:47:29 -07:00
2025-07-19 23:56:17 -07:00
2025-08-21 08:28:07 -07:00
2025-08-22 01:15:42 -07:00
2025-08-22 01:15:42 -07:00
2024-06-25 09:18:11 -07:00
2024-02-14 08:26:38 -08:00
2025-08-21 08:28:07 -07:00
2025-08-21 08:28:07 -07:00
2025-07-19 21:43:34 -07:00
2025-03-17 23:13:27 -07:00