部署Spring Boot+Vaadin应用后Swagger UI请求报错,需改用HTTPS请求
解决curl发送HTTPS请求及相关报错问题
1. 直接修改curl命令为HTTPS协议
将原命令中的http替换为https,执行以下命令即可发送HTTPS请求:
curl -X 'POST' \ 'https://myapp.alwaysdata.net/api/auth/logout' \ -H 'accept: application/json' \ -d ''
2. 确认alwaysdata主机的HTTPS配置
- 登录alwaysdata后台,检查你的域名是否已开启HTTPS(alwaysdata免费主机默认支持HTTPS,一般会自动配置SSL证书)。
- 无需在Spring Boot中单独配置SSL证书,alwaysdata会将外部HTTPS请求转发到应用的内部HTTP端口,确保应用监听平台指定的端口即可。
3. 调整Spring Boot的CORS配置(若仍有跨域问题)
如果切换HTTPS后仍出现CORS相关报错,在Spring Boot中添加CORS配置,允许HTTPS来源的请求:
@Configuration public class CorsConfig { @Bean public CorsFilter corsFilter() { UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(); CorsConfiguration config = new CorsConfiguration(); // 允许所有HTTPS来源,也可指定具体域名如https://myapp.alwaysdata.net config.addAllowedOriginPattern("https://*"); config.addAllowedMethod("*"); config.addAllowedHeader("*"); config.setAllowCredentials(true); source.registerCorsConfiguration("/api/**", config); return new CorsFilter(source); } }
4. 适配Swagger UI的HTTPS访问
修改Swagger配置,让其生成HTTPS协议的API地址,避免Swagger UI调用时的协议不匹配:
@Configuration @OpenAPIDefinition(info = @Info(title = "API Docs", version = "v1")) public class SwaggerConfig { @Bean public OpenAPI customOpenAPI() { return new OpenAPI() .servers(List.of(new Server().url("https://myapp.alwaysdata.net"))); } }
内容的提问来源于stack exchange,提问作者IceMajor
相关产品推荐
相关产品推荐

