当前位置: 首页 > 知识库问答 >
问题:

如何在Spring Boot中配置CORS和基本授权?

阎声
2023-03-14

我试图在一个已经设置了基本auth的Spring Boot应用程序中配置CORS。

我在很多地方搜索过,包括这个答案,它指向官方文档中基于过滤器的CORS支持。

到目前为止还没有运气。

fetch('http://localhost:8080/api/lists', {
  headers: {
    'Authorization': 'Basic dXNlckB0ZXN0LmNvbToxMjM0NQ=='
  }
}
@Configuration
class MyConfiguration {

    @Bean
    public FilterRegistrationBean corsFilter()
    {
        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();

        CorsConfiguration config = new CorsConfiguration();
        config.setAllowedOrigins(Arrays.asList("http://localhost:3000"));
        // Maybe I can just say "*" for methods and headers
        // I just copied these lists from another Dropwizard project
        config.setAllowedMethods(Arrays.asList("GET", "PUT", "POST", "DELETE", "OPTIONS", "HEAD"));
        config.setAllowedHeaders(Arrays.asList("X-Requested-With", "Origin", "Content-Type", "Accept",
            "Authorization", "Access-Control-Allow-Credentials", "Access-Control-Allow-Headers", "Access-Control-Allow-Methods",
            "Access-Control-Allow-Origin", "Access-Control-Expose-Headers", "Access-Control-Max-Age",
            "Access-Control-Request-Headers", "Access-Control-Request-Method", "Age", "Allow", "Alternates",
            "Content-Range", "Content-Disposition", "Content-Description"));
        config.setAllowCredentials(true);

        source.registerCorsConfiguration("/**", config);
        FilterRegistrationBean bean = new FilterRegistrationBean(new CorsFilter(source));
        bean.setOrder(0);
        return bean;
    }
}
@Configuration
class WebSecurityConfig extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(HttpSecurity http) throws Exception {

        http.httpBasic().and()
            .authorizeRequests()
            .antMatchers("/", "/index.html").permitAll()
            .anyRequest().fullyAuthenticated();
    }
}

共有1个答案

勾炜
2023-03-14

我认为您需要允许选项请求进入web安全配置。类似于:

.antmatchers(httpmethod.options,“/your-url”).permitall()

 类似资料:
  • 我在学习Spring Boot时遇到了一些编码问题;我想添加一个像Spring3.x那样的CharacterEncodingFilter。就像这样:

  • 我试图用1.5.15.release版本在Spring Boot项目中配置LettuceConnectionFactory。

  • 我使用中的此选项在服务器中运行: 我得到这个错误: 分析INI配置文件时出错:未知的选项安全性。

  • 问题内容: 我在使用基本授权的PHP curl请求时遇到问题。 这是命令行curl: 我已经尝试通过以下方式设置curl标头,但无法正常工作 我收到响应“请求中的身份验证参数丢失或无效”,但我使用了在命令行curl中有效的ID和api_key(已测试) 请帮我。 问题答案: 试试下面的代码:

  • 并得到成功的回应 但是当使用访问令牌请求安全资源时,我会被重定向到Spring Security配置的登录页面bacause。 Spring Security OAuth2配置 以下是整个程序:https://github.com/gee0292/oauth2demo

  • 我正在尝试使用基本授权让WSMan工作。我总是遇到访问被拒绝的错误。Kerberos身份验证工作正常。 Windows远程管理服务正在域A的Windows Server 2008 R2上运行,并具有以下配置: 我正在域B中的Windows 7工作站上执行Test-WSMan: 并得到以下错误: 请注意,以下命令可以正常工作: 以下日志在Windows Server上显示: 有人能帮我解决这个问题吗