小编epr*_*ats的帖子

如何避免在 requestMapping 方法中使用实体造成的漏洞?

我有一个控制器,其方法类似于

@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 必须删除重复的代码块

正确的解决方案应该是什么?

提前致谢。恩瑞克

security spring controller sonarqube

7
推荐指数
1
解决办法
5235
查看次数

为什么身份验证应该在过滤器而不是控制器中实现?

遵循有关如何在 Spring Boot 应用程序中实现 JWT 身份验证的好教程(https://auth0.com/blog/implementing-jwt-authentication-on-spring-boot/),我发现 /login 是由过滤器而不是控制器。这不是 Bruno 的任性,Spring 为自己提供了一个过滤器(UsernamePasswordAuthenticationFilter 等)。

为什么要使用过滤器?是不是因为它被放置在授权过滤器之前,这样我们就可以拦截新的登录尝试而不受身份验证过滤器的影响?

谢谢!安瑞克

security spring-security jwt

5
推荐指数
1
解决办法
525
查看次数

标签 统计

security ×2

controller ×1

jwt ×1

sonarqube ×1

spring ×1

spring-security ×1