如何防止 Spring 安全性在每个页面上都要求输入密码
How to prevent Spring Security from asking for a password on every page
我正在尝试为我的 REST API 实施基本的 Spring 安全配置,username/password 提示出现在我允许所有请求的页面上。
这是我的安全配置:
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers("/", "/jobs").permitAll()
.anyRequest().authenticated()
.and()
.httpBasic();
}
localhost:8080/ 和 localhost:8080/jobs 应该可以访问,无需登录。任何对不同路由的请求都需要身份验证。
现在,当我在浏览器中打开 root 或 /jobs 时,我得到了页面的内容,但我也被要求登录。可以简单地关闭对话框,但这非常烦人。
当我打开 /test 或其他东西时,出现登录对话框,但我没有得到内容,这是正确的行为。
如何在我使用 permittAll() 的页面上删除这些对话框?
这是当前情况的截图。内容已 100% 加载。
screenshot
编辑:
我找到了解决方案,感谢 dur 提到检查请求。问题是,firefox 会自动发送对 favicon.ico 文件的请求,这条路线是不允许的,这就是我收到提示的原因。
我找到了解决方案,感谢 dur 提到检查请求。问题是,firefox 会自动发送对 favicon.ico 文件的请求,这条路线是不允许的,这就是我收到提示的原因。
在 antMatchers() 方法中添加“/favicon.ico”后,一切正常。
screenshot
我正在尝试为我的 REST API 实施基本的 Spring 安全配置,username/password 提示出现在我允许所有请求的页面上。
这是我的安全配置:
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers("/", "/jobs").permitAll()
.anyRequest().authenticated()
.and()
.httpBasic();
}
localhost:8080/ 和 localhost:8080/jobs 应该可以访问,无需登录。任何对不同路由的请求都需要身份验证。
现在,当我在浏览器中打开 root 或 /jobs 时,我得到了页面的内容,但我也被要求登录。可以简单地关闭对话框,但这非常烦人。
当我打开 /test 或其他东西时,出现登录对话框,但我没有得到内容,这是正确的行为。
如何在我使用 permittAll() 的页面上删除这些对话框?
这是当前情况的截图。内容已 100% 加载。 screenshot
编辑: 我找到了解决方案,感谢 dur 提到检查请求。问题是,firefox 会自动发送对 favicon.ico 文件的请求,这条路线是不允许的,这就是我收到提示的原因。
我找到了解决方案,感谢 dur 提到检查请求。问题是,firefox 会自动发送对 favicon.ico 文件的请求,这条路线是不允许的,这就是我收到提示的原因。
在 antMatchers() 方法中添加“/favicon.ico”后,一切正常。 screenshot