com.alipay.hessian.generic.util
Class ClassFilter

java.lang.Object
  extended by com.alipay.hessian.generic.util.ClassFilter

public class ClassFilter
extends Object

Since:
5.3.0

Field Summary
static String CLASS_NAME
           
 
Constructor Summary
ClassFilter()
           
 
Method Summary
static boolean arrayFilter(Class clazz)
          检测数组类型是否在过滤列表
static boolean arrayFilter(String type)
          检测数组类型是否在过滤列表
static String decodeObjectAndDate(String type)
          对于java.lang.Object/java.util.Date对象, hessian序列化的时候写入类型是object/date,此处进行解析
static String encodeObjectAndDate(String type)
          对于java.lang.Object/java.util.Date对象, hessian序列化时需要写入object/date,此处进行转换
static boolean filter(String type)
          在反序列化类时, 会调用此方法检测是否是jdk类型, 一共包含两个维度, 一个从包名检测, 一个从指定的特殊类型中查找
static boolean filterExcludeClass(String type)
          在反序列化类时, 会调用此方法检测是否是jdk类型, 一共包含两个维度, 一个从包名检测, 一个从指定的特殊类型中查找 需要注意的是java.lang.Class排除在过滤列表之外
static boolean nameFilter(String type)
          在反序列化数组时,会调用此方法检测是否是jdk类型, 包含一个维度, 从指定的特殊类型中查找 不从包名检测的原因是, 数组类型是jdk类型, 但是存放的内容可能是子类, 子类反序列化为GenericObject无法放入数组 NAME_FILTER没有这个问题的原因是, 除了object和date外, 这几个类为final类,无法继承 type为date或者object时,返回false
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

CLASS_NAME

public static final String CLASS_NAME
Constructor Detail

ClassFilter

public ClassFilter()
Method Detail

filter

public static boolean filter(String type)
在反序列化类时, 会调用此方法检测是否是jdk类型, 一共包含两个维度, 一个从包名检测, 一个从指定的特殊类型中查找

Parameters:
type - 类名称
Returns:
true 表示是jdk类

filterExcludeClass

public static boolean filterExcludeClass(String type)
在反序列化类时, 会调用此方法检测是否是jdk类型, 一共包含两个维度, 一个从包名检测, 一个从指定的特殊类型中查找 需要注意的是java.lang.Class排除在过滤列表之外

Parameters:
type - 类名称
Returns:
true 表示是jdk类

nameFilter

public static boolean nameFilter(String type)
在反序列化数组时,会调用此方法检测是否是jdk类型, 包含一个维度, 从指定的特殊类型中查找 不从包名检测的原因是, 数组类型是jdk类型, 但是存放的内容可能是子类, 子类反序列化为GenericObject无法放入数组 NAME_FILTER没有这个问题的原因是, 除了object和date外, 这几个类为final类,无法继承 type为date或者object时,返回false

Parameters:
type - 类名称
Returns:
是否被过滤

encodeObjectAndDate

public static String encodeObjectAndDate(String type)
对于java.lang.Object/java.util.Date对象, hessian序列化时需要写入object/date,此处进行转换

Parameters:
type - 类名称
Returns:
转换结果

decodeObjectAndDate

public static String decodeObjectAndDate(String type)
对于java.lang.Object/java.util.Date对象, hessian序列化的时候写入类型是object/date,此处进行解析

Parameters:
type - 类名称
Returns:
转换结果

arrayFilter

public static boolean arrayFilter(Class clazz)
检测数组类型是否在过滤列表

Parameters:
clazz - 类
Returns:
是否在过滤列表

arrayFilter

public static boolean arrayFilter(String type)
检测数组类型是否在过滤列表

Parameters:
type - 类名称
Returns:
是否在过滤列表


Copyright © 2008–2018 Ant Financial. All rights reserved.