Skip to content

Commit e10e761

Browse files
committed
feat(transport): enhance session metadata handling with authentication info
1 parent 8e9b2b1 commit e10e761

File tree

1 file changed

+9
-2
lines changed

1 file changed

+9
-2
lines changed

src/Server/Transports/Http/HttpTransport.php

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,14 @@ public function handleRequest(RequestInterface $request, string $server, string
112112
}
113113
$this->sessionManager->updateSessionActivity($sessionId);
114114

115-
$historyTransportMetadata = $this->sessionManager->getSessionMetadata($sessionId)['transport_metadata'] ?? null;
115+
$sessionMetadata = $this->sessionManager->getSessionMetadata($sessionId);
116+
$authInfo = $sessionMetadata['auth_info'] ?? null;
117+
if ($authInfo && method_exists($this->authenticator, 'check')) {
118+
// If authenticator supports check method, use it。next version must
119+
$this->authenticator->check($authInfo);
120+
}
121+
122+
$historyTransportMetadata = $sessionMetadata['transport_metadata'] ?? null;
116123
if ($historyTransportMetadata instanceof TransportMetadata) {
117124
$this->transportMetadata = $historyTransportMetadata;
118125
}
@@ -121,7 +128,7 @@ public function handleRequest(RequestInterface $request, string $server, string
121128
$this->app->getEventDispatcher()->dispatch(new HttpTransportAuthenticatedEvent($server, $version, $authInfo, $this->transportMetadata));
122129

123130
$sessionId = $this->sessionManager->createSession();
124-
$this->sessionManager->setSessionMetadata($sessionId, ['transport_metadata' => $this->transportMetadata]);
131+
$this->sessionManager->setSessionMetadata($sessionId, ['transport_metadata' => $this->transportMetadata, 'auth_info' => $authInfo]);
125132
$headers['Mcp-Session-Id'] = $sessionId;
126133
}
127134

0 commit comments

Comments
 (0)