当只应用了authenticated()检查时,这个spring安全antmatcher配置应用于多个URL是否冗余?

r3i60tvu  于 2021-10-10  发布在  Java
关注(0)|答案(0)|浏览(108)

我只是被spring security盯上了,当时我正在检查公司代码库的安全配置。我们的配置如下所示:

http
                .anonymous()
                .disable()
                .authorizeRequests()
                .antMatchers(PUT, "/sap/v6/**").authenticated()
                .antMatchers("/sap/v6/**").authenticated()
                .anyRequest().authenticated()
                .and()
                .csrf()
                .disable();

这部分配置让我好奇:

.antMatchers(PUT, "/sap/v6/**").authenticated()
                .antMatchers("/sap/v6/**").authenticated()
                .anyRequest().authenticated()

如果我的理解是正确的,所有这些配置说明:
1). 如果url是/sap/v6/**并且是put方法,则必须对请求进行身份验证。
2). 否则,如果url为/sap/v6/**则必须对其进行身份验证。
3). 对于任何其他请求,仅经过身份验证即可,无需授权。
这不是多余的吗?如果我把配置缩短到下面,它会起到同样的作用吗?

http
                .anonymous()
                .disable()
                .authorizeRequests()
                .anyRequest().authenticated()
                .and()
                .csrf()
                .disable();

谢谢

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题