【无标题】

自定义路由断言工厂需要继承 AbstractRoutePredicateFactory 类,重写 apply 方法的逻辑。在 apply 方法中可以通过 
exchange.getRequest() 拿到 ServerHttpRequest 对象,从而可以获取到请求的参数、请求方式、请求头等信息。
1、 必须spring组件 bean
2. 类必须加上 RoutePredicateFactory 作为结尾
3. 必须继承 AbstractRoutePredicateFactory
4. 必须声明静态内部类   声明属性来接收 配置文件中对应的断言的信息
5. 需要结合 shortcutFieldOrder 进行绑定
6.通过apply进行逻辑判断  true就是匹配成功   false匹配失败

@Component
@Slf4j
public class CheckAuthRoutePredicateFactory extends AbstractRoutePredicateFactory<CheckAuthRoutePredicateFactory.Con
 fig> {

public CheckAuthRoutePredicateFactory() {
super(Config.class);
}

 @Override
 public Predicate<ServerWebExchange> apply(Config config) {
 return new GatewayPredicate() {

  @Override
 public boolean test(ServerWebExchange serverWebExchange) {


log.info("调用CheckAuthRoutePredicateFactory" + config.getName());
 if(config.getName().equals("xushu")){
 return true;
 }
 return false;
 }
 };
 }

 /**
 * 快捷配置
 * @return
 */
  @Override
 public List<String> shortcutFieldOrder() {
 return Collections.singletonList("name");
 }

 public static class Config {

 private String name;

 public String getName() {
 return name;
 }

 public void setName(String name) {
 this.name = name;
 }
 }
 }

XML的配置

- Header=X-Request-Id,\d+
- DAJIAAuth=DAJIA

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值