-
Notifications
You must be signed in to change notification settings - Fork 24.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Wrap getCredentials() in a doPrivileged() block #23297
Conversation
This commit fixes an issue that was missed in elastic#22534. `AWSCredentialsProvider.getCredentials()` appears to potentially open a socket connect. This operation needed to be wrapped in `doPrivileged()`. This should fix issue elastic#23271.
Hrm, that is not the only place |
I adjusted the PR to reflect @rjernst's review. |
return new AWSCredentialsProvider() { | ||
@Override | ||
public AWSCredentials getCredentials() { | ||
return SocketAccess.doPrivileged(credentials::getCredentials); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We only need this for the instance profile credentials. The rest are read and created statically, so definitely do not require socket access.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
This is fallout from elastic#23297. That commit wrapped `InstanceProfileCredentialsProvider` to ensure that the `getCredentials` and `refresh` methods had privileged access. However, it looks like there was a test ensuring that `buildCredentials` returned the correct clazz type. This commit adjusts that test to check that the correct wrapper is returned.
This is fallout from #23297. That commit wrapped `InstanceProfileCredentialsProvider` to ensure that the `getCredentials` and `refresh` methods had privileged access. However, it looks like there was a test ensuring that `buildCredentials` returned the correct clazz type. This commit adjusts that test to check that the correct wrapper is returned.
* master: (54 commits) Keep the pipeline handler queue small initially Do not create String instances in 'Strings' methods accepting StringBuilder (elastic#22907) Tests: fix AwsS3ServiceImplTests Remove abstract InternalMetricsAggregation class (elastic#23326) Add BulkRequest support to High Level Rest client (elastic#23312) Wrap getCredentials() in a doPrivileged() block (elastic#23297) Respect promises on pipelined responses Align REST specs for HEAD requests Remove unnecessary result sorting in SearchPhaseController (elastic#23321) Fix SamplerAggregatorTests to have stable and predictable docIds Tests: Ensure multi node integ tests wait on first node Relocate a comment in HttpPipeliningHandler Add comments to HttpPipeliningHandler [TEST] Fix incorrect test cluster name in cluster health doc tests Build: Change location in zip of license and notice inclusion for plugins (elastic#23316) Script: Fix value of `ctx._now` to be current epoch time in milliseconds (elastic#23175) Build: Rework integ test setup and shutdown to ensure stop runs when desired (elastic#23304) Handle long overflow when adding paths' totals Don't set local node on cluster state used for node join validation (elastic#23311) Ensure that releasing listener is called ...
This commit fixes an issue that was missed in #22534.
AWSCredentialsProvider.getCredentials()
appears to potentially open asocket connect. This operation needed to be wrapped in
doPrivileged()
.This should fix issue #23271.