FindBugs使用以下构建器模式代码中的and()行报告未经检查/未确认的强制转换问题,以配置Spring安全性。
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
auth
.inMemoryAuthentication()
.withUser("admin").password("secret").roles("ADMIN")
.and()
.withUser("user").password("secret").roles("USER");
}
代码工作正常,我如何安抚FindBugs?
答案 0 :(得分:-1)
修改强>
正如@ h3xStream所建议的那样(在下面的评论中),如果您使用任何代码分析工具遇到误报,最好的解决方案是配置工具忽略误报并采取措施纠正代码分析工具。这当然假设它确实是一个误报,并且您的代码在当前形式下是正确的,最好保持不变。
在紧要关头,您可以重写代码以防止误报被触发。这就是我在这个特殊情况下最终做的事情,虽然这只是一个解决方法:
我能够通过将代码更新为以下内容来阻止误报:
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
InMemoryUserDetailsManagerConfigurer<AuthenticationManagerBuilder> conf
= auth.inMemoryAuthentication();
conf.withUser("admin").password("secret").roles("ADMIN");
conf.withUser("user").password("secret").roles("USER");
}
由于我不再将这些功能链接在一起,因此返回值变得无关紧要,并且不再触发误报。