Spring boot 我应该在spring后端禁用CORS吗?未筛选的请求被阻止
我正在使用spring boot和Vue进行项目,我需要保护我的端点。用户将具有特定角色、管理员角色或典型用户角色。当我搜索关于如何配置JWT和spring安全性的教程时,我得到的文章都是关于禁用cors的Spring boot 我应该在spring后端禁用CORS吗?未筛选的请求被阻止,spring-boot,vue.js,cors,jwt,axios,Spring Boot,Vue.js,Cors,Jwt,Axios,我正在使用spring boot和Vue进行项目,我需要保护我的端点。用户将具有特定角色、管理员角色或典型用户角色。当我搜索关于如何配置JWT和spring安全性的教程时,我得到的文章都是关于禁用cors的cors().disable()。这就是我的问题。。如果spring后端的cors被禁用,我是否可以通过axios从我的前端Vue应用程序发送请求?禁用它是正确的方法吗?我的很多api请求都被cors阻止了,所以我启用了它,但我没有实现用户角色,这让我很困惑现在该怎么做,因为我必须这么做。。。
cors().disable()
。这就是我的问题。。如果spring后端的cors被禁用,我是否可以通过axios从我的前端Vue应用程序发送请求?禁用它是正确的方法吗?我的很多api请求都被cors阻止了,所以我启用了它,但我没有实现用户角色,这让我很困惑现在该怎么做,因为我必须这么做。。。另一个问题是当我实现了httpSecurity.csrf().disable().authorizeRequests().antMatchers(“/authenticate”、“/register”、“/login”).permitAll()。
并试图从同一网络中的另一个设备调用/验证时,spring阻止了它,但它不应该被阻止。。在控制器的顶部,我有@CrossOrigin(origins=“*”,maxAge=3600)
和@RestController
,所以我不知道为什么我的请求被阻止。
如果你有什么想法,请帮帮我。
致以最良好的祝愿 在每个控制器的顶部设置此选项
@CrossOrigin(origins = "*")
@RestController
并在SecurityConfig中设置代码,如下所示。这对我有用
httpSecurity.cors()
.and()
.csrf()
.disable()
.exceptionHandling()
.authenticationEntryPoint(jwtAuthenticationEntryPoint)
.and()
.sessionManagement()
.sessionCreationPolicy(SessionCreationPolicy.STATELESS)
.and()
.authorizeRequests()
.antMatchers("/",
"/favicon.ico",
"/**/*.png",
"/**/*.ttf",
"/**/*.woff",
"/**/*.woff2",
"/**/*.gif",
"/**/*.svg",
"/**/*.jpg",
"/**/*.jpeg",
"/**/*.html",
"/**/*.css",
"/**/*.js")
.permitAll()
.antMatchers("/authenticate", "/register","/login")
.permitAll()
.antMatchers(HttpMethod.OPTIONS, "/**")
.permitAll()
.anyRequest()
.authenticated();
配置:
httpSecurity.csrf().disable().authorizeRequests().antMatchers(“/authenticate”、“/register”、“/login”).permitAll()。antMatchers(HttpMethod.OPTIONS,“/**”).permitAll()。anyRequest().authenticated()和()。exceptionHandling().authenticationEntryPoint(jwtAuthenticationEntryPoint).和().sessionManagement().sessionCreationPolicy(sessionCreationPolicy.STATELESS);httpSecurity.addFilterBefore(jwtRequestFilter,UsernamePasswordAuthenticationFilter.class);httpSecurity.cors()代码>CORS允许您的后端api“对话”来自不同来源的请求。如果您正在创建api服务,并且希望允许来自不同地点、Vue应用程序、移动应用程序等的请求,则需要CORS。如果禁用CORS,则api将只允许来自与api服务相同主机的请求。