初始化命令对象时发生Grails筛选器错误
Grails2.5.6 我使用一个过滤器类来验证我对XSS攻击的所有请求。如果某个参数可能有害,我们只是不将请求转发到所需的接口 此工作流工作正常,但有一个命令对象用作接口参数的情况除外。变量只是空的,没有任何参数初始化命令对象时发生Grails筛选器错误,grails,filter,Grails,Filter,Grails2.5.6 我使用一个过滤器类来验证我对XSS攻击的所有请求。如果某个参数可能有害,我们只是不将请求转发到所需的接口 此工作流工作正常,但有一个命令对象用作接口参数的情况除外。变量只是空的,没有任何参数 if (paramsValid) { chain.doFilter(request, response) }else { println("ERROR"); response.setContentType("application/json"); re
if (paramsValid) {
chain.doFilter(request, response)
}else {
println("ERROR");
response.setContentType("application/json");
response.setCharacterEncoding("utf-8");
PrintWriter out = response.getWriter();
response.setStatus(400);
out.print('{"success": false, "data": "Error validating request parameters"}');
out.flush();
return;
}
然后在控制器接口内:
def save(MappingCmd mapping) {
println(mapping);
mappingCmd类成员始终为空。在没有过滤器的情况下,功能正常。我怎样才能做到这一点 如果(paramsValid)之前发生了什么?如果您正在读取请求的主体,那么这将阻止命令对象数据绑定的工作。是的,我正在读取请求..因为这正是我需要做的。我已经做了进一步的测试,基本上我对请求所做的任何事情都会阻止正确的行为。有什么想法吗?我可以克隆请求对象吗?我想这是我的问题:使用此解决方案解决了我的问题: