我正在 java spring web 项目中工作,一切对我来说都很好,我使用这样的过滤器:
@Component
@Order(Ordered.HIGHEST_PRECEDENCE)
public class CORSFilter implements Filter{
@Value("${permitted.url}")
private String permittedUrl;
@Override
public void init(FilterConfig fc) throws ServletException {
}
@Override
public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain)
throws IOException, ServletException {
HttpServletResponse response = (HttpServletResponse) resp;
HttpServletRequest request = (HttpServletRequest) req;
response.setHeader("Access-Control-Allow-Origin", permittedUrl); //
response.setHeader("Access-Control-Allow-Methods", "POST, GET, DELETE, PUT");
response.setHeader("Access-Control-Max-Age", "3600");
response.setHeader("Access-Control-Allow-Credentials", "true");
response.setHeader("Access-Control-Allow-Headers","x-requested-with, authorization, Content-Type, Authorization, credential, X-XSRF-TOKEN");
if ("OPTIONS".equalsIgnoreCase(request.getMethod())) {
response.setStatus(HttpServletResponse.SC_OK);
} else {
chain.doFilter(req, resp);
}
}
@Override
public void destroy() {
}
我的问题是 Sonar ,它提醒我第一个和最后一个方法( init(FilterConfig fc) 和 destroy())的 2 个关键问题,并显示以下消息“添加嵌套注释,解释为什么此方法是为空,抛出 UnsupportedOperationException 或完成实现。”您对如何解决这个问题有任何想法吗?
我可以在这两种方法中做什么作为实现?
提前致谢。
最佳答案
Sonar 提示您的重写方法根本不执行任何操作。
因此,要么在您的情况下是正常的,但您应该在代码中添加注释来说明这一点,或者这些方法不应该在您的实现中调用,并且它们应该抛出 UnsupportedOperationException
如果他们被调用。
解决方案1:
@Override
public void init(FilterConfig fc) {
// Do nothing because of X and Y.
}
解决方案2:
@Override
public void init(FilterConfig fc) {
throw new UnsupportedOperationException();
}
关于java - Sonar Java 过滤器抛出 UnsupportedOperationException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59783837/