您的位置:首页 > 健康 > 养生 > 企业管理咨询经营范围_it外包抽成_企业网站建设价格_q群排名优化软件

企业管理咨询经营范围_it外包抽成_企业网站建设价格_q群排名优化软件

2024/12/23 12:31:26 来源:https://blog.csdn.net/kong7906928/article/details/144239766  浏览:    关键词:企业管理咨询经营范围_it外包抽成_企业网站建设价格_q群排名优化软件
企业管理咨询经营范围_it外包抽成_企业网站建设价格_q群排名优化软件

一、微服务网关跨域问题

        项目采用前后端分离架构,前段存在自己的前段系统,并且会单独部署,同样后端系统也都是单独部署,这样就一定存在跨域问题。可以在controller类上添加注解来进行解决,但是现在的访问都是基于网关进行操作,所以还需要在网关系统上对跨域问题进行解决。具体解决方案:在网关系统添加配置信息:

修改application.yml ,在spring.cloud.gateway节点添加配置:

      globalcors:cors-configurations:'[/**]': # 匹配所有请求allowedOrigins: "*" #跨域处理 允许所有的域allowedMethods: # 支持的方法- GET- POST- PUT- DELETE

网关模块spring.cloud.gateway的配置文件application.yml如下:

spring:application:name: sysgatewaycloud:gateway:globalcors:cors-configurations:'[/**]': # 匹配所有请求allowedOrigins: "*" #跨域处理 允许所有的域allowedMethods: # 支持的方法- GET- POST- PUT- DELETEroutes:- id: goodsuri: lb://goodspredicates:- Path=/goods/**filters:- StripPrefix= 1
server:port: 9101
eureka:client:service-url:defaultZone: http://127.0.0.1:6868/eurekainstance:prefer-ip-address: true

二、微服务网关自定义过滤器


        当有了网关系统,客户端所有访问先进入到网关中,由网关将请求转发到具体某个服务。基于这个特点,可以在网关上通过过滤器的形式进行特定业务的操作:比如ip(黑白名单)拦截、特定地址的拦截等。
定义两个过滤器 :获取客户端访问IP 和客户端访问URL地址:

(1)shangcheng_gateway_system创建IpFilter(获取客户端访问IP)

@Component
public class IpFilter implements GlobalFilter, Ordered {
​//具体业务逻辑@Overridepublic Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
​System.out.println("经过第1个过滤器IpFilter");ServerHttpRequest request = exchange.getRequest();InetSocketAddress remoteAddress = request.getRemoteAddress();System.out.println("ip:"+remoteAddress.getHostName());return chain.filter(exchange);//放行过滤器}
​    //过滤器的执行优先级@Overridepublic int getOrder() {return 1;}
}

(2)shangcheng_gateway_system创建UrlFilter(获取客户端访问url地址)

@Component
public class UrlFilter implements GlobalFilter, Ordered {//具体业务逻辑​@Overridepublic Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {System.out.println("经过第2个过滤器UrlFilter");ServerHttpRequest request = exchange.getRequest();String url = request.getURI().getPath();System.out.println("url:"+url);return chain.filter(exchange);//放行过滤器}
​    //过滤器的执行优先级@Overridepublic int getOrder() {return 2;}
}

三、网关访问路由转发测试

网关访问路由转发测试:
        直接访问Goods微服务:localhost:9001/brand/category/手机

        成功返回结果。
        访问网关:localhost:9101/goods/brand/category/手机

        成功返回结果。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com