Moh*_*eem 5 java spring spring-mvc spring-security spring-boot
这个问题可能看起来重复,但以下答案都没有解释何时使用:
`http
.authorizeRequests()
.antMatchers("/h2-console/**", "/user/register/**").permitAll()`
Run Code Online (Sandbox Code Playgroud)
和
`web
.ignoring()
.antMatchers("/h2-console/**", "/user/register/**")`
Run Code Online (Sandbox Code Playgroud)
通过浏览 StackOverflow 的答案和几篇文章,我了解到:
configure(HttpSecurity)允许在资源级别配置基于 Web 的安全性。
configure(WebSecurity)用于影响全局安全性的配置设置。使用这个 URL 会被 Spring Security 过滤器链完全忽略。
当我使用它时permitAll(),它仅在我禁用了csrf时才有效:http.csrf().disable()因为 Spring Security 过滤器链仍然处于活动状态。
但web.ignoring()URL 则被完全忽略。
还有很多文章使用http.permitAll()for/login或/registerlike这样的一个和这个
所以我想明白,
为什么我们应该使用http.permitAll()像/login和 这样的未授权 URL /register?
为什么我们不能使用web.ignoring()for/login和/register?
为什么 web.ignoring()通常仅用于提供静态内容,例如cssandwebjars等,而不与/loginand一起使用/register?
正如所@M. Deinum指出的,我正在总结答案,并且我已经在PR中更新了相同的文档。
configure(WebSecurity web)
此方法中使用的端点会忽略 spring security 过滤器、标头、CSRF 等。请参阅 HeadersConfigurer、CsrfConfigurer。相反,如果您想保护公共端点免受常见漏洞的影响,请参阅
configure(HttpSecurity)配置HttpSecurity#authorizeRequests方法。
configure(HttpSecurity http)
可以在此处指定需要防御常见漏洞的公共端点。有关更多详细信息,请参阅
HttpSecurity#authorizeRequests和permitAll()授权规则。
| 归档时间: |
|
| 查看次数: |
2544 次 |
| 最近记录: |