自定义条件策略
- 本文介绍如何对 
org.apache.shenyu.plugin.base.condition.judge.PredicateJudge进行自定义扩展。 
- 新增一个类 
CustomPredicateJudge,实现org.apache.shenyu.plugin.base.condition.judge.PredicateJudge接口 ,添加注解org.apache.shenyu.spi.Join。 
/** * custom predicate judge. */@Joinpublic class CustomPredicateJudge implements PredicateJudge {
    @Override    public Boolean judge(final ConditionData conditionData, final String realData) {        // 自定义条件策略    }}
- 在 
org.apache.shenyu.plugin.base.condition.judge.PredicateJudge文件中添加如下内容: 
script
${spi name}=${custom class path}${spi name}表示spi的名称,${custom class path}表示该类的全限定名。比如:
script
custom=org.apache.shenyu.examples.http.judge.CustomPredicateJudge- 在 
org.apache.shenyu.common.enums.OperatorEnum类中添加枚举类型: 
    /**     * custom operator enum.     */    CUSTOM("custom", true),- 在
Apache ShenYu网关管理系统 --> 基础配置 --> 字典管理, 找到字典编码为OPERATOR,新增一条数据,注意字典名称要为:${spi name},图中的示例是custom。 

字典类型:
operator;字典编码:
OPERATOR;字典名称:
${spi name},填写自定义spi的名称;字典值:使用时,下拉框的值,不要和现有的重复;
字典描述或备注信息:描述信息;
排序: 排序;
状态:打开或关闭。
- 在添加选择器或规则时,就可以使用自定义的条件策略:
 
