全局CORS配置在Spring Boot中不起作用

莱金:

因此,我尝试在我的Spring Boot应用程序中添加全局CORS配置。当我授权所有来源时(通过在CorsRegistry.allowedOrigins中添加“ *”),我可以使其工作,但是当我尝试为示例指定http:// localhost:8080时,它就无法工作。

我的控制器

@RestController
@RequestMapping("/api")
public class Controller {

    @GetMapping("/svc")
    public ResponseEntity<String> method(@RequestParam(required = false) String id) {
    //some code
    }

我的配置:

@Configuration
public class Configuration {


    @Bean
    public WebMvcConfigurer corsConfigurer() {
        return new WebMvcConfigurer() {
            @Override
            public void addCorsMappings(CorsRegistry registry) {
                registry.addMapping("/**").allowedOrigins("http://localhost:8080")
                .allowedMethods("POST", "GET",  "PUT", "OPTIONS", "DELETE")
                ;
            }
        };
    }

因此,这不符合预期。但是当我把

registry.addMapping("/**").allowedOrigins("*")

当我从客户端调用http:// localhost:8080 / api / svc?id = 999时,它可以工作。

对我在这里想念的东西有任何想法吗?

谢谢!

Abdelghani Roussi:

我认为您有一个复制/粘贴问题,并且我想您的服务器正在端口8080上的本地主机中运行。您应该意识到其中.allowedOrigins应该包含客户端来源,因此请更改:

registry.addMapping("/**").allowedOrigins("http://localhost:8080")registry.addMapping("/**").allowedOrigins("http://localhost:[client_port]")

其中client_port是您的客户端端口。


编辑

如果要获取客户端ip,则可以将HttpServletRequest绑定到您的方法(这仅用于获取客户端地址,完成后可以删除绑定):

@GetMapping("/client/ip")
public ResponseEntity<String> getClientIp(HttpServletRequest request) {
    String clientAddress = "";
    if (Objects.nonNull(request)) {
        clientAddress = request.getHeader("X-FORWARDED-FOR");
        if (Objects.nonNull(request) || "".equals(remoteAddr)) {
            clientAddress = request.getRemoteAddr();
        }
    }
    return ResponseEntity.ok().body(clientAddress);
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

WebMvcConfigurer 在 Spring Boot 中不起作用?

在Spring Boot应用程序中配置cors。Bean CorsConfigurationSource不起作用

Spring Boot Autowired在配置类中不起作用

配置客户端在 Spring Boot 中不起作用

Spring Boot配置属性不起作用

json中的Json在Spring Boot中不起作用

@Transactional在带有CrudRepository的Spring Boot中不起作用

Spring Boot-@PreAuthorize在测试中不起作用

RestController在oauth2 Spring Boot中不起作用

Spring Boot 2.2.2 - Prometheus 在 Actuator 中不起作用

多模块组件扫描在Spring Boot中不起作用

注释CrossOrigin在Spring Boot中不起作用

我的BeanPostProcessor在Spring Boot中不起作用

Spring Boot - @Autowired 在 @Service 中不起作用

自定义MessageConverter在Spring Boot中不起作用

Spring Boot Kotlin项目在Eclipse中不起作用

Spring Boot DevTools在Eclipse中不起作用

Spring Boot @Scheduler 在 Google Kubernetes Engine 中不起作用

Primefaces FileUpload在Spring Boot中不起作用

spring boot中的BindingResult参数不起作用

实时重载在Spring Boot devtools中不起作用

事务注释在Spring Boot中不起作用

为什么RestController在Spring Boot中不起作用?

Spring Boot permitAll在WebSecurityConfigurerAdapter中不起作用

CommonsRequestLoggingFilter在Spring Boot应用程序中不起作用

@ConstructorBinding 在 Spring Boot 2.5.4 中似乎不起作用

部署的Spring-Boot战争在Tomcat中不起作用

Spring Boot中的异常处理程序不起作用?

Spring Boot方面在我的API中不起作用