@@ -23,7 +23,7 @@ type Server struct {
23
23
mux * http.ServeMux
24
24
config * config.Config
25
25
oauthServer * oauth.Server
26
- tokenStore storage.UserTokenStore
26
+ storage storage.Storage
27
27
sessionManager * client.StdioSessionManager
28
28
sseServers map [string ]* server.SSEServer // serverName -> SSE server for stdio servers
29
29
}
@@ -143,8 +143,7 @@ func NewServer(ctx context.Context, cfg *config.Config) (*Server, error) {
143
143
return nil , fmt .Errorf ("failed to create OAuth server: %w" , err )
144
144
}
145
145
146
- // Use the storage directly as token store
147
- s .tokenStore = store
146
+ s .storage = store
148
147
149
148
// Initialize admin users if admin is enabled
150
149
if cfg .Proxy .Admin != nil && cfg .Proxy .Admin .Enabled {
@@ -180,7 +179,7 @@ func NewServer(ctx context.Context, cfg *config.Config) (*Server, error) {
180
179
mux .Handle ("/register" , chainMiddleware (http .HandlerFunc (s .oauthServer .RegisterHandler ), oauthMiddlewares ... ))
181
180
182
181
// Protected endpoints - require authentication
183
- tokenHandlers := NewTokenHandlers (s .tokenStore , cfg .MCPServers , s .oauthServer != nil )
182
+ tokenHandlers := NewTokenHandlers (s .storage , cfg .MCPServers , s .oauthServer != nil )
184
183
tokenMiddlewares := []MiddlewareFunc {
185
184
corsMiddleware (allowedOrigins ),
186
185
loggerMiddleware ("tokens" ),
@@ -280,9 +279,8 @@ func NewServer(ctx context.Context, cfg *config.Config) (*Server, error) {
280
279
}
281
280
s .sessionManager .RemoveSession (key )
282
281
283
- // Remove session from storage
284
- if store , ok := handler .h .tokenStore .(storage.Storage ); ok {
285
- if err := store .RevokeSession (sessionCtx , session .SessionID ()); err != nil {
282
+ if handler .h .storage != nil {
283
+ if err := handler .h .storage .RevokeSession (sessionCtx , session .SessionID ()); err != nil {
286
284
internal .LogWarnWithFields ("server" , "Failed to revoke session from storage" , map [string ]interface {}{
287
285
"error" : err .Error (),
288
286
"sessionID" : session .SessionID (),
@@ -321,7 +319,7 @@ func NewServer(ctx context.Context, cfg *config.Config) (*Server, error) {
321
319
handler := NewMCPHandler (
322
320
serverName ,
323
321
serverConfig ,
324
- s .tokenStore ,
322
+ s .storage ,
325
323
baseURL .String (),
326
324
info ,
327
325
s .sessionManager ,
@@ -371,12 +369,12 @@ func NewServer(ctx context.Context, cfg *config.Config) (*Server, error) {
371
369
encryptionKey = oauthAuth .EncryptionKey
372
370
}
373
371
374
- adminHandlers := NewAdminHandlers (s .tokenStore .( storage. Storage ) , cfg , s .sessionManager , encryptionKey )
372
+ adminHandlers := NewAdminHandlers (s .storage , cfg , s .sessionManager , encryptionKey )
375
373
adminMiddlewares := []MiddlewareFunc {
376
374
corsMiddleware (allowedOrigins ),
377
375
loggerMiddleware ("admin" ),
378
- s .oauthServer .SSOMiddleware (), // Browser SSO
379
- adminMiddleware (cfg .Proxy .Admin , s .tokenStore .( storage. Storage ) ), // Admin check
376
+ s .oauthServer .SSOMiddleware (), // Browser SSO
377
+ adminMiddleware (cfg .Proxy .Admin , s .storage ), // Admin check
380
378
}
381
379
382
380
// Admin routes - all protected by admin middleware
@@ -478,7 +476,7 @@ func handleSessionRegistration(
478
476
handler .mcpServer ,
479
477
handler .userEmail ,
480
478
handler .config .RequiresUserToken ,
481
- handler .h .tokenStore ,
479
+ handler .h .storage ,
482
480
handler .h .serverName ,
483
481
handler .h .setupBaseURL ,
484
482
handler .config .TokenSetup ,
@@ -495,15 +493,15 @@ func handleSessionRegistration(
495
493
}
496
494
497
495
if handler .userEmail != "" {
498
- if store , ok := handler .h .tokenStore .( storage. Storage ); ok {
496
+ if handler .h .storage != nil {
499
497
activeSession := storage.ActiveSession {
500
498
SessionID : session .SessionID (),
501
499
UserEmail : handler .userEmail ,
502
500
ServerName : handler .h .serverName ,
503
501
Created : time .Now (),
504
502
LastActive : time .Now (),
505
503
}
506
- if err := store .TrackSession (sessionCtx , activeSession ); err != nil {
504
+ if err := handler . h . storage .TrackSession (sessionCtx , activeSession ); err != nil {
507
505
internal .LogWarnWithFields ("server" , "Failed to track session" , map [string ]interface {}{
508
506
"error" : err .Error (),
509
507
"sessionID" : session .SessionID (),
0 commit comments