BUG: WIF token exchange fails to deserialize: expires_at not marked as ignorable in TokenExchangeResponse
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 72/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Attiva
- Ambito
- authentication
Direzione di ricerca
L'errore viene generato in com.openai.auth.TokenExchangeResponse, che deserializza la risposta dello scambio di token in WorkloadIdentityAuth.processTokenExchangeResponse (WorkloadIdentityAuth.kt). Leggi TokenExchangeResponse.kt e verifica come le altre classi di risposta nel package auth gestiscono i campi sconosciuti. È completato quando una risposta contenente expires_at viene analizzata correttamente, idealmente con un test che riceve quel corpo JSON.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Summary
Workload identity federation fails during the token exchange response parsing. OpenAI's /oauth/token endpoint returns an expires_at field that TokenExchangeResponse does not, and the deserializer is not configured to ignore unknown properties.
Version
com.openai:openai-java:4.82.0
Error
Error Text
Exception in thread "main" com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "expires_at" (class com.openai.auth.TokenExchangeResponse), not marked as ignorable (4 known properties: "token_type", "issued_token_type", "access_token", "expires_in")
at [Source: REDACTED (`StreamReadFeature.INCLUDE_SOURCE_IN_LOCATION` disabled); line: 6, column: 27] (through reference chain: com.openai.auth.TokenExchangeResponse["expires_at"])
at com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException.from(UnrecognizedPropertyException.java:61)
at com.fasterxml.jackson.databind.DeserializationContext.handleUnknownProperty(DeserializationContext.java:1200)
at com.fasterxml.jackson.databind.deser.std.StdDeserializer.handleUnknownProperty(StdDeserializer.java:2434)
at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.handleUnknownProperty(BeanDeserializerBase.java:1826)
at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.handleUnknownVanilla(BeanDeserializerBase.java:1804)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:271)
at com.fasterxml.jackson.databind.deser.BeanDeserializer._deserializeUsingPropertyBased(BeanDeserializer.java:472)
at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.deserializeFromObjectUsingNonDefault(BeanDeserializerBase.java:1502)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:340)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:177)
at com.fasterxml.jackson.databind.deser.DefaultDeserializationContext.readRootValue(DefaultDeserializationContext.java:342)
at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:5052)
at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3954)
at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3937)
at com.openai.auth.WorkloadIdentityAuth.processTokenExchangeResponse(WorkloadIdentityAuth.kt:300)
at com.openai.auth.WorkloadIdentityAuth.performRefresh(WorkloadIdentityAuth.kt:245)
at com.openai.auth.WorkloadIdentityAuth.getToken(WorkloadIdentityAuth.kt:121)
at com.openai.core.http.WorkloadIdentityHttpClient.execute(WorkloadIdentityHttpClient.kt:19)
at com.openai.core.http.LoggingHttpClient.execute(LoggingHttpClient.kt:57)
at com.openai.core.http.RetryingHttpClient.executeInternal(RetryingHttpClient.kt:95)
at com.openai.core.http.RetryingHttpClient.execute(RetryingHttpClient.kt:34)
at com.openai.services.blocking.chat.ChatCompletionServiceImpl$WithRawResponseImpl.create(ChatCompletionServiceImpl.kt:140)
at com.openai.services.blocking.chat.ChatCompletionServiceImpl.create(ChatCompletionServiceImpl.kt:63)
at com.openai.services.blocking.chat.ChatCompletionService.create(ChatCompletionService.kt:64)
at openai_auth.main(openai_auth.java:102)
Cause
TokenExchangeResponse includes only four fields (access_token, issued_token_type, token_type, expires_in) and does not set @JsonIgnoreProperties(ignoreUnknown = true).
Impact
Any WIF flow using a custom SubjectTokenProvider (e.g. AWS STS GetWebIdentityToken) fails at response parsing.
- Lingua principale
- Kotlin
- Stelle
- 1.5k
- Fork
- 268
- Merge medio
- 14h 59m
- PR unite (30g)
- 165
Preparare l'ambiente
Avvia il container di sviluppo del progetto nel browser, con il tuo account GitHub.
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di openai/openai-java
-
HttpRequest.url() logs spaces in path segments as literal plus signsForse già presa @sylvesterkaczmarek l’ha presa 59 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
openai/openai-java#886 · 2 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
Make diarized transcription duration and task optionalForse già presa @wskr00 l’ha presa 90 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
openai/openai-java#802 · 2 commenti · 3 reazioni ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 30/100
openai/openai-java#1175 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 3/5 Mezza giornata Idoneità per principianti 42/100
openai/openai-java#1160 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
openai/openai-java#956 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di openai/openai-java
Issue simili
-
bug follow-up
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
I maintainer di solito rispondono entro 1 giorno
-
binding:web core docs p3
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
RunanywhereAI/runanywhere-sdks#1123 ·
I maintainer di solito rispondono entro 1 giorno
-
StepExamBenchmarkTest runs a loop and prints a timing but asserts nothingForse già presa Una pull request collegata a questa issue è aperta o già unita. Apertajules
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 82/100
open-learning-exchange/myplanet#18199 · 1 commento ·
I maintainer di solito rispondono entro 4 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
auth0/Auth0.Android#1095 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno