基于SpringBootAPI的源限制请求

gev0vcfq  于 2021-07-09  发布在  Java
关注(0)|答案(0)|浏览(199)

我想知道是否有一种方法可以根据请求的来源限制对spring boot restapi的访问。我的要求是允许来自域的请求,例如。 .com ,但阻止来自其他源(如rest客户端)的请求,如 POSTMAN .
我尝试了以下代码,但似乎不起作用。我可以从 POSTMAN ,但在尝试从调用api时遇到cors错误 .com .

@Component
public class ApiCorsFilters extends OncePerRequestFilter {
    @Override
    protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain chain) throws ServletException, IOException {
        response.setHeader("Access-Control-Allow-Origin", "abc.com");
    }
}
@Configuration
public class WebControllerConfig implements WebMvcConfigurer {
    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**").allowedOrigins("abc.com");
    }
}
@Configuration
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.cors().and().authorizeRequests().antMatchers(HttpMethod.OPTIONS, "/**").
                permitAll().and().csrf().disable();
    }
}

这有可能实现这种访问控制吗?如果是,效果如何?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题