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

Jackson在处理字符串时存在长度限制,是否可以添加配置项,供业务控制其所能解析的字符传长度?

Ouverte
#4,239 3 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Évaluation

Difficulté
4/5
Temps estimé
3-5 jours
Accessibilité débutants
35/100
Type d'issue
Fonctionnalité
Clarté
Plutôt claire
Activité
À l'abandon
Stack technique
java
Domaine
api, backend

Piste de recherche

Suivez le décodage de la réponse depuis ProduceJsonProcessor.doDecodeResponse, via ProduceProcessor.decodeResponse et DefaultHttpClientFilter.extractResponse, en vous concentrant sur la validation de la longueur des chaînes par StreamReadConstraints de Jackson. Déterminez où une longueur maximale de chaîne pourrait être configurée au niveau du service, puis vérifiez qu’une limite configurée est respectée lors du décodage d’une réponse surdimensionnée.

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

Description

enhancement

当前遇到一个问题,是服务端返回的响应消息中,字符串长度过长,导致jackson解析失败

Caused by: com.fasterxml.jackson.core.exc.StreamConstraintsException: String length (20051112) exceeds the maximum length (20000000)
	at com.fasterxml...core.StreamReadConstraints.validateStringLength:324
	at com.fasterxml...util.ReadConstrainedTextBuffer.validateStringLength:27
	at com.fasterxml...util.TextBuffer.finishCurrentSegment:939
	at com.fasterxml...json.UTF8StreamJsonParser._finishString2:2584
	at com.fasterxml...json.UTF8StreamJsonParser._finishAndReturnString:2560
	at com.fasterxml...json.UTF8StreamJsonParser.getText:335
	at com.fasterxml...jsonorg.JSONObjectDeserializer.deserialize:51
	at com.fasterxml...jsonorg.JSONObjectDeserializer.deserialize:48
	at com.fasterxml...jsonorg.JSONObjectDeserializer.deserialize:14
	at com.fasterxml...deser.DefaultDeserializationContext.readRootValue:323
	at com.fasterxml...databind.ObjectMapper._readMapAndClose:4825mas
	at com.fasterxml...databind.ObjectMapper.readValue:3825
	at org.apache...produce.ProduceJsonProcessor.doDecodeResponse:64
	at org.apache...produce.ProduceProcessor.decodeResponse:76
	at org.apache...http.DefaultHttpClientFilter.extractResponse:105
	at org.apache...http.DefaultHttpClientFilter.afterReceiveResponse:139
	at org.apache...http.RestClientInvocation.lambda$processResponseBody$7:251

20000000是jackson提供的默认值;从chassis源码中来看,并没有提供配置该长度的配置项,是否可以加一个

Langage dominant
Java
Étoiles
1.9k
Forks
813
Merge moyen
8 j 23 h
PR mergées (30 j)
1

Guide de contribution

Aucun guide de contribution indexé pour ce dépôt

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 apache/servicecomb-java-chassis

Toutes les issues de apache/servicecomb-java-chassis

Issues similaires

Plus d'issues Java

Recevez les nouvelles issues par e-mail

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