zoukankan      html  css  js  c++  java
  • com.fasterxml.jackson.core.JsonGenerationException: Can not write a field name, expecting a value异常

    springboot对象返回,一直报生成json异常,经过检查,发现是自己在做xss防护时对出参进行了json的处理(copy代码不可取,囧)

    异常信息

     这里进行了出参处理了,但实际上只要对入参处理就行了,把这个类改成入参处理即可

    public class XssStringJsonSerializer extends JsonSerializer<String> {
        @Override
        public Class<String> handledType() {
            return String.class;
        }
    
        @Override
        public void serialize(String s, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
            if (s == null) {
                String encodedValue = StringEscapeUtils.escapeHtml4(s);
                jsonGenerator.writeString(encodedValue);
            }
        }

    //入参检查
    public class XssStringJsonSerializer extends JsonDeserializer<String> {
        public XssStringJsonSerializer(Class<String> string) {
            super();
        }
    
        @Override
        public String deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException
        {
            String value = jsonParser.getValueAsString();
            if (value != null){
                return StringEscapeUtils.escapeHtml4(value.toString());
            }
            return value;
        }
    
        @Override
        public Class<String> handledType() {
            return String.class;
        }
    }

    耽误了一小时代码排除,xss防护copy别人代码的。。。没理解就用的下场。。

  • 相关阅读:
    EntityFramework 启用迁移 EnableMigrations 报异常 "No context type was found in the assembly"
    JAVA 访问FTP服务器示例(2)
    NuGet Package Manager 更新错误解决办法
    JAVA 访问FTP服务器示例(1)
    RemoteAttribute 的使用问题
    诡异的 javascript 变量
    javascript apply用法
    Babun 中文乱码
    GSM呼叫过程
    转站博客园
  • 原文地址:https://www.cnblogs.com/dslx/p/11819953.html
Copyright © 2011-2022 走看看