我们有一个要求,我们只希望在查询字符串中允许特定的键值对



google.com/?a=b&c=d
应该没问题(我们希望a和c被允许作为querystring键的一部分)



google.com/?w=x&y=z


应该抛出错误,因为如果要传递错误而不是a或c作为查询字符串键的一部分,则我们应该抛出错误

任何想法如何做到这一点?

最佳答案

ServletRequest getParameterNames()getParameterMap()将为您提供传入的所有参数。因此,类似的方法将起作用:

List<String> whiteListedParameters = Arrays.asList("a", "b");

@RequestMapping(value = "google.com", method = RequestMethod.GET)
public ModelAndView render(HttpServletRequest request) throws Exception {
    Enumeration<String> parameterNames = request.getParameterNames();
    while(parameterNames.hasMoreElements()) {
        String parameterName = parameterNames.nextElement();
        if(!whiteListedParameters.contains(parameterName)) {
            throw new Exception("Whatever you want");
        }
    }
    ...
}

关于java - Spring-仅允许查询字符串中的特定参数,否则会引发错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31841616/

10-12 22:24