我正在尝试为我的 REST API 实现基本的 Spring Security 配置,并且用户名/密码提示出现在我已允许所有请求的页面上。
这是我的安全配置:
@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 或其他内容时,会出现登录对话框,但我没有收到内容,这是正确的行为。
如何摆脱使用了 allowedAll() 的页面上的这些对话框?
这是当前情况的屏幕截图。内容已 100% 加载。 screenshot
编辑: 我找到了解决方案,感谢 dur 提到检查请求。问题是,firefox 自动发送对 favicon.ico 文件的请求,该路由不被允许,这就是为什么我收到提示。
最佳答案
我找到了解决方案,感谢 dur 提到检查请求。问题是,firefox 自动发送对 favicon.ico 文件的请求,该路由不被允许,这就是为什么我收到提示。
将“/favicon.ico”添加到 antMatchers() 方法后,一切正常。 screenshot
关于java - 如何防止Spring Security在每个页面都要求输入密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53957882/