Przeglądaj źródła

OSPP-2023_shenyu
link https://gitee.com/dromara/MaxKey?issue_id=I7X2FZ
补充shenyu网关插件枚举类中MaxkeyPlugin参数

Saiph 1 rok temu
rodzic
commit
56e349433e
1 zmienionych plików z 340 dodań i 0 usunięć
  1. 340 0
      summer-ospp/2023/shenyu/PluginEnum.java

+ 340 - 0
summer-ospp/2023/shenyu/PluginEnum.java

@@ -0,0 +1,340 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+ 
+package org.apache.shenyu.common.enums;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+/**
+ * PluginEnum.
+ */
+public enum PluginEnum {
+
+    /**
+     * Global plugin enum.
+     */
+    GLOBAL(-1, 0, "global"),
+    
+    /**
+     * Tcp plugin enum.
+     */
+    TCP(0, 0, "tcp"),
+    
+    /**
+     * Mqtt plugin enum.
+     */
+    MQTT(0, 0, "mqtt"),
+
+    /**
+     * the mock plugin enum.
+     */
+    MOCK(8, 0, "mock"),
+    
+    /**
+     * the cache plugin enum.
+     */
+    CACHE(10, 0, "cache"),
+    
+    /**
+     * Monitor plugin enum.
+     */
+    METRICS(15, 0, "metrics"),
+    
+    /**
+     * Sign plugin enum.
+     */
+    SIGN(20, 0, "sign"),
+    
+    /**
+     * Jwt plugin enum.
+     */
+    JWT(30, 0, "jwt"),
+    
+    /**
+     * OAuth2 plugin enum.
+     */
+    OAUTH2(40, 0, "oauth2"),
+
+    /**
+     * Casdoor plugin enum.
+     */
+    CASDOOR(40, 0, "casdoor"),
+
+    /**
+     * Maxkey plugin enum.
+     */
+    MAXKEY(40, 0, "maxkey"),
+
+    /**
+     * Waf plugin enum.
+     */
+    WAF(50, 0, "waf"),
+    
+    /**
+     * Rate limiter plugin enum.
+     */
+    RATE_LIMITER(60, 0, "rateLimiter"),
+    
+    /**
+     * Param mapping plugin enum.
+     */
+    PARAM_MAPPING(70, 0, "paramMapping"),
+    
+    /**
+     * Context path plugin enum.
+     */
+    CONTEXT_PATH(80, 0, "contextPath"),
+    
+    /**
+     * Rewrite plugin enum.
+     */
+    REWRITE(90, 0, "rewrite"),
+    
+    /**
+     * Cryptor request plugin enum.
+     */
+    CRYPTOR_REQUEST(100, 0, "cryptorRequest"),
+    
+    /**
+     * Redirect plugin enum.
+     */
+    REDIRECT(110, 0, "redirect"),
+    
+    /**
+     * Request plugin enum.
+     */
+    REQUEST(120, 0, "request"),
+    
+    /**
+     * GeneralContext plugin enum.
+     */
+    GENERAL_CONTEXT(125, 0, "generalContext"),
+    
+    /**
+     * Hystrix plugin enum.
+     */
+    HYSTRIX(130, 0, "hystrix"),
+    
+    /**
+     * Sentinel plugin enum.
+     */
+    SENTINEL(140, 0, "sentinel"),
+    
+    /**
+     * Resilence4J plugin enum.
+     */
+    RESILIENCE4J(150, 0, "resilience4j"),
+    
+    /**
+     * Logging console plugin enum.
+     */
+    LOGGING_CONSOLE(160, 0, "loggingConsole"),
+    
+    /**
+     * Logging RocketMQ plugin enum.
+     */
+    LOGGING_ROCKETMQ(170, 0, "loggingRocketMQ"),
+
+    /**
+     * Logging AliYun sls enums.
+     */
+    LOGGING_ALIYUN_SLS(175, 0, "loggingAliyunSls"),
+
+    /**
+     * Logging Tencent cls enums.
+     */
+    LOGGING_TENCENT_CLS(176, 0, "loggingTencentCls"),
+
+    /**
+     * Logging Kafka plugin enum.
+     */
+    LOGGING_KAFKA(180, 0, "loggingKafka"),
+
+    /**
+     * Logging Pulsar plugin enum.
+     */
+    LOGGING_PULSAR(185, 0, "loggingPulsar"),
+
+    /**
+     * Logging ElasticSearch plugin enum.
+     */
+    LOGGING_ELASTIC_SEARCH(190, 0, "loggingElasticSearch"),
+
+    /**
+     * Logging ClickHouse plugin enum.
+     */
+    LOGGING_CLICK_HOUSE(195, 0, "loggingClickHouse"),
+    
+    /**
+     * Divide plugin enum.
+     */
+    DIVIDE(200, 0, "divide"),
+    
+    /**
+     * springCloud plugin enum.
+     */
+    SPRING_CLOUD(200, 0, "springCloud"),
+    
+    /**
+     * webSocket plugin enum.
+     */
+    WEB_SOCKET(200, 0, "websocket"),
+    
+    /**
+     * Uri plugin enum.
+     */
+    URI(205, 0, "uri"),
+    
+    /**
+     * Web client plugin enum.
+     */
+    WEB_CLIENT(210, 0, "webClient"),
+    
+    /**
+     * Netty http client plugin enum.
+     */
+    NETTY_HTTP_CLIENT(210, 0, "nettyHttpClient"),
+    
+    /**
+     * ModifyResponse plugin enum.
+     */
+    MODIFY_RESPONSE(220, 0, "modifyResponse"),
+    
+    /**
+     * Param transform plugin enum.
+     */
+    RPC_PARAM_TRANSFORM(300, 0, "paramTransform"),
+    
+    /**
+     * Dubbo plugin enum.
+     */
+    DUBBO(310, 0, "dubbo"),
+    
+    /**
+     * Sofa plugin enum.
+     */
+    SOFA(310, 0, "sofa"),
+    
+    /**
+     * Tars plugin enum.
+     */
+    TARS(310, 0, "tars"),
+    
+    /**
+     * GPRC plugin enum.
+     */
+    GRPC(310, 0, "grpc"),
+    
+    /**
+     * Motan plugin enum.
+     */
+    MOTAN(310, 0, "motan"),
+
+    /**
+     * Motan plugin enum.
+     */
+    BRPC(310, 0, "brpc"),
+
+    /**
+     * Cryptor response plugin enum.
+     */
+    CRYPTOR_RESPONSE(410, 0, "cryptorResponse"),
+    
+    /**
+     * Response plugin enum.
+     */
+    RESPONSE(420, 0, "response"),
+
+    /**
+     * Key-auth plugin enum.
+     */
+    KEY_AUTH(430, 0, "keyAuth");
+    
+    /**
+     * When the application starts, the plugin is cached and we can obtained by name.
+     * When there are duplicate plugin names, it can be detected and resolved at compile time.
+     */
+    private static final Map<String, PluginEnum> PLUGIN_ENUM_MAP = Arrays.stream(PluginEnum.values()).collect(Collectors.toMap(plugin -> plugin.name, plugin -> plugin));
+    
+    private final int code;
+    
+    private final int role;
+    
+    private final String name;
+    
+    /**
+     * all args constructor.
+     *
+     * @param code code
+     * @param role role
+     * @param name name
+     */
+    PluginEnum(final int code, final int role, final String name) {
+        this.code = code;
+        this.role = role;
+        this.name = name;
+    }
+    
+    /**
+     * get code.
+     *
+     * @return code code
+     */
+    public int getCode() {
+        return code;
+    }
+    
+    /**
+     * get role.
+     *
+     * @return role role
+     */
+    public int getRole() {
+        return role;
+    }
+    
+    /**
+     * get name.
+     *
+     * @return name name
+     */
+    public String getName() {
+        return name;
+    }
+    
+    /**
+     * get plugin enum by name.
+     *
+     * @param name plugin name.
+     * @return plugin enum.
+     */
+    public static PluginEnum getPluginEnumByName(final String name) {
+        return PLUGIN_ENUM_MAP.getOrDefault(name, PluginEnum.GLOBAL);
+    }
+    
+    /**
+     * get upstream plugin names.
+     *
+     * @return List string
+     */
+    public static List<String> getUpstreamNames() {
+        return Arrays.asList(DIVIDE.name, GRPC.name, TARS.name, SPRING_CLOUD.name, DUBBO.name);
+    }
+}