目录
【项目问题解决】参数过滤器实现代码及相关问题
- 1.前言
- 2.代码实现
- 2.1常量类
- 2.2过滤器方法
- 2.3 注意
- 3.总结
- 4.参考
文章所属专区 项目问题解决
1.前言
参数过滤器实现代码及相关问题
2.代码实现
2.1常量类
@Component
public class ProjectConstants {public static String CONDITION_FILTER;@Autowired(required = false)private void setConditionFilter(@Value("${request.param.condition.filter:%}") String filter) {this.assignConditionFilter(filter);}private void assignConditionFilter(String filter) {CONDITION_FILTER = filter;}
}
2.2过滤器方法
/*** 综合查询条件过滤* @param map* @throws AppException*/public static void validateIllegalParam(Map<String, Object> map) throws AppException {if (org.apache.commons.lang3.StringUtils.isNotBlank(ProjectConstants.CONDITION_FILTER)) {List<String> conditionFilterList = Arrays.asList(ProjectConstants.CONDITION_FILTER.split(","));Iterator var2 = map.entrySet().iterator();while(var2.hasNext()) {Map.Entry<String, Object> entry = (Map.Entry)var2.next();String key = (String)entry.getKey();Object value = entry.getValue();if (value instanceof String && conditionFilterList.contains(value)) {throw new AppException("参数包含特殊字符", InternationUtils.getMessage("HOOX_ARCHIVE_01705", new Object[]{"{\"" + key + "\": \"" + value + "\"}"}));}}}}public static Map<String,Object> transformParam(Map<String, String> map){Map<String,Object> result = new HashMap<String,Object>();for(Map.Entry<String, String> entry : map.entrySet()){String key = entry.getKey();String value = entry.getValue();if(value instanceof Object){result.put(key,value);}else{result.put(key,value);}}return result;}
2.3 注意
在实现常量类 方法自动执行 @Autowired(required = false ) 虽然注入失败不会报错,但要注意整个类要加@Component 将整个类注入容器作为一个Bean。
3.总结
参数过滤器有多种实现方法,本文介绍了通过工具介入修改或者判断参数。
4.参考
java对过滤器或者拦截器中Request.parameter中参数进行添加或修改
java布隆过滤器搭建 java布隆过滤器实现
Java 过滤器使用 Java 过滤器实现请求过滤
java文件过滤器的使用
全注解实现自定义过滤器与拦截请求参数
给个三连吧 谢谢谢谢谢谢了