【发布时间】:2019-11-18 15:20:36
【问题描述】:
我使用 angular 和 springboot 创建了一个应用程序,用于使用 spring 安全性进行基本身份验证,但我收到 401 错误 ..我是 springboot 的新手
@Configuration
@EnableWebSecurity
public class SpringSecurityConfigurationBasicAuth extends WebSecurityConfigurerAdapter{
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.csrf().disable()
.authorizeRequests()
.antMatchers(HttpMethod.OPTIONS,"/**").permitAll()
.anyRequest().authenticated()
.and()
//.formLogin().and()
.httpBasic();
}
}
“从源 'http://localhost:4200' 访问 XMLHttpRequest 在 'http://localhost:8080/hello-world/path-variable/MSD' 已被 CORS 策略阻止:对预检请求的响应未通过访问控制检查:它没有 HTTP ok 状态。”
【问题讨论】:
-
我应该添加哪个插件??
-
你不应该添加任何 chrome 插件。或者您的后端 API 确实应该在生产中从其他域/端口调用,并且您应该在后端 API 上添加 CORS 支持,或者不应该,因此您的开发环境应该通过提供服务来模仿生产环境来自同一主机/端口的后端和前端。您通常通过使用 Angular CLI 服务器作为后端 API 的代理来做到这一点。 github.com/angular/angular-cli/blob/master/docs/documentation/…
-
@Sachi.Dila 不建议在没有警告的情况下危及网络安全的解决方案。当您安装 cors 插件时,您允许任何站点访问任何其他站点,包括允许从attacker.example.com 访问 gmail.com。过去曾发生过这样的攻击,因为粗心的开发人员不明白为什么要实施某种保护
-
AFAIR 当您希望允许来自不同来源的经过身份验证的访问并且这些请求不会被您的浏览器停止时,您的后端必须明确地“允许”这些来源通过“Access-Control-Allow-”告诉浏览器Origin”标头列出了允许的来源。
-
@MONI SHANKAR 请尝试使用我的代码,我认为它可以解决您的问题。
标签: java spring spring-boot authentication angular7