Hacktoberfest 2026 : les issues que les mainteneurs ont marquées pour octobre, ouvertes et accessibles aux débutants. Parcourir les issues Hacktoberfest

OAuth2 Discovery method fails because FastMCP with GoogleProvider (OAuth) returns issuerUrl with trailing slash

Ouverte Adaptée aux débutants
#7,265 1 commentaire 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Évaluation

Difficulté
2/5
Temps estimé
1-3 heures
Accessibilité débutants
78/100
Type d'issue
Bug
Clarté
Clairement spécifiée
Activité
Active
Stack technique
python

Piste de recherche

Commencez dans src/google/adk/auth/oauth2_discovery.py, au niveau de OAuth2DiscoveryManager.discover_auth_server_metadata, référencé dans l’issue, et examinez comment l’issuer renvoyé est comparé à l’URL fournie. Reproduisez la réponse de discovery avec une barre oblique finale et vérifiez que les métadonnées correspondantes sont renvoyées ; c’est terminé lorsque les URL d’issuer de type FastMCP n’entraînent plus l’échec de la discovery.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

The OAuth2DiscoveryManager‎.discover_auth_server_metadata‎ function retrieves a remote MCP Server's discovery document, to initialize the tool's AuthScheme object.
The function compares the returned issuer URL to the provided issuer URL to defend against MIX-UP attacks (as documented):
if metadata.issuer == issuer_url.rstrip("/"):

However, if the returned issuer has a trailing slash ('/'), as is the case when using FastMCP and the GoogleProvider, the function fails to compare the issuer values and no metadata is returned.

The correct code should be:
if metadata.issuer.rstrip("/") == issuer_url.rstrip("/"):

This is an example of what FastMCP is returning when using SSE transport with a GoogleProvider:

{
"issuer": "http://localhost:8080/",
"authorization_endpoint": "http://localhost:8080/authorize",
"token_endpoint": "http://localhost:8080/token",
"registration_endpoint": "http://localhost:8080/register",
"scopes_supported": [
   "openid",
   "https://www.googleapis.com/auth/userinfo.email"
],
"response_types_supported": [
   "code"
],
"grant_types_supported": [
   "authorization_code",
   "refresh_token"
],
"token_endpoint_auth_methods_supported": [
   "client_secret_post",
   "client_secret_basic",
   "private_key_jwt",
   "none"
],
"code_challenge_methods_supported": [
   "S256"
],
"client_id_metadata_document_supported": true
}
Langage dominant
Python
Étoiles
21.6k
Forks
4k
Merge moyen
7 h 10 min
PR mergées (30 j)
7

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de google/adk-python

Toutes les issues de google/adk-python

Issues similaires

Plus d'issues Python

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.