【发布时间】:2016-01-27 22:57:31
【问题描述】:
我有几个像下面这样的 SprigMVC 方法,返回一个 ModelAndView 或一个 Responsebody。当用户向这些缺少必需参数的 url 发出请求时,他们自然会得到消息“必需的字符串参数 'id' 不存在”。
从安全角度来看,我想向用户隐藏此详细描述消息。所以黑客不容易知道丢失的参数,会得到一个没有任何描述的 400 错误。这是否可以通过 spring 配置/Spring Security 实现,或者我必须手动重构所有方法以以某种方式返回自定义消息。
@RequestMapping(value = "/payment", method = RequestMethod.GET)
public ModelAndView getReponse(@RequestParam(value = "id", required = true)) {
return model;
}
@RequestMapping(value = "/status", method = RequestMethod.GET)
public @ResponseBody String getStatus(@RequestParam(value = "id", required = true) String id) {
return "string";
}
【问题讨论】:
-
所以绕过这个错误也会有所帮助,对吧?
-
@Rehman 不确定您所说的绕过是什么意思,但可能
-
现在在编辑您的问题后就清楚了。我在想
required=false。但你想要 400 -
你能显示你的
web.xml吗?特别是error-page部分,如果您配置了它(这里有一些示例stackoverflow.com/questions/7066192/…) -
你可以使用@ExceptionHandler。这是一个如何使用它的示例stackoverflow.com/questions/13356549/…
标签: java spring spring-mvc spring-security