java请求Mapurl通配符不匹配percentage等特殊字符

wvt8vs2t  于 2021-06-26  发布在  Java
关注(0)|答案(2)|浏览(346)

我在试着抓住https://somehosts.com/api/random,并为这些响应提供带有重定向页的200代码(以避免dos)。
在我的api控制器中,我在最后有一个方法,

@RequestMapping(value = "/**", method = RequestMethod.GET)
    @ResponseBody
    public void handleInvalidAPIReq() {
        return redirect();
    }

这是捕获场景,例如 https://somehosts.com/api/random-bad1234 ,但不适用于具有特殊字符的URL,例如 % . 如何调整 /** 捕捉无效请求,例如 https://somehosts.com/api/%fhdjlsb%fhld 拜托?
谢谢您。

dphi5xsq

dphi5xsq1#

-------更新--------谢谢回复。最终的目标是捕捉诸如 https://somehosts.com/api/%uff0e%uff0e%u2216%7bFILE%7d ,似乎我们需要同时处理保留字符(例如%、$、-等),并将其解码为unicode并捕获值。 %uff0e%uff0e%u2216%7bFILE%7d 看起来需要解码。

lsmepo6l

lsmepo6l2#

您可以使用它来允许将任何特殊字符传递给控制器方法:

@RequestMapping(value = "/api/{path:.+}", method = RequestMethod.GET)
@ResponseBody
public void handleInvalidAPIReq(@PathVariable(value = "path") String path) {
    System.out.println("path is: " + path);
    return redirect();
}

相关问题