初始化命令对象时发生Grails筛选器错误

初始化命令对象时发生Grails筛选器错误,grails,filter,Grails,Filter,Grails2.5.6 我使用一个过滤器类来验证我对XSS攻击的所有请求。如果某个参数可能有害,我们只是不将请求转发到所需的接口 此工作流工作正常,但有一个命令对象用作接口参数的情况除外。变量只是空的,没有任何参数 if (paramsValid) { chain.doFilter(request, response) }else { println("ERROR"); response.setContentType("application/json"); re

Grails2.5.6

我使用一个过滤器类来验证我对XSS攻击的所有请求。如果某个参数可能有害,我们只是不将请求转发到所需的接口

此工作流工作正常,但有一个命令对象用作接口参数的情况除外。变量只是空的,没有任何参数

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)之前发生了什么?如果您正在读取请求的主体,那么这将阻止命令对象数据绑定的工作。是的,我正在读取请求..因为这正是我需要做的。我已经做了进一步的测试,基本上我对请求所做的任何事情都会阻止正确的行为。有什么想法吗?我可以克隆请求对象吗?我想这是我的问题:使用此解决方案解决了我的问题: