我们有一个要求,我们只希望在查询字符串中允许特定的键值对
例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/