epr*_*ats 7 security spring controller sonarqube
我有一个控制器,其方法类似于
@PostMapping(value="/{reader}")
public String addToReadingList(@PathVariable("reader") String reader, Book book) {
book.setReader(reader);
readingListRepository.save(book);
return "redirect:/readingList/{reader}";
}
Run Code Online (Sandbox Code Playgroud)
当我使用 Sonarqube 运行静态代码分析时,我收到一个漏洞报告,指出
用一个简单的 POJO 或 DTO 对象替换这个持久实体
但是如果我使用 DTO(它与实体类具有完全相同的字段,那么我会收到另一个错误:
1 必须删除重复的代码块
正确的解决方案应该是什么?
提前致谢。恩瑞克
您应该构建一个新的单独类,将您的实体(“Book”)表示为普通旧 Java 对象 (POJO) 或数据传输对象 (DTO)。如果您使用 JSF 或其他有状态技术,则此规则很重要。如果您的实体是有状态的,则可能存在打开的 JPA 会话等,这可能会修改您的数据库(例如,如果您在有状态 bean 上调用 JSF 中的 setter)。
对于我的项目,我忽略这个声纳规则有两个原因:
| 归档时间: |
|
| 查看次数: |
5235 次 |
| 最近记录: |