211 Commits

Author SHA1 Message Date
Robert Muir
59b4177b95 Mark the slowest slowest tests @BadApple
See elastic/elasticsearch#1007

Original commit: elastic/x-pack-elasticsearch@87ebfb1eab
2015-11-24 14:39:16 -05:00
Ryan Ernst
f3a76118db Merge pull request elastic/elasticsearch#1017 from rjernst/qa/shield_core_rest
Build: Get shield qa test with core rest tests working

Original commit: elastic/x-pack-elasticsearch@0bf9f9ac9f
2015-11-24 08:25:29 -08:00
Ryan Ernst
9da4b6160c Build: Get shield qa test with core rest tests working
This adds back the shield qa rest tests module with gradle. There is
also a small fix in ShieldPlugin for a bug that was discovered around
checking for a custom query cache (which was using the node settings
instead of index settings).

Original commit: elastic/x-pack-elasticsearch@28c6d58f37
2015-11-24 01:05:21 -08:00
Ryan Ernst
5f30602d1a Merge pull request elastic/elasticsearch#1003 from rjernst/maven_cleanup
Build: Remove leftover ant and maven files

Original commit: elastic/x-pack-elasticsearch@a3bdc7917d
2015-11-24 00:54:37 -08:00
Adrien Grand
f8ab6f0fb5 Fix compilation of ShieldIndexSearcherWrapperUnitTests.
The break was introduced in elastic/elasticsearchelastic/elasticsearch#14896.

Original commit: elastic/x-pack-elasticsearch@07810b2d2b
2015-11-24 09:28:28 +01:00
Colin Goodheart-Smithe
0a009e355c [TEST] Provides generics for action in ESUsersRealmTests
Although the build passes on the command line the Eclipse compiler complains that the client.execute() call on line 216 does not have correct arguments because of the lack of generics. This changes adds the generics to the action variable to solve the error in Eclipse. The change is very low risk and should not adversely affect the build on the command line nor in intelliJ IDEA

Original commit: elastic/x-pack-elasticsearch@08f3548556
2015-11-23 11:01:10 +00:00
Ryan Ernst
0a78332c3e Build: Remove leftover ant and maven files
A number of unused files still exist for maven assemblies and ant
integration test overrides. This change removes them. There are still
some files left which need to be examined more, for instance, the shield
overrides ant file.

Original commit: elastic/x-pack-elasticsearch@1d9b277ff0
2015-11-23 00:09:47 -08:00
Robert Muir
f1a9b50e9e Ban write access to system properties
Followup to https://github.com/elastic/elasticsearch/pull/14914

Shield has to request read-write access to all system properties
due to silliness in UnboundID sdk (556a203094/src/com/unboundid/util/Debug.java (L166))

We should followup with a pull request to them, to not use System.getProperties() here which
returns a mutable map (hence: read-write to "*").

Furthermore, the hack has to be wrapped in another hack because gradle doesn't add
shield's plugin metadata to the classpath. Of course, if we weren't testing with two
plugins in the classpath (which is not very realistic) this would be a non-issue.

Original commit: elastic/x-pack-elasticsearch@612cacde6a
2015-11-21 23:01:37 -05:00
jaymode
5b72d1768d test: add throws InterruptedException for InternalTestCluster#beforeTest calls
Original commit: elastic/x-pack-elasticsearch@b89a58a408
2015-11-18 13:48:54 -05:00
jaymode
16848c6043 shield: disable document and field level security by default
This change disables document and field level security by default so that we are able to maintain
bulk update functionality. Users that enable DLS/FLS will not have this functionality. Additionally,
if a user tries to configure DLS/FLS in a role without enabling it, the role will be skipped during
parsing and a log message will be logged at the error level.

See elastic/elasticsearch#938

Original commit: elastic/x-pack-elasticsearch@60c7519092
2015-11-18 08:02:29 -05:00
jaymode
cc2096b4f9 add the option to disable DLS and FLS completely
This commit reverts a previous change where searcher were not wrapped when the RequestContext
could not be found. If DLS/FLS is enabled, which is the default, any bulk request that contains an
update request will not be permitted. This change also exposes the ability to completely disable DLS
and FLS so that users who are not using these features can still use bulk updates.

See elastic/elasticsearch#938

Original commit: elastic/x-pack-elasticsearch@513782db1c
2015-11-17 12:55:26 -05:00
Tanguy Leroux
0b50bbb5e5 Fix compilation errors with org.elasticsearch.cluster.health.ClusterHealthStatus
Original commit: elastic/x-pack-elasticsearch@68988b2163
2015-11-16 15:34:26 +01:00
Martijn van Groningen
46044a4fe0 test: use one IndexSetting instance
Original commit: elastic/x-pack-elasticsearch@1f35455ebe
2015-11-16 12:01:42 +01:00
Martijn van Groningen
101e4ff7ce test: added test that ensures that field data cache is not bypassed for segment and global ordinal caching when field subset reader hides the requested field.
Original commit: elastic/x-pack-elasticsearch@c4864d18ac
2015-11-16 11:38:02 +01:00
Martijn van Groningen
6e482d1a3d shield: Also prohibit update requests inside bulk requests if FLS is enabled.
We do this already for update requests, but this was forgotten to be checked for bulk requests.

Original commit: elastic/x-pack-elasticsearch@8d864a7c98
2015-11-16 05:49:33 +01:00
Lee Hinman
557f0d4f83 Fix compilation for newIndexSettings arity change
Original commit: elastic/x-pack-elasticsearch@f94fabfcc9
2015-11-13 09:35:46 -07:00
jaymode
d74de5acc8 shield: only wrap readers if the RequestContext can be located
Previously, when the RequestContext could not be located a FieldSubsetReader was returned that only
allowed meta fields to be read. This was done for safety in case there was an API missed so we did not
leak data. However, this causes issues because some requests in elasticsearch execute on a different
thread than the one with the RequestContext so we effectively lose this context and prevent access to
the fields in the document. This is especially problematic with update requests, because that means that
fields that aren't included in the updated document will be lost.

This commit removes the wrapping of the readers in this case and adds tests for bulk updates.

Closes elastic/elasticsearch#938

Original commit: elastic/x-pack-elasticsearch@74c8059da0
2015-11-11 13:26:49 -05:00
Martijn van Groningen
39e58b03d5 Fix upstream changes to IndexSearcherWrapper: https://github.com/elastic/elasticsearch/pull/14654
Original commit: elastic/x-pack-elasticsearch@b32ba2ad78
2015-11-10 23:10:04 +07:00
Areek Zillur
dcae5fb5f0 ensure no operation is blocked before initial license notification
closes elastic/elasticsearch#906

update comment

Original commit: elastic/x-pack-elasticsearch@0bd788720f
2015-11-09 11:31:06 -05:00
Simon Willnauer
ad2835f6d3 Fix API usage after index-level guice was removed
See https://github.com/elastic/elasticsearch/pull/14518

Original commit: elastic/x-pack-elasticsearch@2428ee47c2
2015-11-05 13:18:58 +01:00
Robert Muir
5311da746b Add jimfs as shield test dep and conditionalize file permissions changing in tests.
See elastic/elasticsearch#928 for followup work

Original commit: elastic/x-pack-elasticsearch@d435cf9000
2015-11-04 14:25:20 -05:00
Daniel Mitterdorfer
081ffbeced Allow System#exit() from command line tools
This commit adds SuppressForbidden annotations to command line tools to
still allow to call System#exit() (see also issue 12596 in ES core).

Original commit: elastic/x-pack-elasticsearch@1dd3f1dcb1
2015-11-04 14:54:27 +01:00
Martijn van Groningen
b7b9fa3ba5 fixed shield due to the IndexQueryParseService removal change
Original commit: elastic/x-pack-elasticsearch@ad826b9245
2015-11-04 13:10:42 +07:00
Martijn van Groningen
8fe5a03aae fixed compile error by removing unused imports
Original commit: elastic/x-pack-elasticsearch@59384c6a10
2015-11-04 11:39:19 +07:00
javanna
e6409ea171 [TEST] resolve compile error due to upstream changes
Original commit: elastic/x-pack-elasticsearch@b16c56ae6a
2015-10-31 10:31:54 +01:00
Lee Hinman
52cfa2b6ed [TEST] Fix IndexPrivilegeTests for the _optimize removal
Original commit: elastic/x-pack-elasticsearch@cc1a8b94d4
2015-10-29 16:39:03 -06:00
Simon Willnauer
70ed74cd7d Make sure license plugins classes are loaded before we can instantiate them
Original commit: elastic/x-pack-elasticsearch@c46fd7287e
2015-10-27 23:23:44 +01:00
Simon Willnauer
3639465760 remove useless @Inject annoation to make sure nobody loads this in anger
Original commit: elastic/x-pack-elasticsearch@418381665c
2015-10-27 14:31:31 +01:00
Simon Willnauer
c132e55020 Use official public API to register query cache and index searcher wrapper
Closes elastic/elasticsearch#794

Original commit: elastic/x-pack-elasticsearch@eb94fbd145
2015-10-27 14:20:26 +01:00
Simon Willnauer
6b742a0d60 fix tests - don't mock BitSetFilterCache
Original commit: elastic/x-pack-elasticsearch@ad9a507415
2015-10-27 12:24:04 +01:00
Simon Willnauer
2cb0cbf62a Cut over to IndexModule to register query cache
This commit cuts over to the new query cache registry in IndexModule added in
https://github.com/elastic/elasticsearch/pull/14293

Original commit: elastic/x-pack-elasticsearch@4d56584b01
2015-10-27 12:04:37 +01:00
jaymode
32af9610dd do not use the cache methods for loading entries into the user cache
The cache provides a get method with a callable to load the value into the cache. Our callable
performs authentication and then returns a value. The issue with this is that the cache will queue
concurrent calls if a value is already being loaded and return the result to all callers. This is
problematic since the key is only the username and we do not validate the credentials as part of
the get call. This means it is possible for valid credentials to be returned a null user and authentication
fails.

Additionally, another variant exists where it is possible for invalid credentials to be returned a valid
user, which allows an attacker to gain access by only knowing a username and issuing a large number
of concurrent requests.

Closes elastic/elasticsearch#860

Original commit: elastic/x-pack-elasticsearch@3d122d3bbb
2015-10-26 09:44:00 -04:00
jaymode
6850cb051d fix compile errors due to upstream changes in EngineConfig
Original commit: elastic/x-pack-elasticsearch@c2f24707a9
2015-10-26 09:09:10 -04:00
Simon Willnauer
eee2718b05 Move over to new IndexSettings
This change applied the changed from https://github.com/elastic/elasticsearch/pull/14251

Original commit: elastic/x-pack-elasticsearch@c19a0a23e9
2015-10-23 12:05:25 +02:00
javanna
93065acf59 Remove references to search/exists that was deleted in core
Original commit: elastic/x-pack-elasticsearch@f1da798028
2015-10-21 18:30:30 +02:00
Lee Hinman
bfdf01131c [TESTS] Rename optimize to forcemerge for internal transport action
Original commit: elastic/x-pack-elasticsearch@4fca4fe3cb
2015-10-20 23:04:32 -06:00
Nik Everett
8231e856c2 Remove and ban @Test
Original commit: elastic/x-pack-elasticsearch@02425ca13d
2015-10-20 18:20:46 -04:00
javanna
baa36f7bae adapt to upstream java count api removal
Original commit: elastic/x-pack-elasticsearch@ea6c53b88e
2015-10-19 15:10:59 +02:00
Colin Goodheart-Smithe
4cd02142a2 fixes for compile errors due to search request refactoring in core
Original commit: elastic/x-pack-elasticsearch@8808789912
2015-10-16 08:18:20 +01:00
Tanguy Leroux
4dd5bfe0e7 Shield: Fix compilation error in IndexAuditTrailTests
Original commit: elastic/x-pack-elasticsearch@744d133fc4
2015-10-16 08:52:15 +02:00
Areek Zillur
ae552efc3c [license] simplify Licensee interface
Currently, Licensee#onChange is called with a license and its status, It would be
cleaner if it accepted the license's operationMode and status as parameters instead.
This hides the license responsible for the notification from the consumer plugins and only
provides the license information used by the commercial plugins to turn features on via
operationMode and status to act on whether the current license is enabled, in
grace_period or disabled.

Original commit: elastic/x-pack-elasticsearch@b0ea7ec32b
2015-10-15 17:57:54 -04:00
Jason Tedor
a0b9d424e6 Reflect upstream changes to o.e.c.m.IndexMetaData
This commit reflects some upstream method removals from
o.e.c.m.IndexMetaData.

Original commit: elastic/x-pack-elasticsearch@74b25628dc
2015-10-14 21:05:35 -04:00
jaymode
05befa5ebb test: start at 0 instead of 1
In the test we always create at least one type_ factory but the test incorrectly used type_1
as the first, when it should have been type_0

Original commit: elastic/x-pack-elasticsearch@e4128cbc26
2015-10-14 17:23:25 -04:00
jaymode
f19e68ecb8 shield: only enable custom realms with a platinum or trial license
In elastic/elasticsearch#788, the enabling and disabling of features was added for shield, but custom realms were not
being enabled/disabled based on license type. This commit adds that functionality.

Relates to elastic/elasticsearch#689

Original commit: elastic/x-pack-elasticsearch@625c3ef18a
2015-10-14 15:29:53 -04:00
Alexander Reelsen
b927fd08bc Watcher: Adhere to new licensing requirements
* Basic license equlas disabling
* trial/gold/platinum: everything is allowed
* On expiry: actions of watches do not execute, PUT/GET on watches is disabled

Closes elastic/elasticsearch#688

Original commit: elastic/x-pack-elasticsearch@7017c62136
2015-10-14 17:59:09 +02:00
jaymode
6dbad15e56 always sign messages when message signing is enabled
This change allows for messages to be signed when message signing is enabled and a system
key is not present. This is accomplished by generating a random key on startup and then using
HKDF with HmacSHA1 to generate the keying material to be used to sign the messages. The random
key from the originating node is added to the signed message so that the signing key can be
derived on the receiving node.

When a system key is present, the system key is used for signing and the preexisting behavior
is maintained.

Closes elastic/elasticsearch#711

Original commit: elastic/x-pack-elasticsearch@c41fdc0ac3
2015-10-14 06:44:22 -04:00
Simon Willnauer
baa06fb6fb Delegate CoreCacheKey for all reader wrappers
This change removes obsolete forbidden API usage, cuts over
from an interface to an abstract class for IndexSearcherWrapper and
delegates all core cache keys to the wrapped reader.

Relates to elastic/elasticsearch#774

Original commit: elastic/x-pack-elasticsearch@3799bab0d9
2015-10-14 10:29:47 +02:00
jaymode
b698cde334 make AbstractLicenseeComponents compatible with the found license plugin
Original commit: elastic/x-pack-elasticsearch@6b664d3956
2015-10-13 14:42:37 -04:00
jaymode
28948f8930 shield: enable and disable features based on license type
Shield now supports the ability to disable or enable individual features based on the type of
license that is currently installed. The change replaces the LicenseService in shield with a
ShieldLicensee that is notified on changes to the license. The ShieldLicensee then updates
a ShieldLicenseState object, which contains the logic and methods to check for features being
enabled or disabled. The ShieldLicenseState object is used by consumers to check the status
of a feature. The decoupling of the feature enablement from the ShieldLicensee class was done
to work around circular dependency issues.

Closes elastic/elasticsearch#689

Original commit: elastic/x-pack-elasticsearch@442514496d
2015-10-13 10:57:19 -04:00
Martijn van Groningen
72c015f82e DLS: Use the cache keys of the wrapped reader instead of the document subset reader itself.
Original commit: elastic/x-pack-elasticsearch@14ff21cc5b
2015-10-11 22:12:36 +02:00