mirror of
https://github.com/honeymoose/OpenSearch.git
synced 2025-02-10 06:55:32 +00:00
This adds the extension points necessary to enable a user to write a elasticsearch plugin that can integrate with Shield and add a custom authentication realm. For the most part, the work here just exposes the existing interfaces we have been using for Realms and factories to create realms. An additional interface was added to allow for a custom authentication failure handler to be used. This was needed to support use cases like SSO and Kerberos where additional headers may need to be sent to the user or a different HTTP response code would need to be sent. Relates to elastic/elasticsearch#24 Original commit: elastic/x-pack-elasticsearch@13442e5919
332 lines
12 KiB
XML
332 lines
12 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
|
|
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
|
<modelVersion>4.0.0</modelVersion>
|
|
|
|
<groupId>org.elasticsearch.qa</groupId>
|
|
<artifactId>x-plugins-qa</artifactId>
|
|
<packaging>pom</packaging>
|
|
<name>QA: Parent POM</name>
|
|
<inceptionYear>2015</inceptionYear>
|
|
|
|
<parent>
|
|
<groupId>org.elasticsearch.plugin</groupId>
|
|
<artifactId>x-plugins</artifactId>
|
|
<version>2.1.0-SNAPSHOT</version>
|
|
</parent>
|
|
|
|
<properties>
|
|
<!-- we aren't really a plugin... -->
|
|
<!-- TODO: its just the plugin props check we really should disable -->
|
|
<enforcer.skip>true</enforcer.skip>
|
|
</properties>
|
|
|
|
<dependencies>
|
|
<!-- elasticsearch and its test framework -->
|
|
<dependency>
|
|
<groupId>org.hamcrest</groupId>
|
|
<artifactId>hamcrest-all</artifactId>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.lucene</groupId>
|
|
<artifactId>lucene-test-framework</artifactId>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.elasticsearch</groupId>
|
|
<artifactId>elasticsearch</artifactId>
|
|
<type>test-jar</type>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
|
|
<!-- Provided dependencies by elasticsearch itself -->
|
|
<dependency>
|
|
<groupId>org.elasticsearch</groupId>
|
|
<artifactId>elasticsearch</artifactId>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.lucene</groupId>
|
|
<artifactId>lucene-core</artifactId>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.lucene</groupId>
|
|
<artifactId>lucene-backward-codecs</artifactId>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.lucene</groupId>
|
|
<artifactId>lucene-analyzers-common</artifactId>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.lucene</groupId>
|
|
<artifactId>lucene-queries</artifactId>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.lucene</groupId>
|
|
<artifactId>lucene-memory</artifactId>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.lucene</groupId>
|
|
<artifactId>lucene-highlighter</artifactId>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.lucene</groupId>
|
|
<artifactId>lucene-queryparser</artifactId>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.lucene</groupId>
|
|
<artifactId>lucene-suggest</artifactId>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.lucene</groupId>
|
|
<artifactId>lucene-join</artifactId>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.lucene</groupId>
|
|
<artifactId>lucene-spatial</artifactId>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.lucene</groupId>
|
|
<artifactId>lucene-expressions</artifactId>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>com.spatial4j</groupId>
|
|
<artifactId>spatial4j</artifactId>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>com.vividsolutions</groupId>
|
|
<artifactId>jts</artifactId>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>com.github.spullara.mustache.java</groupId>
|
|
<artifactId>compiler</artifactId>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>com.google.guava</groupId>
|
|
<artifactId>guava</artifactId>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>com.carrotsearch</groupId>
|
|
<artifactId>hppc</artifactId>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>joda-time</groupId>
|
|
<artifactId>joda-time</artifactId>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.joda</groupId>
|
|
<artifactId>joda-convert</artifactId>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>com.fasterxml.jackson.core</groupId>
|
|
<artifactId>jackson-core</artifactId>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>com.fasterxml.jackson.dataformat</groupId>
|
|
<artifactId>jackson-dataformat-smile</artifactId>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>com.fasterxml.jackson.dataformat</groupId>
|
|
<artifactId>jackson-dataformat-yaml</artifactId>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>com.fasterxml.jackson.dataformat</groupId>
|
|
<artifactId>jackson-dataformat-cbor</artifactId>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>io.netty</groupId>
|
|
<artifactId>netty</artifactId>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>com.ning</groupId>
|
|
<artifactId>compress-lzf</artifactId>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>com.tdunning</groupId>
|
|
<artifactId>t-digest</artifactId>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>commons-cli</groupId>
|
|
<artifactId>commons-cli</artifactId>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.codehaus.groovy</groupId>
|
|
<artifactId>groovy-all</artifactId>
|
|
<classifier>indy</classifier>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>log4j</groupId>
|
|
<artifactId>log4j</artifactId>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>log4j</groupId>
|
|
<artifactId>apache-log4j-extras</artifactId>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.slf4j</groupId>
|
|
<artifactId>slf4j-api</artifactId>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>net.java.dev.jna</groupId>
|
|
<artifactId>jna</artifactId>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
|
|
<!-- Required by the REST test framework -->
|
|
<!-- TODO: remove this dependency when we will have a REST Test module -->
|
|
<dependency>
|
|
<groupId>org.apache.httpcomponents</groupId>
|
|
<artifactId>httpclient</artifactId>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
</dependencies>
|
|
|
|
<!-- typical layout -->
|
|
<build>
|
|
<resources>
|
|
<resource>
|
|
<directory>src/main/resources</directory>
|
|
<filtering>true</filtering>
|
|
<includes>
|
|
<include>**/*.properties</include>
|
|
</includes>
|
|
</resource>
|
|
</resources>
|
|
|
|
<testResources>
|
|
<testResource>
|
|
<directory>src/test/java</directory>
|
|
<includes>
|
|
<include>**/*.json</include>
|
|
<include>**/*.txt</include>
|
|
</includes>
|
|
</testResource>
|
|
<testResource>
|
|
<directory>src/test/resources</directory>
|
|
<excludes>
|
|
<exclude>elasticsearch.yml</exclude>
|
|
<exclude>**/*.properties</exclude>
|
|
</excludes>
|
|
</testResource>
|
|
<testResource>
|
|
<directory>src/test/resources</directory>
|
|
<filtering>true</filtering>
|
|
<includes>
|
|
<include>elasticsearch.yml</include>
|
|
<include>**/*.properties</include>
|
|
</includes>
|
|
</testResource>
|
|
<!-- REST API specification and test suites -->
|
|
<testResource>
|
|
<directory>${project.basedir}/rest-api-spec</directory>
|
|
<filtering>true</filtering>
|
|
<targetPath>rest-api-spec</targetPath>
|
|
<includes>
|
|
<include>api/*.json</include>
|
|
<include>test/**/*.yaml</include>
|
|
</includes>
|
|
</testResource>
|
|
<!-- REST API specifications copied from main Elasticsearch specs
|
|
because they are required to execute the REST tests in here -->
|
|
<testResource>
|
|
<directory>${elasticsearch.tools.directory}/rest-api-spec</directory>
|
|
<targetPath>rest-api-spec</targetPath>
|
|
<includes>
|
|
<!-- required by the test framework -->
|
|
<include>api/info.json</include>
|
|
<include>api/cluster.health.json</include>
|
|
<include>api/cluster.state.json</include>
|
|
<!-- used in plugin REST tests -->
|
|
<include>api/index.json</include>
|
|
<include>api/get.json</include>
|
|
<include>api/update.json</include>
|
|
<include>api/search.json</include>
|
|
<include>api/indices.analyze.json</include>
|
|
<include>api/indices.create.json</include>
|
|
<include>api/indices.refresh.json</include>
|
|
<include>api/nodes.info.json</include>
|
|
<include>api/count.json</include>
|
|
</includes>
|
|
</testResource>
|
|
<!-- shared test resources like log4j.properties -->
|
|
<testResource>
|
|
<directory>${elasticsearch.tools.directory}/shared-test-resources</directory>
|
|
<filtering>false</filtering>
|
|
</testResource>
|
|
</testResources>
|
|
|
|
<pluginManagement>
|
|
<plugins>
|
|
<plugin>
|
|
<groupId>com.carrotsearch.randomizedtesting</groupId>
|
|
<artifactId>junit4-maven-plugin</artifactId>
|
|
<executions>
|
|
<execution>
|
|
<id>integ-tests</id>
|
|
<configuration>
|
|
<!-- currently only 1 cpu works, because integ tests don't make "unique" test directories? -->
|
|
<parallelism>1</parallelism>
|
|
<systemProperties>
|
|
<!-- use external cluster -->
|
|
<tests.cluster>127.0.0.1:${integ.transport.port}</tests.cluster>
|
|
</systemProperties>
|
|
</configuration>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
</plugins>
|
|
</pluginManagement>
|
|
</build>
|
|
|
|
<modules>
|
|
<module>smoke-test-plugins</module>
|
|
<!-- Disabled until 'openssl' is available on the Windows build machines
|
|
<module>smoke-test-plugins-ssl</module>-->
|
|
<module>shield-core-rest-tests</module>
|
|
<module>smoke-test-watcher-with-shield</module>
|
|
<module>shield-example-realm</module>
|
|
</modules>
|
|
|
|
<profiles>
|
|
<profile>
|
|
<id>deploy-public</id>
|
|
<properties>
|
|
<deploy.skip>true</deploy.skip>
|
|
</properties>
|
|
</profile>
|
|
</profiles>
|
|
</project>
|