我有一个控制器来接收POST请求并返回JSON输出。在控制器类内部实现的异常处理程序工作正常。
我试图添加带@ControllerAdvice注释的全局异常处理,但这在我的解决方案中不起作用。我不认为全局异常处理程序类正在加载。
下面是我的控制器类:
package hello;
@Controller
@RequestMapping("/v1")
public class MyController {
@RequestMapping(value = "/saveEmployee", method = RequestMethod.POST, produces = "application/json")
@ResponseBody
public String saveEmployee(@Valid @RequestBody Employee employee) {
return "{ \"name\":\"" + employee.getEmail() + "\"}";
}
}
Run Code Online (Sandbox Code Playgroud)
以下是全局异常处理程序类:
package util;
@ControllerAdvice
public class MyControllerAdvice {
@ExceptionHandler(MethodArgumentNotValidException.class)
// @ResponseStatus(HttpStatus.BAD_REQUEST)
@ResponseBody
public String processValidationError(MethodArgumentNotValidException ex) {
BindingResult result = ex.getBindingResult();
FieldError fieldError = result.getFieldError();
String code = fieldError.getCode();
String field = fieldError.getField();
String message = fieldError.getDefaultMessage();
message = "{ \"Code\":\"" …Run Code Online (Sandbox Code Playgroud) 一旦我们使用 sonarCube 和 SonarLint eclipse 插件进行静态代码分析,它们都无法检测到以下代码段中的漏洞。但这已被定义为声纳源网站规则下的漏洞。
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {
String location = req.getParameter("url");
resp.sendRedirect(location); // Noncompliant
}
Run Code Online (Sandbox Code Playgroud)