@@ -3,6 +3,8 @@ package mcp
33import (
44 "fmt"
55 "time"
6+
7+ "github.com/docker/cagent/pkg/concurrent"
68)
79
810// OAuthTokenStore manages OAuth tokens
@@ -35,30 +37,30 @@ func (t *OAuthToken) IsExpired() bool {
3537
3638// InMemoryTokenStore implements OAuthTokenStore in memory
3739type InMemoryTokenStore struct {
38- tokens map [string ] * OAuthToken
40+ tokens * concurrent. Map [string , * OAuthToken ]
3941}
4042
4143// NewInMemoryTokenStore creates a new in-memory token store
4244func NewInMemoryTokenStore () OAuthTokenStore {
4345 return & InMemoryTokenStore {
44- tokens : make ( map [string ] * OAuthToken ),
46+ tokens : concurrent . NewMap [string , * OAuthToken ]( ),
4547 }
4648}
4749
4850func (s * InMemoryTokenStore ) GetToken (resourceURL string ) (* OAuthToken , error ) {
49- token , ok := s .tokens [ resourceURL ]
51+ token , ok := s .tokens . Load ( resourceURL )
5052 if ! ok {
5153 return nil , fmt .Errorf ("no token found for resource: %s" , resourceURL )
5254 }
5355 return token , nil
5456}
5557
5658func (s * InMemoryTokenStore ) StoreToken (resourceURL string , token * OAuthToken ) error {
57- s .tokens [ resourceURL ] = token
59+ s .tokens . Store ( resourceURL , token )
5860 return nil
5961}
6062
6163func (s * InMemoryTokenStore ) RemoveToken (resourceURL string ) error {
62- delete ( s .tokens , resourceURL )
64+ s .tokens . Delete ( resourceURL )
6365 return nil
6466}
0 commit comments