mirror of
https://github.com/seaweedfs/seaweedfs.git
synced 2026-08-19 13:46:58 +00:00
This major refactoring eliminates all session storage complexity and enables true distributed operation without shared state. All session information is now embedded directly into JWT tokens. Key Changes: Enhanced JWT Claims Structure: - New STSSessionClaims struct with comprehensive session information - Embedded role info, identity provider details, policies, and context - Backward-compatible SessionInfo conversion methods - Built-in validation and utility methods Stateless Token Generator: - Enhanced TokenGenerator with rich JWT claims support - New GenerateJWTWithClaims method for comprehensive tokens - Updated ValidateJWTWithClaims for full session extraction - Maintains backward compatibility with existing methods Completely Stateless STS Service: - Removed SessionStore dependency entirely - Updated all methods to be stateless JWT-only operations - AssumeRoleWithWebIdentity embeds all session info in JWT - AssumeRoleWithCredentials embeds all session info in JWT - ValidateSessionToken extracts everything from JWT token - RevokeSession now validates tokens but cannot truly revoke them Updated Method Signatures: - Removed filerAddress parameters from all STS methods - Simplified AssumeRoleWithWebIdentity, AssumeRoleWithCredentials - Simplified ValidateSessionToken, RevokeSession - Simplified ExpireSessionForTesting Benefits: - True distributed compatibility without shared state - Simplified architecture, no session storage layer - Better performance, no database lookups - Improved security with cryptographically signed tokens - Perfect horizontal scaling Notes: - Stateless tokens cannot be revoked without blacklist - Recommend short-lived tokens for security - All tests updated and passing - Backward compatibility maintained where possible