【发布时间】:2021-01-25 16:37:13
【问题描述】:
我有一个基本的 Spring Boot Rest 应用程序和 Angular 应用程序。 (使用智威汤逊)
但是,由于这个错误,我无法发出任何请求:(即使我在响应头中添加了"Access-Control-Allow-Origin", "*"
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://localhost:8080/api/login. (Reason: CORS header ‘Access-Control-Allow-Origin’ missing).
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://localhost:8080/api/login. (Reason: CORS request did not succeed).
这里是安全配置:
public class AuthTokenFilter extends OncePerRequestFilter {
// ...
}
@Configuration
@EnableWebSecurity
@EnableGlobalMethodSecurity(
// securedEnabled = true,
// jsr250Enabled = true,
prePostEnabled = true)
public class SecurityConfiguration extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.cors().and().csrf().disable()
.authorizeRequests()
.antMatchers(WebUrls.API.API + WebUrls.LOGIN.LOGIN,
WebUrls.API.API + WebUrls.LOGIN.REGISTER,
WebUrls.API.API + WebUrls.LOGIN.REFRESH_TOKEN)
.permitAll()
.anyRequest().authenticated();
http.addFilterBefore(authJwtTokenFilter(), UsernamePasswordAuthenticationFilter.class);
http.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS);
}
}
这里是我添加 cors 标头的地方:
@Component
public class MyCorsFilter implements Filter {
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
HttpServletResponse response = (HttpServletResponse) servletResponse;
response.setHeader("Access-Control-Allow-Origin", "*");
response.setHeader("Access-Control-Allow-Methods", "GET, PUT, POST, DELETE, OPTIONS");
response.setHeader("Access-Control-Allow-Headers", "*");
filterChain.doFilter(servletRequest, servletResponse);
}
}
【问题讨论】:
-
作为一般经验法则,如果有一些安全措施阻止您,而您不理解它,那么最后您应该做的事情是谷歌搜索“如何我要禁用这个我不明白的东西吗?
-
你能试试这个吗?
public class MyCorsFilter extends OncePerRequestFilter -
@wak786 这不起作用
标签: java spring spring-boot spring-security