我有以下设置:
网关和两个RestAPI应用程序连接到云配置以拉取配置。应用程序本身可以正确启动,并可以通过各自的端口使用。我通过调用/swagger ui测试了这一点。html,工作正常。
当调用/执行器/网关/路由时,我会得到网关的路由列表,看起来不错。
对于我设置的所有四个应用程序:
server:
address: 0.0.0.0
port: 8080 # ports are adjusted for each service
forward-headers-strategy: framework
当我不使用 Spring 云配置服务器时,网关运行良好。现在,每当调用 /user/swagger-ui.html 或 /character/swagger-ui.html 时,我都会收到以下错误
java.lang.IllegalArgumentException: Invalid IPv4 address: 0:0:0:0:0:0:0:1:60979
at org.springframework.web.util.UriComponentsBuilder.parseForwardedFor(UriComponentsBuilder.java:363) ~[spring-web-5.3.8.jar:5.3.8]
at org.springframework.web.filter.ForwardedHeaderFilter$ForwardedHeaderExtractingRequest.<init>(ForwardedHeaderFilter.java:246) ~[spring-web-5.3.8.jar:5.3.8]
at org.springframework.web.filter.ForwardedHeaderFilter.doFilterInternal(ForwardedHeaderFilter.java:149) ~[spring-web-5.3.8.jar:5.3.8]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) ~[spring-web-5.3.8.jar:5.3.8]
尝试将前向标头策略
更改为本机
,这也没有帮助。我深入研究了UriComponentBuilder并设置了一些断点来调查它们中的变量,我怀疑request.headers[“转发”]是它失败的原因:
它试图解析不是IPv4地址的变量中的“for”,因此失败了。在使用Spring Cloud Config之前,使用“server.address”强制ipv4似乎有效,但是现在不行了。有没有人遇到过同样的问题,知道我应该怎么做才能摆脱这个异常?
因此,总的来说,路由本身似乎是有效的,因为它路由到正确的应用程序。应用程序本身(本例中是用户)抛出错误,而不是网关。
问题已解决
Spring gateway版本3.0.4
你可以从中得到
org . spring framework . cloud:spring-cloud-dependencies:2020 . 0 . 4
本文向大家介绍SpringCloud网关Gateway架构解析,包括了SpringCloud网关Gateway架构解析的使用技巧和注意事项,需要的朋友参考一下 网关是介于客户端和服务器端之间的中间层,所有的外部请求都会先经过 网关这一层。也就是说,API 的实现方面更多的考虑业务逻辑,而安全、性能、监控可以交由 网关来做,这样既提高业务灵活性又不缺安全性,典型的架构图如图所示: 安全 ,只有网关系
问题内容: 在我的android设备中,我试图找到其IP地址(IPV4)。 如果我执行以下代码 该代码给了我127.0.0.1。 我想获得实际的IP198.168.xx.xx。 (在“我的电脑”中,相同的代码为我提供了实际的IP。) 问题答案: 授予权限 还添加mainfest。
关于使用提供的代码生成IP地址的链接。 我已经实现了获取IP地址的确切代码,但它同时提供了IPv4和IPv6地址。下面是产生的价值。 (已编辑IPv6地址) 有没有办法只获取IPv4值而不同时获取两者?
本文向大家介绍SpringCloud网关组件zuul实例解析,包括了SpringCloud网关组件zuul实例解析的使用技巧和注意事项,需要的朋友参考一下 1.引入如下依赖 2.启动类添加如下注解 @EnableZuulProxy 原先访问商品服务如下: 通过网关访问:将访问地址改为网关地址,并添加商品服务的服务名称如下: 即完成统一完成由网关进行发送 同时可以在启动类中添加自定义路由映射 这样就
问题内容: 我有使用地址的应用程序(它存储它们的时间很长),因此它只了解地址。 可以将地址转换为with 吗? 问题答案: 尽管IPv4地址范围具有等效的IPv6,但是您不能将所有IPv6地址都转换为IPv4-IPv6地址比IPv4地址更多。 解决此问题的唯一明智的方法是更新您的应用程序,以便能够理解和存储IPv6地址。