【项目问题解决】参数过滤器实现代码及相关问题
2024-01-03 11:04:06
目录
文章所属专区 项目问题解决
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文件过滤器的使用
全注解实现自定义过滤器与拦截请求参数
给个三连吧 谢谢谢谢谢谢了
文章来源:https://blog.csdn.net/qq_43238568/article/details/135030988
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!