当前位置: 首页 > news >正文

揭阳市榕城区建设局网站中装建设官网

揭阳市榕城区建设局网站,中装建设官网,wordpress cx-udy,酒店手机网站模板遇到这么一个面试题:如何在网关做配置,实现只有在早晨9点到下午18点之间接口才允许访问,其他时间访问都是404。 我们知道网关的一个重要的作用就是路由转发,路由表的配置大概是这个样子: spring:cloud:gateway:routes:- id: user…

遇到这么一个面试题:如何在网关做配置,实现只有在早晨9点到下午18点之间接口才允许访问,其他时间访问都是404。
我们知道网关的一个重要的作用就是路由转发,路由表的配置大概是这个样子:

spring:cloud:gateway:routes:- id: user-serviceuri: lb://userservicepredicates:- Path=/user/*

上面的id是路由的名称,uri是要路由到的目的地,predicates就是断言过滤条件,只有当访问的url路径是以/user开头的时候,才会把请求转发到userservice上。
gateway中内置了很多断言规则,每一种断言规则背后都是实现了AbstractRoutePredicateFactory的一个实现类,比如Path断言org.springframework.cloud.gateway.handler.predicate.PathRoutePredicateFactory。但是gateway并没有提供一个根据时间做过滤条件的断言工厂,因此,我们可以自定义一个断言工厂实现这个功能。
那如何来自定义一个断言工厂呢?
首先,写一个AbstractRoutePredicateFactory的实现类

/*** 自定义的断言工厂<br>* 1.名称必须是配置+RoutePredicateFactory<br>* 2.必须继承AbstractRoutePredicateFactory<配置类>*/
@Component
public class HourRoutePredicateFactory extends AbstractRoutePredicateFactory<HourRoutePredicateFactory.Config> {public HourRoutePredicateFactory() {super(HourRoutePredicateFactory.Config.class);}//读取配置文件的参数值,赋值到配置类中的属性上public List<String> shortcutFieldOrder() {//顺序必须与yml文件中的配置顺序对应return Arrays.asList("startHour", "endHour");}public Predicate<ServerWebExchange> apply(HourRoutePredicateFactory.Config config) {return new Predicate<ServerWebExchange>() {@Overridepublic boolean test(ServerWebExchange serverWebExchange) {//获取当前时间LocalDateTime now = LocalDateTime.now();int hour = now.getHour();if(hour >= config.getStartHour() && hour <= config.getEndHour()){return true;}return false;}};}//用于接收参数@Data@NoArgsConstructorpublic static class Config {private int startHour;private int endHour;}
}

然后在配置文件中使用就可以了,比如:

spring:cloud:gateway:routes:- id: user-serviceuri: lb://userservicepredicates:- Path=/user/*- Hour=9,18

打开浏览器,测试一下,如果当前时间是在9-18点之间可以正常访问,否则返回404。
源码下载:https://github.com/xjs1919/enumdemo/tree/master/gateway-predicate-demo

http://www.yayakq.cn/news/573645/

相关文章:

  • 设计师经常用的网站手机网站默认全屏
  • 专业做外贸网站公司Wordpress链接的index
  • 低价做营销企业网站我想给图书网站做代理
  • 北京网站定制建设俄罗斯电商平台ozon入驻条件
  • 如何制作私人网站专业的建站
  • 丽水哪里做网站鞍山做网站优化
  • 网站seo查询网站开发 工作量
  • 大连科技官方网站黄岩网站建设
  • 建设网站群的好处南阳网站关键词
  • 月坛网站建设公司已将绑定域名给另一个网站
  • 网站的做自己电脑做网站 外网无法访问
  • 厦门建网站网址外贸网站图片素材
  • 网站SEO容易做吗成都百度seo优化公司
  • 装修网站php源码找代做海报的网站
  • 100款不良网站进入窗口软件wordpress 管理权限
  • 长沙网站排名分析宁波网站优化体验
  • 网站开发进入腾信职位wordpress 网站加载过慢
  • 网站后台管理界面模板好看的页面
  • 网站开发公司应该具备怎样的资质在百度网上做广告需要多少钱
  • 海门市规划建设局网站做新网站的swot分析
  • 外贸自己做网站商品标题关键词优化
  • 表白墙网站怎么做刚做的网站 为啥搜不到
  • 做网站有什么软件wordpress 配置域名
  • 北京网站建设比较好的公司宝应网站开发
  • thinkphp做企业网站一级造价工程师报名时间
  • wordpress下载慢合肥网络推广优化公司
  • 网站保定网站建设多少钱大连哪家做网站比较好
  • 事业单位网站建设重庆建站模板厂家
  • 做seo要明白网站内容网站排版代码
  • 陕西天工建设有限公司官方网站大姚网站建设