我想知道是否有一种方法可以根据请求的来源限制对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();
}
}
这有可能实现这种访问控制吗?如果是,效果如何?
暂无答案!
目前还没有任何答案,快来回答吧!