java - Sonar Java 过滤器抛出 UnsupportedOperationException

标签 java sonarqube

我正在 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/

相关文章:

java - Sonar 管。无法显示代码覆盖率

java - PDF 压缩技术

java - 带有 BindingResult 的 @Valid JSON 请求导致 IllegalStateException

java - 使用 ThreadLocal 时老一代内存会增加

java - 访问自定义 sonarqube 规则中的度量(java 检查)

python - 我已经在 ec2 实例上安装了 sonarqube,并配置了 python 项目以进行代码分析。但是文件正在不断扫描

java - Sonarqube sonar way profile 和 sonarqube java rules repository 之间的区别

java - Sonar 测试用例失败

java - 保持类独立性或避免类型检查

java - 在 EJB Helper 类中查找实体管理器