From 2f289618420df712c83678b5bde14dd48e86c11d Mon Sep 17 00:00:00 2001 From: Vadim Shulkin Date: Fri, 9 May 2025 13:43:26 -0400 Subject: [PATCH] Added graylog-plugin-function-xmllookupfunction --- .../.mvn/jvm.config | 10 + .../GETTING-STARTED.md | 8 + .../README.md | 56 ++++ .../build.config.js | 6 + .../package.json | 28 ++ .../pom.xml | 248 ++++++++++++++++++ .../src/deb/control/control | 8 + .../plugins/custom/XmlLookupFunction.java | 102 +++++++ .../custom/XmlLookupFunctionMetaData.java | 73 ++++++ .../custom/XmlLookupFunctionModule.java | 61 +++++ .../custom/XmlLookupFunctionPlugin.java | 39 +++ .../services/org.graylog2.plugin.Plugin | 1 + .../graylog-plugin.properties | 12 + .../src/web/index.jsx | 26 ++ .../services/org.graylog2.plugin.Plugin | 1 + .../graylog-plugin.properties | 12 + .../plugins/custom/XmlLookupFunction.class | Bin 0 -> 6107 bytes .../custom/XmlLookupFunctionMetaData.class | Bin 0 -> 2205 bytes .../custom/XmlLookupFunctionModule$1.class | Bin 0 -> 725 bytes .../custom/XmlLookupFunctionModule.class | Bin 0 -> 2663 bytes .../custom/XmlLookupFunctionPlugin.class | Bin 0 -> 901 bytes ...ction-xmllookupfunction-1.0.0-SNAPSHOT.jar | Bin 0 -> 11743 bytes .../target/maven-archiver/pom.properties | 5 + ...ction-xmllookupfunction-1.0.0-SNAPSHOT.jar | Bin 0 -> 11555 bytes .../webpack.config.js | 8 + 25 files changed, 704 insertions(+) create mode 100644 graylog-plugin-function-xmllookupfunction/.mvn/jvm.config create mode 100644 graylog-plugin-function-xmllookupfunction/GETTING-STARTED.md create mode 100644 graylog-plugin-function-xmllookupfunction/README.md create mode 100644 graylog-plugin-function-xmllookupfunction/build.config.js create mode 100644 graylog-plugin-function-xmllookupfunction/package.json create mode 100644 graylog-plugin-function-xmllookupfunction/pom.xml create mode 100644 graylog-plugin-function-xmllookupfunction/src/deb/control/control create mode 100644 graylog-plugin-function-xmllookupfunction/src/main/java/org/graylog/plugins/custom/XmlLookupFunction.java create mode 100644 graylog-plugin-function-xmllookupfunction/src/main/java/org/graylog/plugins/custom/XmlLookupFunctionMetaData.java create mode 100644 graylog-plugin-function-xmllookupfunction/src/main/java/org/graylog/plugins/custom/XmlLookupFunctionModule.java create mode 100644 graylog-plugin-function-xmllookupfunction/src/main/java/org/graylog/plugins/custom/XmlLookupFunctionPlugin.java create mode 100644 graylog-plugin-function-xmllookupfunction/src/main/resources/META-INF/services/org.graylog2.plugin.Plugin create mode 100644 graylog-plugin-function-xmllookupfunction/src/main/resources/org.graylog.plugins.graylog-plugin-function-xmllookupfunction/graylog-plugin.properties create mode 100644 graylog-plugin-function-xmllookupfunction/src/web/index.jsx create mode 100644 graylog-plugin-function-xmllookupfunction/target/classes/META-INF/services/org.graylog2.plugin.Plugin create mode 100644 graylog-plugin-function-xmllookupfunction/target/classes/org.graylog.plugins.graylog-plugin-function-xmllookupfunction/graylog-plugin.properties create mode 100644 graylog-plugin-function-xmllookupfunction/target/classes/org/graylog/plugins/custom/XmlLookupFunction.class create mode 100644 graylog-plugin-function-xmllookupfunction/target/classes/org/graylog/plugins/custom/XmlLookupFunctionMetaData.class create mode 100644 graylog-plugin-function-xmllookupfunction/target/classes/org/graylog/plugins/custom/XmlLookupFunctionModule$1.class create mode 100644 graylog-plugin-function-xmllookupfunction/target/classes/org/graylog/plugins/custom/XmlLookupFunctionModule.class create mode 100644 graylog-plugin-function-xmllookupfunction/target/classes/org/graylog/plugins/custom/XmlLookupFunctionPlugin.class create mode 100644 graylog-plugin-function-xmllookupfunction/target/graylog-plugin-function-xmllookupfunction-1.0.0-SNAPSHOT.jar create mode 100644 graylog-plugin-function-xmllookupfunction/target/maven-archiver/pom.properties create mode 100644 graylog-plugin-function-xmllookupfunction/target/original-graylog-plugin-function-xmllookupfunction-1.0.0-SNAPSHOT.jar create mode 100644 graylog-plugin-function-xmllookupfunction/webpack.config.js diff --git a/graylog-plugin-function-xmllookupfunction/.mvn/jvm.config b/graylog-plugin-function-xmllookupfunction/.mvn/jvm.config new file mode 100644 index 0000000..32599ce --- /dev/null +++ b/graylog-plugin-function-xmllookupfunction/.mvn/jvm.config @@ -0,0 +1,10 @@ +--add-exports jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED +--add-exports jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED +--add-exports jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED +--add-exports jdk.compiler/com.sun.tools.javac.model=ALL-UNNAMED +--add-exports jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED +--add-exports jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED +--add-exports jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED +--add-exports jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED +--add-opens jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED +--add-opens jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED diff --git a/graylog-plugin-function-xmllookupfunction/GETTING-STARTED.md b/graylog-plugin-function-xmllookupfunction/GETTING-STARTED.md new file mode 100644 index 0000000..23880c9 --- /dev/null +++ b/graylog-plugin-function-xmllookupfunction/GETTING-STARTED.md @@ -0,0 +1,8 @@ +Getting started with your new Graylog plugin +============================================ + +Welcome to your new Graylog plugin! + +Please refer to https://docs.graylog.org/docs/plugins for documentation on how to write +plugins for Graylog. + diff --git a/graylog-plugin-function-xmllookupfunction/README.md b/graylog-plugin-function-xmllookupfunction/README.md new file mode 100644 index 0000000..156b703 --- /dev/null +++ b/graylog-plugin-function-xmllookupfunction/README.md @@ -0,0 +1,56 @@ +# XmlLookupFunction Plugin for Graylog + +__Use this paragraph to enter a description of your plugin.__ + +**Required Graylog version:** 2.0 and later + +Installation +------------ + +[Download the plugin](https://github.com/vshulkin/graylog-plugin-function-xmllookupfunction/releases) +and place the `.jar` file in your Graylog plugin directory. The plugin directory +is the `plugins/` folder relative from your `graylog-server` directory by default +and can be configured in your `graylog.conf` file. + +Restart `graylog-server` and you are done. + +Development +----------- + +You can improve your development experience for the web interface part of your plugin +dramatically by making use of hot reloading. To do this, do the following: + +* `git clone https://github.com/Graylog2/graylog2-server.git` +* `cd graylog2-server/graylog2-web-interface` +* `ln -s $YOURPLUGIN plugin/` +* `npm install && npm start` + +Usage +----- + +__Use this paragraph to document the usage of your plugin__ + + +Getting started +--------------- + +This project is using Maven 3 and requires Java 8 or higher. + +* Clone this repository. +* Run `mvn package` to build a JAR file. +* Optional: Run `mvn jdeb:jdeb` and `mvn rpm:rpm` to create a DEB and RPM package respectively. +* Copy generated JAR file in target directory to your Graylog plugin directory. +* Restart the Graylog. + +Plugin Release +-------------- + +We are using the maven release plugin: + +``` +$ mvn release:prepare +[...] +$ mvn release:perform +``` + +This sets the version numbers, creates a tag and pushes to GitHub. diff --git a/graylog-plugin-function-xmllookupfunction/build.config.js b/graylog-plugin-function-xmllookupfunction/build.config.js new file mode 100644 index 0000000..500cf49 --- /dev/null +++ b/graylog-plugin-function-xmllookupfunction/build.config.js @@ -0,0 +1,6 @@ +const path = require('path'); + +module.exports = { + // Make sure that this is the correct path to the web interface part of the Graylog server repository. + web_src_path: path.resolve(__dirname, '../graylog2-server', 'graylog2-web-interface'), +}; diff --git a/graylog-plugin-function-xmllookupfunction/package.json b/graylog-plugin-function-xmllookupfunction/package.json new file mode 100644 index 0000000..b69df25 --- /dev/null +++ b/graylog-plugin-function-xmllookupfunction/package.json @@ -0,0 +1,28 @@ +{ + "name": "XmlLookupFunction", + "version": "1.0.0-SNAPSHOT", + "description": "", + "repository": { + "type": "git", + "url": "vshulkin/graylog-plugin-function-xmllookupfunction" + }, + "scripts": { + "build": "webpack", + "lint": "eslint src", + "lint:path": "eslint", + "test": "jest" + }, + "keywords": [ + "graylog" + ], + "author": "John Doe ", + "license": "MIT", + "eslintConfig": { + "extends": "graylog" + }, + "dependencies": { + }, + "devDependencies": { + "graylog-web-plugin": "file:../graylog2-server/graylog2-web-interface/packages/graylog-web-plugin" + } +} diff --git a/graylog-plugin-function-xmllookupfunction/pom.xml b/graylog-plugin-function-xmllookupfunction/pom.xml new file mode 100644 index 0000000..111dd62 --- /dev/null +++ b/graylog-plugin-function-xmllookupfunction/pom.xml @@ -0,0 +1,248 @@ + + + + 4.0.0 + + + org.graylog.plugins + graylog-plugin-parent + 5.1.5 + + + org.graylog.plugins + graylog-plugin-function-xmllookupfunction + 1.0.0-SNAPSHOT + jar + + ${project.artifactId} + Graylog ${project.artifactId} plugin. + https://www.graylog.org + + + + John Doe + you@example.org + + + + + scm:git:git@github.com:vshulkin/graylog-plugin-function-xmllookupfunction.git + scm:git:git@github.com:vshulkin/graylog-plugin-function-xmllookupfunction.git + https://github.com/vshulkin/graylog-plugin-function-xmllookupfunction + HEAD + + + + UTF-8 + 17 + 17 + + + true + + ${project.parent.version} + /usr/share/graylog-server/plugin + + + + + sonatype-nexus-snapshots + Sonatype Nexus Snapshots + https://oss.sonatype.org/content/repositories/snapshots + + + sonatype-nexus-staging + Nexus Release Repository + https://oss.sonatype.org/service/local/staging/deploy/maven2/ + + + + + + + sonatype-nexus-snapshots + Sonatype Nexus Snapshots + https://oss.sonatype.org/content/repositories/snapshots + + false + + + true + + + + sonatype-nexus-releases + Sonatype Nexus Releases + https://oss.sonatype.org/content/repositories/releases + + true + + + false + + + + + + + org.graylog2 + graylog2-server + ${graylog.version} + provided + + + org.graylog.plugins + graylog-plugin-pipeline-processor + 2.5.2 + provided + + + + org.graylog2 + graylog2-server + ${graylog.version} + test-jar + test + + + + + + ${web.build-dir} + + src/main/resources + true + + + + + maven-assembly-plugin + + true + + + + + org.apache.maven.plugins + maven-jar-plugin + 2.6 + + + + ${project.groupId}.${project.artifactId} + + + + + + + org.apache.maven.plugins + maven-shade-plugin + 2.4.1 + + false + + + + package + + shade + + + + + + + + + + + + org.apache.maven.plugins + maven-release-plugin + 2.5.2 + + true + forked-path + @{project.version} + clean test + package + + + + + jdeb + org.vafer + 1.4 + + ${project.build.directory}/${project.artifactId}-${project.version}.deb + + + ${project.build.directory}/${project.build.finalName}.jar + file + + perm + ${graylog.plugin-dir} + 644 + root + root + + + + + + + + org.codehaus.mojo + rpm-maven-plugin + 2.1.4 + + Application/Internet + + /usr + + + _unpackaged_files_terminate_build 0 + _binaries_in_noarch_packages_terminate_build 0 + + 644 + 755 + root + root + + + ${graylog.plugin-dir} + + + ${project.build.directory}/ + + ${project.build.finalName}.jar + + + + + + + + + + diff --git a/graylog-plugin-function-xmllookupfunction/src/deb/control/control b/graylog-plugin-function-xmllookupfunction/src/deb/control/control new file mode 100644 index 0000000..dd855d6 --- /dev/null +++ b/graylog-plugin-function-xmllookupfunction/src/deb/control/control @@ -0,0 +1,8 @@ +Package: [[name]] +Version: [[version]] +Architecture: all +Maintainer: John Doe +Section: web +Priority: optional +Depends: graylog-server | graylog-radio +Description: [[description]] diff --git a/graylog-plugin-function-xmllookupfunction/src/main/java/org/graylog/plugins/custom/XmlLookupFunction.java b/graylog-plugin-function-xmllookupfunction/src/main/java/org/graylog/plugins/custom/XmlLookupFunction.java new file mode 100644 index 0000000..0e1fd7b --- /dev/null +++ b/graylog-plugin-function-xmllookupfunction/src/main/java/org/graylog/plugins/custom/XmlLookupFunction.java @@ -0,0 +1,102 @@ +/* + * Copyright (C) 2020 Graylog, Inc. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the Server Side Public License, version 1, + * as published by MongoDB, Inc. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * Server Side Public License for more details. + * + * You should have received a copy of the Server Side Public License + * along with this program. If not, see + * . + */ + +package org.graylog.plugins.custom; + +import com.google.common.collect.ImmutableList; +import org.graylog.plugins.pipelineprocessor.EvaluationContext; +import org.graylog.plugins.pipelineprocessor.ast.expressions.Expression; +import org.graylog.plugins.pipelineprocessor.ast.functions.AbstractFunction; +import org.graylog.plugins.pipelineprocessor.ast.functions.Function; +import org.graylog.plugins.pipelineprocessor.ast.functions.FunctionArgs; +import org.graylog.plugins.pipelineprocessor.ast.functions.FunctionDescriptor; +import org.graylog.plugins.pipelineprocessor.ast.functions.ParameterDescriptor; +import org.w3c.dom.*; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import javax.xml.parsers.DocumentBuilderFactory; +import java.io.ByteArrayInputStream; +import java.nio.charset.StandardCharsets; +import java.util.List; + +public class XmlLookupFunction extends AbstractFunction { + private static final Logger LOG = LoggerFactory.getLogger(XmlLookupFunction.class); + public static final String NAME = "xml_lookup"; + + private final ParameterDescriptor input = + ParameterDescriptor.string("input").description("XML input string").build(); + private final ParameterDescriptor query = + ParameterDescriptor.string("query").description("Tag name or tag@attribute").build(); + + @Override + public FunctionDescriptor descriptor() { + return FunctionDescriptor.builder() + .name(NAME) + .description("Extracts value from XML input using tag name or tag@attribute") + .params(ImmutableList.of(input, query)) + .returnType(String.class) + .build(); + } + + @Override + public String evaluate(FunctionArgs args, EvaluationContext context) { + final String xmlInput = input.required(args, context); + final String lookup = query.required(args, context); + + try { + DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); + factory.setNamespaceAware(true); + Document doc = factory.newDocumentBuilder().parse( + new ByteArrayInputStream(xmlInput.getBytes(StandardCharsets.UTF_8))); + + if (lookup.contains("@")) { + String[] parts = lookup.split("@", 2); + return getAttribute(doc, parts[0], parts[1]); + } else { + return getTagValue(doc, lookup); + } + } catch (Exception e) { + LOG.error("Failed to evaluate xml_lookup: {}", e.getMessage(), e); + return null; + } + } + + private String getTagValue(Document doc, String tagName) { + NodeList nodes = doc.getElementsByTagNameNS("*", tagName); + if (nodes.getLength() > 0) { + return nodes.item(0).getTextContent().trim(); + } + return null; + } + + private String getAttribute(Document doc, String tagName, String attrName) { + NodeList nodes = doc.getElementsByTagNameNS("*", tagName); + for (int i = 0; i < nodes.getLength(); i++) { + NamedNodeMap attrs = nodes.item(i).getAttributes(); + if (attrs != null) { + Node attr = attrs.getNamedItem(attrName); + if (attr != null) { + return attr.getTextContent(); + } + } + } + return null; + } +} + + diff --git a/graylog-plugin-function-xmllookupfunction/src/main/java/org/graylog/plugins/custom/XmlLookupFunctionMetaData.java b/graylog-plugin-function-xmllookupfunction/src/main/java/org/graylog/plugins/custom/XmlLookupFunctionMetaData.java new file mode 100644 index 0000000..5afe2ac --- /dev/null +++ b/graylog-plugin-function-xmllookupfunction/src/main/java/org/graylog/plugins/custom/XmlLookupFunctionMetaData.java @@ -0,0 +1,73 @@ +/* + * Copyright (C) 2020 Graylog, Inc. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the Server Side Public License, version 1, + * as published by MongoDB, Inc. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * Server Side Public License for more details. + * + * You should have received a copy of the Server Side Public License + * along with this program. If not, see + * . + */ +package org.graylog.plugins.custom; + +import org.graylog2.plugin.PluginMetaData; +import org.graylog2.plugin.ServerStatus; +import org.graylog2.plugin.Version; + +import java.net.URI; +import java.util.Collections; +import java.util.Set; + +/** + * Implement the PluginMetaData interface here. + */ +public class XmlLookupFunctionMetaData implements PluginMetaData { + private static final String PLUGIN_PROPERTIES = "org.graylog.plugins.graylog-plugin-function-xmllookupfunction/graylog-plugin.properties"; + + @Override + public String getUniqueId() { + return "org.graylog.plugins.custom.XmlLookupFunctionPlugin"; + } + + @Override + public String getName() { + return "XmlLookupFunction"; + } + + @Override + public String getAuthor() { + return "John Doe "; + } + + @Override + public URI getURL() { + return URI.create("https://github.com/vshulkin/graylog-plugin-function-xmllookupfunction"); + } + + @Override + public Version getVersion() { + return Version.fromPluginProperties(getClass(), PLUGIN_PROPERTIES, "version", Version.from(0, 0, 0, "unknown")); + } + + @Override + public String getDescription() { + // TODO Insert correct plugin description + return "Description of XmlLookupFunction plugin"; + } + + @Override + public Version getRequiredVersion() { + return Version.fromPluginProperties(getClass(), PLUGIN_PROPERTIES, "graylog.version", Version.from(0, 0, 0, "unknown")); + } + + @Override + public Set getRequiredCapabilities() { + return Collections.emptySet(); + } +} diff --git a/graylog-plugin-function-xmllookupfunction/src/main/java/org/graylog/plugins/custom/XmlLookupFunctionModule.java b/graylog-plugin-function-xmllookupfunction/src/main/java/org/graylog/plugins/custom/XmlLookupFunctionModule.java new file mode 100644 index 0000000..ed8413b --- /dev/null +++ b/graylog-plugin-function-xmllookupfunction/src/main/java/org/graylog/plugins/custom/XmlLookupFunctionModule.java @@ -0,0 +1,61 @@ +/* + * Copyright (C) 2020 Graylog, Inc. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the Server Side Public License, version 1, + * as published by MongoDB, Inc. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * Server Side Public License for more details. + * + * You should have received a copy of the Server Side Public License + * along with this program. If not, see + * . + */ + +package org.graylog.plugins.custom; + +import com.google.inject.Binder; +import com.google.inject.TypeLiteral; +import com.google.inject.multibindings.MapBinder; +import org.graylog.plugins.pipelineprocessor.ast.functions.Function; +import org.graylog2.plugin.PluginConfigBean; +import org.graylog2.plugin.PluginModule; + + + +import java.util.Collections; +import java.util.Set; + +/** + * Extend the PluginModule abstract class here to add you plugin to the system. + */ +public class XmlLookupFunctionModule extends PluginModule { + /** + * Returns all configuration beans required by this plugin. + * + * Implementing this method is optional. The default method returns an empty {@link Set}. + */ + @Override + public Set getConfigBeans() { + return Collections.emptySet(); + } + + @Override + protected void configure() { + addMessageProcessorFunction(XmlLookupFunction.NAME, XmlLookupFunction.class); + } + protected void addMessageProcessorFunction(String name, Class> functionClass) { + addMessageProcessorFunction(binder(), name, functionClass); + } + + public static MapBinder> processorFunctionBinder(Binder binder) { + return MapBinder.newMapBinder(binder, TypeLiteral.get(String.class), new TypeLiteral>() {}); + } + + public static void addMessageProcessorFunction(Binder binder, String name, Class> functionClass) { + processorFunctionBinder(binder).addBinding(name).to(functionClass); + } +} diff --git a/graylog-plugin-function-xmllookupfunction/src/main/java/org/graylog/plugins/custom/XmlLookupFunctionPlugin.java b/graylog-plugin-function-xmllookupfunction/src/main/java/org/graylog/plugins/custom/XmlLookupFunctionPlugin.java new file mode 100644 index 0000000..af5f7cb --- /dev/null +++ b/graylog-plugin-function-xmllookupfunction/src/main/java/org/graylog/plugins/custom/XmlLookupFunctionPlugin.java @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2020 Graylog, Inc. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the Server Side Public License, version 1, + * as published by MongoDB, Inc. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * Server Side Public License for more details. + * + * You should have received a copy of the Server Side Public License + * along with this program. If not, see + * . + */ +package org.graylog.plugins.custom; + +import org.graylog2.plugin.Plugin; +import org.graylog2.plugin.PluginMetaData; +import org.graylog2.plugin.PluginModule; + +import java.util.Collection; +import java.util.Collections; + +/** + * Implement the Plugin interface here. + */ +public class XmlLookupFunctionPlugin implements Plugin { + @Override + public PluginMetaData metadata() { + return new XmlLookupFunctionMetaData(); + } + + @Override + public Collection modules () { + return Collections.singletonList(new XmlLookupFunctionModule()); + } +} diff --git a/graylog-plugin-function-xmllookupfunction/src/main/resources/META-INF/services/org.graylog2.plugin.Plugin b/graylog-plugin-function-xmllookupfunction/src/main/resources/META-INF/services/org.graylog2.plugin.Plugin new file mode 100644 index 0000000..a98bd50 --- /dev/null +++ b/graylog-plugin-function-xmllookupfunction/src/main/resources/META-INF/services/org.graylog2.plugin.Plugin @@ -0,0 +1 @@ +org.graylog.plugins.custom.XmlLookupFunctionPlugin \ No newline at end of file diff --git a/graylog-plugin-function-xmllookupfunction/src/main/resources/org.graylog.plugins.graylog-plugin-function-xmllookupfunction/graylog-plugin.properties b/graylog-plugin-function-xmllookupfunction/src/main/resources/org.graylog.plugins.graylog-plugin-function-xmllookupfunction/graylog-plugin.properties new file mode 100644 index 0000000..63e3eb5 --- /dev/null +++ b/graylog-plugin-function-xmllookupfunction/src/main/resources/org.graylog.plugins.graylog-plugin-function-xmllookupfunction/graylog-plugin.properties @@ -0,0 +1,12 @@ +# The plugin version +version=${project.version} + +# The required Graylog server version +graylog.version=${graylog.version} + +# When set to true (the default) the plugin gets a separate class loader +# when loading the plugin. When set to false, the plugin shares a class loader +# with other plugins that have isolated=false. +# +# Do not disable this unless this plugin depends on another plugin! +isolated=true diff --git a/graylog-plugin-function-xmllookupfunction/src/web/index.jsx b/graylog-plugin-function-xmllookupfunction/src/web/index.jsx new file mode 100644 index 0000000..23fc2f6 --- /dev/null +++ b/graylog-plugin-function-xmllookupfunction/src/web/index.jsx @@ -0,0 +1,26 @@ +import 'webpack-entry'; + +import { PluginManifest, PluginStore } from 'graylog-web-plugin/plugin'; + +import packageJson from '../../package.json'; + +const manifest = new PluginManifest(packageJson, { + /* This is the place where you define which entities you are providing to the web interface. + Right now you can add routes and navigation elements to it. + + Examples: */ + + // Adding a route to /sample, rendering YourReactComponent when called: + + // routes: [ + // { path: '/sample', component: YourReactComponent, permissions: 'inputs:create' }, + // ], + + // Adding an element to the top navigation pointing to /sample named "Sample": + + // navigation: [ + // { path: '/sample', description: 'Sample' }, + // ] +}); + +PluginStore.register(manifest); diff --git a/graylog-plugin-function-xmllookupfunction/target/classes/META-INF/services/org.graylog2.plugin.Plugin b/graylog-plugin-function-xmllookupfunction/target/classes/META-INF/services/org.graylog2.plugin.Plugin new file mode 100644 index 0000000..a98bd50 --- /dev/null +++ b/graylog-plugin-function-xmllookupfunction/target/classes/META-INF/services/org.graylog2.plugin.Plugin @@ -0,0 +1 @@ +org.graylog.plugins.custom.XmlLookupFunctionPlugin \ No newline at end of file diff --git a/graylog-plugin-function-xmllookupfunction/target/classes/org.graylog.plugins.graylog-plugin-function-xmllookupfunction/graylog-plugin.properties b/graylog-plugin-function-xmllookupfunction/target/classes/org.graylog.plugins.graylog-plugin-function-xmllookupfunction/graylog-plugin.properties new file mode 100644 index 0000000..364ac82 --- /dev/null +++ b/graylog-plugin-function-xmllookupfunction/target/classes/org.graylog.plugins.graylog-plugin-function-xmllookupfunction/graylog-plugin.properties @@ -0,0 +1,12 @@ +# The plugin version +version=1.0.0-SNAPSHOT + +# The required Graylog server version +graylog.version=5.1.5 + +# When set to true (the default) the plugin gets a separate class loader +# when loading the plugin. When set to false, the plugin shares a class loader +# with other plugins that have isolated=false. +# +# Do not disable this unless this plugin depends on another plugin! +isolated=true diff --git a/graylog-plugin-function-xmllookupfunction/target/classes/org/graylog/plugins/custom/XmlLookupFunction.class b/graylog-plugin-function-xmllookupfunction/target/classes/org/graylog/plugins/custom/XmlLookupFunction.class new file mode 100644 index 0000000000000000000000000000000000000000..0a35b3b969ac5b22be9143f303940f88c552011c GIT binary patch literal 6107 zcmd5=cX$)$9ezJc^4an+A_9qQLPc3#ps+%)2thVBF~~9jhq3}WOJ^aFbmDXZJ2WM2 zlkPU%ZMvI|bk`w7*h!nFBeYHT-h1z+{jX13`hKUAE!%>+e*8zD$JX6_<2T;l{Jy9D z{pjNWZo=QasDev@TZISJ0^1EU5loocP|8RIv#ER{naKsS$*i7AX7sFS#PnRwFoRmo z3J&BmF)L|sKHQ(POf6=0IU@qqTauZiwN=2?*tD+(H3FVwCY!gs@S;wEs$vf23hbB( zx80hlrFBa;x9ho>nao;-NrsdlnMnxfjgjNpDJ_`NGKt_`doa`#nI%5U+w;j(TsK2C zm@hDYe@`S}s}(46_riw-3a(bMP-@pZ%UlKO;*QFMT{62y#kKGg+%6!Tn-#RF2w{uBsu*1`VHk;&9^`A<$ncR$ z=`kzVolfU1tv{tlk~vGD${1i&mh0Qwf1K+=WhuiMX^KpfYDmhpRmIKN#w?VTxhW@b zrg7T)XBM$nz*<2&bJOG`D8<~aq7z+oGE=wmW~Of_OZ&&l@#sitx!er%^tVIr?_hOfd2zmr+O#Ng&Y3j^^_chKa`IO`jn~7X#niM*vCu_0_b{H8;AGC*$RF^+iC-7dwlnV;H)M0kH1ZBy>x1=FTOKM_1a?bg12n!$`_@ z=Qx=(9%`2`q>xsSQDGqKNOwg8aieWIfz=K#s#2z|6G5lf$AWPtrxL8JWh@#1YSmbl=+6pk0a;UY3fL^43)@6jksMiLv?r?-mc&sD&C0)Ch;yU5~wBbh@MGU z$Lx;3Tkd+diud5XOf*SLPYWz;?4HVkoU5SSO?F*lk|_v>b#>>KTT64O%qG&3o`ok6#CEJ^=bQ&G&z9g4`s zTROkVyl}+v&j0naUFuWD4<;3~lsd^8Wl_up6-t7DGEnL=nr%p~SnwP#AW>J`U;$rb zYhH@0vHHerMaUMGK|GeJCB_;%D}nZks7?1cW_M?lUY1R!1*X?&lAGG9F)mpF?6S?) zy?E%NU$Pa6onVHrZLQ!Z0^4Lz%+yR$UB%ay+$rBGM(R}TgQy}Sa^{{&6XH1gzOuh zgVV%+VysTSGP;Zld-oc7Gp2X3bW`d5lkXYU$h^V?-JQwkrk#f*IEvFoV<}T`6|cG6 zsFy7Q-~9MAJ_CU#`Cf$>-=z=lNSt62J-y(gX#~JjAx}Fx1LhiWWS@8MR0j zU%(gnCGaJ5Q#{FXz+t(31S@-tb=W}VHewma$9XPycoqTpGI_IL@t3^Co!nnTI%g%jmevAxK7nvl z@-2O|xknIf^Y}gP0{Z-(0`@XDcKSQn2=B5XIE-4(&BIslRRR{^ z%-8UBD!rAa`3Am8qouF_-@>;!Mi?BZ^38#XAJDU0lp~HG^39DO zanB}HT_S5mL4$%HEBL8`u>IGou&Ki(;_I0-2cb~WD%nF9?LgOcksSS}#rL|_QM|#0 z=;~3tRj|ogu-Y|>cU55&4+<3Up<$v0E|*T=vp4Og1Kdh2_R#Qsw${x>Vq@B@uyvJw zy#ha{T^x__G$~zq4<*@58~h5tw!>>NeuLlAdULt*clf<+z37;}(J_6aj=t0a zf3U4rM~{)37p*r3u76=JH5Z%y0nhv}W21*4$hcff^<8`_%`z57$3su%3W?-+h$#-| zKXSa5>1aNm{I9{EC}J_OEVVar+Sf3Gk3WoiW$F;N6^ry%l36iC|BSzIt_pv}(|r2) Q=A*s-=C0)x%S!qD4+&x(Hvj+t literal 0 HcmV?d00001 diff --git a/graylog-plugin-function-xmllookupfunction/target/classes/org/graylog/plugins/custom/XmlLookupFunctionMetaData.class b/graylog-plugin-function-xmllookupfunction/target/classes/org/graylog/plugins/custom/XmlLookupFunctionMetaData.class new file mode 100644 index 0000000000000000000000000000000000000000..eef096762af0a6249c6a644bd3a9e789935c9733 GIT binary patch literal 2205 zcma)7U02&i5WR~XBpfFMhcpee#35gX)KW@m(#C|6n2$Pjz_o$)t!Hf(TS1nLw4&i( zwJ$BF5B&lCQ9T{WlC5JaG!N2BvvX(f+?kR7`S-8C0ldV11`|jrNM~^clMFZB@iVTQ z+-mE4&3B?D879{Z%aH2~slw8s3YB5ScG_Co;pe8^)_SJbHY`_bd9Jj(+Rt6HYTGAX zZ`-q4(y*;su&*M+Ff+EPBFixM#_m}8OBX%zc3ipSxp#rIv)40uGA3~pdXK`x7%m}STYiCRMH2lWai z*>VJzf?=^x9ZJxUj$yS+OMO%5T=FIRB#YblltFC^SvI-rGTbbLet~*{v7}&*VU;q8 zcI-;!GkOw;t|7qjQUE*T|eyO7}Cd%-KG2rl}aT^wM)Px;vx!JEMb{p){oQg zliGkI!)d$}eLcrdNw8dY>{9izT@_z2Jl+&;%Q1R>^XBd2{8)+d{Tiy!7^b5!2*u3c zDZW&&lEqh8Ww;gek|zyQFWaU`^F%?ZS5(pM$@7Mw@tTR+Ch#H?HO({X!z7-4jiMGI zY^{2*Q`!BcR^O{_)%Pn~4TjvfA`I8cbgbl-JmjWFU7jx6N3={=4NL5L-KKE%dDA3I zu4=cqdB`2Ze-Djm*)fRpv$%F2-N+?|t287BmT~Hd$`MsNN;sI4aKxws$!V8&iNh2< zz4Bzoc4#hrXuV1wrU(^HAw!1t2EBNf_LC$F9f-wsa*vgkawS7uoO*^Mjs|gV$Bbp( z<4waf{E;DA4Wn&w={ZDkBVrR3Z7uQehH$7a8j?`%gF&?O(mK(}G;GgliEYD|ePOK0 zq9SX42hr!MVp+lohCsLqY79@3vi-n;3hE5`{{s-GAxGT99s15Od`;IJp5q%@zomc1 z1m-bC&-A;X`wOz@v@%++EdL4id*D){yT1)AV2$qCz61Sm*6EGmJ8aP12N!Ae{ZcvQ zH(Dkzgx-%qQv>L$1nAT#w2%mWodCT$3N0o=%h(JFKMe^_=B`~}dKA49Lr)GkZ(%z` zuR{saon8I|w{r8j&r_*X?(PNdUEuL(tmm;m5Sw8Pzwb~UqBz_u@l3l!xY{GW&VNC)!^wZc4^H}ls){2#>Soh0JPX6WB>pF literal 0 HcmV?d00001 diff --git a/graylog-plugin-function-xmllookupfunction/target/classes/org/graylog/plugins/custom/XmlLookupFunctionModule$1.class b/graylog-plugin-function-xmllookupfunction/target/classes/org/graylog/plugins/custom/XmlLookupFunctionModule$1.class new file mode 100644 index 0000000000000000000000000000000000000000..2b2a3cf2496889ef7f0c223325e0ff4d68e840cf GIT binary patch literal 725 zcmbVK&ref95dOBbJX)(L6;Y#!2M@r(jfUW%r3V{PlUFVf;&uDFJQlY*FZ+XpKZ}zI z2mS#5DB`pfPt`;x+4*+9+1;6MGdH(a*8ukLvV|I!GSu5>U|HaGK@(XLl~zmR&U6vw z(M6?m6SY@XV7X_UiG6{k&8_1MD*`*@OIdn#VX2grO{H-`7AZu2==;RxL_bospIi|Q zxgm{{)oLfK>G%`~2q^>}K6z;6CO#kvB`LsL2x zljj1X{I42&3u{!S(w1ATJQX?w@=}E;Pv)|MycgKp?sxlKuyshu7kb}JCB6E?KfF6r z=ZgQ}vnwnGy+RN%wED{bQ$HUu_)_jupbC*#K23w+sJApI`c-CB^EBpc0$ zFLP@_4plWjE3k5)L;Ol13bemDr~SaH5OlyBWIRw)6TEn&7@NG4j5B8YC&VQaHMH1I s)4)eOVBfww!1$1(1|G4mVHJ;O_ylW=b#$Vz|4KW7QvFJd-?FtIghX&pCVdYXAB7&%XiO$G(CT(ph9wT)+&& zlIxk8=^4kiYp!cuJ2Wjv+mnxm+YW8cFjKW0E7)R47fS~UW|7N6Q85RV;qsC3gQ10i zWotFpws|YCT*qga<(+PD+~fhnLa|gItfDDBi%SeEiNtYUUu%Va;C8gHJ9gc5pNHL@ z(2oub+=$xfqeQ z4ad})foD0Uo|viGhVSdbjsjj&@j9-NPluM%<{rZ$DQ=Mr({)XoYnF3FzG&O>zq*K6 z6ufURJSa|Hmq<1_eHL#r5+kU3?bz zJ82iS&O{T49AvoivT!=cvG^~C7r)H#w8wU>F1N|f(+brLKhXM_eXZXEtK}_8{wTSR z6I#)^q$(XSTpM#9MP*Y>GW>czN2i)Fs;_5U!Axt^&u7pZlX9^Ca%<1cLZ#`3UW@No z;+QOsd`hFw->S&YFt^M7puxqtqIy@KI1cwD8}8FLq(D~%@izk|E(`Q~pWZZjGJ0Mp zzX1E41}SXCi-4Q>h{kHP01xnx-l!GOOiBi?#=)5$vcC<*RuZw9IJPF&JVFK^pAy(a zTH@!*h55q86D$l!h|3LdhwdnA39wuYmJzpwn8>#TlBTsv`2<%hD?MBnC}}ArLb;0^ zHYCbYv@%Aa80_G&q@dsvJR!tSDK-)8#n z6niKQJF%G{zd)CZ1_eccy97vAhZwL;Paz^-?m?@Z;O@#F*i7N8VJSN1QB6q6$Cwm( iDkVQ6Ma&GOJf%!~lq-eL@dZ7Flw~w&q{tBsfd2qPz2Hy) literal 0 HcmV?d00001 diff --git a/graylog-plugin-function-xmllookupfunction/target/classes/org/graylog/plugins/custom/XmlLookupFunctionPlugin.class b/graylog-plugin-function-xmllookupfunction/target/classes/org/graylog/plugins/custom/XmlLookupFunctionPlugin.class new file mode 100644 index 0000000000000000000000000000000000000000..a1f3ba77a5d64df29095f1b6fbb7361efcc29744 GIT binary patch literal 901 zcmb7CNl)8A6#j+;9Gp;gO6dj^P|^bWg^H8ANK~jjP8`b&9nTdIu-fwQS{wFk+Yuq>kRYWDunv#6VGGAuyp( zCnA;keH5(QQ%N=K1r^Hwwz!n)F*Fit_K=#*u+#2TImT@L{1n1?Nzq{vT_wn$dP+&t z$1>K!x|DqP|B}}KmtLXKJ0L3m*tj%|j%410C%=tLS<7zj0~=VR>7<{gQLWKV6H4nt zx^dbW?UOIB!LH~qfmK@bXW%Iw(b_5#u!hHUBPoiP;BG+*H16Piy2kVudavTwEBMAQ m{4+eKtXzD5gm2!#Cw%J$GvgH76^iDFV!e>rAQPL#>BSG*FXmVP literal 0 HcmV?d00001 diff --git a/graylog-plugin-function-xmllookupfunction/target/graylog-plugin-function-xmllookupfunction-1.0.0-SNAPSHOT.jar b/graylog-plugin-function-xmllookupfunction/target/graylog-plugin-function-xmllookupfunction-1.0.0-SNAPSHOT.jar new file mode 100644 index 0000000000000000000000000000000000000000..9e0f73937f470a6a71df4e2948ed544e3e9d05c5 GIT binary patch literal 11743 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 ZQ$AIag@k(KeoTo-&>$c!5Bwk?{{!taBPjp? literal 0 HcmV?d00001 diff --git a/graylog-plugin-function-xmllookupfunction/target/maven-archiver/pom.properties b/graylog-plugin-function-xmllookupfunction/target/maven-archiver/pom.properties new file mode 100644 index 0000000..6e1cb39 --- /dev/null +++ b/graylog-plugin-function-xmllookupfunction/target/maven-archiver/pom.properties @@ -0,0 +1,5 @@ +#Generated by Apache Maven +#Fri May 09 12:06:43 EDT 2025 +artifactId=graylog-plugin-function-xmllookupfunction +groupId=org.graylog.plugins +version=1.0.0-SNAPSHOT diff --git a/graylog-plugin-function-xmllookupfunction/target/original-graylog-plugin-function-xmllookupfunction-1.0.0-SNAPSHOT.jar b/graylog-plugin-function-xmllookupfunction/target/original-graylog-plugin-function-xmllookupfunction-1.0.0-SNAPSHOT.jar new file mode 100644 index 0000000000000000000000000000000000000000..dc7e024a84e40ad6933ec4965ce8b5f4199fbb64 GIT binary patch literal 11555 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 P@X#P2VE0J_2+02d)fhWc literal 0 HcmV?d00001 diff --git a/graylog-plugin-function-xmllookupfunction/webpack.config.js b/graylog-plugin-function-xmllookupfunction/webpack.config.js new file mode 100644 index 0000000..2a842e7 --- /dev/null +++ b/graylog-plugin-function-xmllookupfunction/webpack.config.js @@ -0,0 +1,8 @@ +const path = require('path'); +const { PluginWebpackConfig } = require('graylog-web-plugin'); +const { loadBuildConfig } = require('graylog-web-plugin'); + +// Remember to use the same name here and in `getUniqueId()` in the java MetaData class +module.exports = new PluginWebpackConfig(__dirname, 'org.graylog.plugins.custom.XmlLookupFunctionPlugin', loadBuildConfig(path.resolve(__dirname, './build.config')), { + // Here goes your additional webpack configuration. +});