diff options
| author | 侯晋川 <[email protected]> | 2024-10-25 14:17:14 +0800 |
|---|---|---|
| committer | 侯晋川 <[email protected]> | 2024-10-25 14:17:14 +0800 |
| commit | 7ab2ffecf20dd0a39c9bc63ff4f879bceb3ca704 (patch) | |
| tree | 94c43d418e47f853cbca6a412711d4d054f5ac10 /groot-common/src/main | |
| parent | 505b04ea10f1e3e37410f5ef1b0721e6f23caebb (diff) | |
[feature][core]新增Encrypt和HMAC函数
Diffstat (limited to 'groot-common/src/main')
6 files changed, 103 insertions, 67 deletions
diff --git a/groot-common/src/main/java/com/geedgenetworks/common/config/CommonConfigDomProcessor.java b/groot-common/src/main/java/com/geedgenetworks/common/config/CommonConfigDomProcessor.java index eec66fa..51e2ff0 100644 --- a/groot-common/src/main/java/com/geedgenetworks/common/config/CommonConfigDomProcessor.java +++ b/groot-common/src/main/java/com/geedgenetworks/common/config/CommonConfigDomProcessor.java @@ -1,8 +1,6 @@ package com.geedgenetworks.common.config; import com.hazelcast.internal.config.AbstractDomConfigProcessor; -import com.hazelcast.logging.ILogger; -import com.hazelcast.logging.Logger; import lombok.extern.slf4j.Slf4j; import org.w3c.dom.Node; @@ -16,6 +14,7 @@ import static com.hazelcast.internal.config.DomConfigHelper.*; @Slf4j public class CommonConfigDomProcessor extends AbstractDomConfigProcessor { private final GrootStreamConfig config; + CommonConfigDomProcessor(boolean domLevel3, GrootStreamConfig config) { super(domLevel3); this.config = config; @@ -26,16 +25,16 @@ public class CommonConfigDomProcessor extends AbstractDomConfigProcessor { final CommonConfig commonConfig = config.getCommonConfig(); for (Node node : childElements(rootNode)) { String name = cleanNodeName(node); - if (CommonConfigOptions.KNOWLEDGE_BASE.key().equals(name)) { - commonConfig.setKnowledgeBaseConfig(parseKnowledgeBaseConfig(node)); + if (CommonConfigOptions.KNOWLEDGE_BASE.key().equals(name)) { + commonConfig.setKnowledgeBaseConfig(parseKnowledgeBaseConfig(node)); } else if (CommonConfigOptions.KMS.key().equals(name)) { - commonConfig.setKmsConfig(parseKmsConfig(node)); - } else if (CommonConfigOptions.SSL.key().equals(name)) { - commonConfig.setSslConfig(parseSSLConfig(node)); - } else if (CommonConfigOptions.PROPERTIES.key().equals(name)) { - commonConfig.setPropertiesConfig(parsePropertiesConfig(node)); + commonConfig.setKmsConfig(parseKmsConfig(node)); + } else if (CommonConfigOptions.SSL.key().equals(name)) { + commonConfig.setSslConfig(parseSSLConfig(node)); + } else if (CommonConfigOptions.PROPERTIES.key().equals(name)) { + commonConfig.setPropertiesConfig(parsePropertiesConfig(node)); } else { - log.warn("Unrecognized Groot Stream configuration element: {}", name); + log.warn("Unrecognized Groot Stream configuration element: {}", name); } } @@ -43,12 +42,12 @@ public class CommonConfigDomProcessor extends AbstractDomConfigProcessor { private Map<String, String> parsePropertiesConfig(Node properties) { - Map<String, String> propertiesMap = new HashMap<>(); - for (Node node : childElements(properties)) { - String name = cleanNodeName(node); - propertiesMap.put(name,getTextContent(node)); - } - return propertiesMap; + Map<String, String> propertiesMap = new HashMap<>(); + for (Node node : childElements(properties)) { + String name = cleanNodeName(node); + propertiesMap.put(name, getTextContent(node)); + } + return propertiesMap; } @@ -62,7 +61,7 @@ public class CommonConfigDomProcessor extends AbstractDomConfigProcessor { } - private KnowledgeBaseConfig parseKnowledgeBaseConfigAsObject(Node kbNode) { + private KnowledgeBaseConfig parseKnowledgeBaseConfigAsObject(Node kbNode) { KnowledgeBaseConfig knowledgeBaseConfig = new KnowledgeBaseConfig(); for (Node node : childElements(kbNode)) { String name = cleanNodeName(node); @@ -76,7 +75,7 @@ public class CommonConfigDomProcessor extends AbstractDomConfigProcessor { knowledgeBaseConfig.setFiles(parseKnowledgeBaseFilesConfig(node)); } else if (CommonConfigOptions.KNOWLEDGE_BASE_PROPERTIES.key().equals(name)) { knowledgeBaseConfig.setProperties(parseKnowledgeBasePropertiesConfig(node)); - } else{ + } else { log.warn("Unrecognized KB configuration element: {}", name); } @@ -84,18 +83,18 @@ public class CommonConfigDomProcessor extends AbstractDomConfigProcessor { return knowledgeBaseConfig; } - private SSLConfig parseSSLConfig (Node sslRootNode) { + private SSLConfig parseSSLConfig(Node sslRootNode) { SSLConfig sslConfig = new SSLConfig(); for (Node node : childElements(sslRootNode)) { String name = cleanNodeName(node); - if (CommonConfigOptions.SSL_ENABLED.key().equals(name)) { - sslConfig.setEnabled(getBooleanValue(getTextContent(node))); - } else if (CommonConfigOptions.SSL_CERT_FILE.key().equals(name)) { - sslConfig.setCertFile(getTextContent(node)); - } else if (CommonConfigOptions.SSL_KEY_FILE.key().equals(name)) { - sslConfig.setKeyFile(getTextContent(node)); - } else if (CommonConfigOptions.SSL_REQUIRE_CLIENT_AUTH.key().equals(name)) { - sslConfig.setRequireClientAuth(getBooleanValue(getTextContent(node))); + if (CommonConfigOptions.SKIP_VERIFICATION.key().equals(name)) { + sslConfig.setSkipVerification(getBooleanValue(getTextContent(node))); + } else if (CommonConfigOptions.CA_CERTIFICATE_PATH.key().equals(name)) { + sslConfig.setCaCertificatePath(getTextContent(node)); + } else if (CommonConfigOptions.CERTIFICATE_PATH.key().equals(name)) { + sslConfig.setCertificatePath(getTextContent(node)); + } else if (CommonConfigOptions.PRIVATE_KEY_PATH.key().equals(name)) { + sslConfig.setPrivateKeyPath(getTextContent(node)); } else { log.warn("Unrecognized SSL configuration element: {}", name); } @@ -118,12 +117,18 @@ public class CommonConfigDomProcessor extends AbstractDomConfigProcessor { String name = cleanNodeName(node); if (CommonConfigOptions.KMS_TYPE.key().equals(name)) { kmsConfig.setType(getTextContent(node)); + } else if (CommonConfigOptions.KMS_SECRET_KEY.key().equals(name)) { + kmsConfig.setSecretKey(getTextContent(node)); } else if (CommonConfigOptions.KMS_URL.key().equals(name)) { kmsConfig.setUrl(getTextContent(node)); - } else if (CommonConfigOptions.KMS_TOKEN.key().equals(name)) { - kmsConfig.setToken(getTextContent(node)); - } else if (CommonConfigOptions.KMS_KEY_PATH.key().equals(name)) { - kmsConfig.setKeyPath(getTextContent(node)); + } else if (CommonConfigOptions.KMS_USERNAME.key().equals(name)) { + kmsConfig.setUsername(getTextContent(node)); + } else if (CommonConfigOptions.KMS_PASSWORD.key().equals(name)) { + kmsConfig.setPassword(getTextContent(node)); + } else if (CommonConfigOptions.KMS_DEFAULT_KEY_PATH.key().equals(name)) { + kmsConfig.setDefaultKeyPath(getTextContent(node)); + } else if (CommonConfigOptions.KMS_PLUGIN_KEY_PATH.key().equals(name)) { + kmsConfig.setPluginKeyPath(getTextContent(node)); } else { log.warn("Unrecognized KMS configuration element: {}", name); } @@ -136,7 +141,7 @@ public class CommonConfigDomProcessor extends AbstractDomConfigProcessor { Map<String, String> propertiesMap = new HashMap<>(); for (Node node : childElements(properties)) { String name = cleanNodeName(node); - propertiesMap.put(name,getTextContent(node)); + propertiesMap.put(name, getTextContent(node)); } return propertiesMap; } diff --git a/groot-common/src/main/java/com/geedgenetworks/common/config/CommonConfigOptions.java b/groot-common/src/main/java/com/geedgenetworks/common/config/CommonConfigOptions.java index d3f1cb9..1c3f4d0 100644 --- a/groot-common/src/main/java/com/geedgenetworks/common/config/CommonConfigOptions.java +++ b/groot-common/src/main/java/com/geedgenetworks/common/config/CommonConfigOptions.java @@ -12,7 +12,7 @@ public class CommonConfigOptions { public static final Option<Map<String, String>> KNOWLEDGE_BASE_PROPERTIES = Options.key("properties") .mapType() - .defaultValue(new HashMap<String,String>()) + .defaultValue(new HashMap<String, String>()) .withDescription("The properties of knowledge base"); public static final Option<String> KNOWLEDGE_BASE_NAME = Options.key("name") @@ -47,7 +47,8 @@ public class CommonConfigOptions { public static final Option<List<KnowledgeBaseConfig>> KNOWLEDGE_BASE = Options.key("knowledge_base") - .type(new TypeReference<List<KnowledgeBaseConfig>>() {}) + .type(new TypeReference<List<KnowledgeBaseConfig>>() { + }) .noDefaultValue() .withDescription("The knowledge base configuration."); @@ -59,7 +60,8 @@ public class CommonConfigOptions { public static final Option<Map<String, KmsConfig>> KMS = Options.key("kms") - .type(new TypeReference<Map<String, KmsConfig>>() {}) + .type(new TypeReference<Map<String, KmsConfig>>() { + }) .noDefaultValue() .withDescription("The kms configuration."); @@ -68,47 +70,59 @@ public class CommonConfigOptions { .defaultValue("local") .withDescription("The type of KMS."); + public static final Option<String> KMS_SECRET_KEY = Options.key("secret_key") + .stringType() + .defaultValue("") + .withDescription("The type of KMS."); + public static final Option<String> KMS_URL = Options.key("url") .stringType() .defaultValue("") .withDescription("The access url of KMS."); - public static final Option<String> KMS_TOKEN = Options.key("token") + public static final Option<String> KMS_USERNAME = Options.key("username") + .stringType() + .defaultValue("") + .withDescription("The access username of KMS."); + + public static final Option<String> KMS_PASSWORD = Options.key("password") + .stringType() + .defaultValue("") + .withDescription("The access username of KMS."); + + public static final Option<String> KMS_DEFAULT_KEY_PATH = Options.key("default_key_path") .stringType() .defaultValue("") - .withDescription("The access token of KMS."); + .withDescription("The default key path of KMS."); - public static final Option<String> KMS_KEY_PATH = Options.key("key_path") + public static final Option<String> KMS_PLUGIN_KEY_PATH = Options.key("plugin_key_path") .stringType() .defaultValue("") - .withDescription("The key path of KMS."); + .withDescription("The plugin key path of KMS."); public static final Option<SSLConfig> SSL = Options.key("ssl") - .type(new TypeReference<SSLConfig>() {}) + .type(new TypeReference<SSLConfig>() { + }) .noDefaultValue() .withDescription("The ssl configuration."); - public static final Option<Boolean> SSL_ENABLED = Options.key("enabled") + public static final Option<Boolean> SKIP_VERIFICATION = Options.key("skip_verification") .booleanType() .defaultValue(false) - .withDescription("The enabled flag of the configuration."); + .withDescription("The skip certificate of the configuration."); - public static final Option<String> SSL_CERT_FILE = Options.key("cert_file") + public static final Option<String> CA_CERTIFICATE_PATH = Options.key("ca_certificate_path") + .stringType() + .defaultValue("") + .withDescription("The ca certificate file path of the configuration."); + + public static final Option<String> CERTIFICATE_PATH = Options.key("certificate_path") .stringType() .defaultValue("") .withDescription("The certificate file path of the configuration."); - public static final Option<String> SSL_KEY_FILE = Options.key("key_file") + public static final Option<String> PRIVATE_KEY_PATH = Options.key("private_key_path") .stringType() .defaultValue("") .withDescription("The private key file path of the configuration."); - - public static final Option<Boolean> SSL_REQUIRE_CLIENT_AUTH = Options.key("require_client_auth") - .booleanType() - .defaultValue(false) - .withDescription("The require client auth flag of the configuration."); - - - - } diff --git a/groot-common/src/main/java/com/geedgenetworks/common/config/KmsConfig.java b/groot-common/src/main/java/com/geedgenetworks/common/config/KmsConfig.java index f26062c..75a5b4c 100644 --- a/groot-common/src/main/java/com/geedgenetworks/common/config/KmsConfig.java +++ b/groot-common/src/main/java/com/geedgenetworks/common/config/KmsConfig.java @@ -6,12 +6,11 @@ import java.io.Serializable; @Data public class KmsConfig implements Serializable { - - private String type = CommonConfigOptions.KMS_TYPE.defaultValue(); + private String type = CommonConfigOptions.KMS_TYPE.defaultValue(); + private String secretKey = CommonConfigOptions.KMS_TYPE.defaultValue(); private String url = CommonConfigOptions.KMS_URL.defaultValue(); - private String token = CommonConfigOptions.KMS_TOKEN.defaultValue(); - private String keyPath = CommonConfigOptions.KMS_KEY_PATH.defaultValue(); - - - + private String username = CommonConfigOptions.KMS_USERNAME.defaultValue(); + private String password = CommonConfigOptions.KMS_PASSWORD.defaultValue(); + private String defaultKeyPath = CommonConfigOptions.KMS_DEFAULT_KEY_PATH.defaultValue(); + private String pluginKeyPath = CommonConfigOptions.KMS_PLUGIN_KEY_PATH.defaultValue(); } diff --git a/groot-common/src/main/java/com/geedgenetworks/common/config/SSLConfig.java b/groot-common/src/main/java/com/geedgenetworks/common/config/SSLConfig.java index 7df5c5b..874c163 100644 --- a/groot-common/src/main/java/com/geedgenetworks/common/config/SSLConfig.java +++ b/groot-common/src/main/java/com/geedgenetworks/common/config/SSLConfig.java @@ -6,14 +6,11 @@ import java.io.Serializable; @Data public class SSLConfig implements Serializable { + private Boolean skipVerification = CommonConfigOptions.SKIP_VERIFICATION.defaultValue(); - private Boolean enabled = CommonConfigOptions.SSL_ENABLED.defaultValue(); - - private String certFile = CommonConfigOptions.SSL_CERT_FILE.defaultValue(); - - private String keyFile = CommonConfigOptions.SSL_KEY_FILE.defaultValue(); - - private Boolean requireClientAuth = CommonConfigOptions.SSL_REQUIRE_CLIENT_AUTH.defaultValue(); + private String caCertificatePath = CommonConfigOptions.CA_CERTIFICATE_PATH.defaultValue(); + private String certificatePath = CommonConfigOptions.CERTIFICATE_PATH.defaultValue(); + private String privateKeyPath = CommonConfigOptions.PRIVATE_KEY_PATH.defaultValue(); } diff --git a/groot-common/src/main/resources/grootstream.yaml b/groot-common/src/main/resources/grootstream.yaml index 1a9a974..d7818ab 100644 --- a/groot-common/src/main/resources/grootstream.yaml +++ b/groot-common/src/main/resources/grootstream.yaml @@ -11,6 +11,25 @@ grootstream: files: - 64af7077-eb9b-4b8f-80cf-2ceebc89bea9 - 004390bc-3135-4a6f-a492-3662ecb9e289 + + kms: +# local: +# type: local +# secret_key: .geedgenetworks. + vault: + type: vault + url: https://192.168.40.223:8200 + username: tsg_olap + password: tsg_olap + default_key_path: tsg_olap/transit + plugin_key_path: tsg_olap/plugin/gmsm + + ssl: + skip_verification: true + ca_certificate_path: ./config/ssl/root.pem + certificate_path: ./config/ssl/worker.pem + private_key_path: ./config/ssl/worker.key + properties: hos.path: http://192.168.44.12:9098/hos hos.bucket.name.traffic_file: traffic_file_bucket diff --git a/groot-common/src/main/resources/udf.plugins b/groot-common/src/main/resources/udf.plugins index 9950a64..edb1a0f 100644 --- a/groot-common/src/main/resources/udf.plugins +++ b/groot-common/src/main/resources/udf.plugins @@ -4,11 +4,13 @@ com.geedgenetworks.core.udf.DecodeBase64 com.geedgenetworks.core.udf.Domain com.geedgenetworks.core.udf.Drop com.geedgenetworks.core.udf.EncodeBase64 +com.geedgenetworks.core.udf.Encrypt com.geedgenetworks.core.udf.Eval com.geedgenetworks.core.udf.Flatten com.geedgenetworks.core.udf.FromUnixTimestamp com.geedgenetworks.core.udf.GenerateStringArray com.geedgenetworks.core.udf.GeoIpLookup +com.geedgenetworks.core.udf.Hmac com.geedgenetworks.core.udf.JsonExtract com.geedgenetworks.core.udf.PathCombine com.geedgenetworks.core.udf.Rename |
