All Downloads are FREE. Search and download functionalities are using the official Maven repository.

cn.twelvet.xss.core.XssCleanDeserializerBase Maven / Gradle / Ivy

package cn.twelvet.xss.core;

import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonToken;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.JsonDeserializer;
import com.fasterxml.jackson.databind.exc.MismatchedInputException;

import java.io.IOException;

/**
 * jackson xss 处理
 *
 * @author twelvet
 */
public abstract class XssCleanDeserializerBase extends JsonDeserializer {

	@Override
	public String deserialize(JsonParser p, DeserializationContext ctx) throws IOException {
		JsonToken jsonToken = p.getCurrentToken();
		if (JsonToken.VALUE_STRING != jsonToken) {
			throw MismatchedInputException.from(p, String.class,
					"twelvet: can't deserialize value of type java.lang.String from " + jsonToken);
		}
		// 解析字符串
		String text = p.getValueAsString();
		if (text == null) {
			return null;
		}

		// xss 配置
		return this.clean(p.getCurrentName(), text);
	}

	/**
	 * 清理 xss
	 * @param name name
	 * @param text text
	 * @return String
	 * @throws IOException IOException
	 */
	public abstract String clean(String name, String text) throws IOException;

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy