Skip to content
This repository has been archived by the owner on Jan 12, 2024. It is now read-only.

Commit

Permalink
Merge pull request #21 from Nike-Inc/feature/add_client_version_heade…
Browse files Browse the repository at this point in the history
…r_to_all_calls

Add client version header to all HTTP calls
  • Loading branch information
sdford authored Jul 19, 2017
2 parents acd857a + 4d1cc27 commit 3d35373
Show file tree
Hide file tree
Showing 4 changed files with 48 additions and 6 deletions.
2 changes: 1 addition & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,6 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
version=2.3.0
version=2.4.0
groupId=com.nike
artifactId=cerberus-client
2 changes: 1 addition & 1 deletion gradle/dependencies.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ repositories {
}

def AWS_SDK_VERSION = '1.11.123'
def VAULT_CLIENT_COORDINATES = "com.nike:vault-client:1.3.0"
def VAULT_CLIENT_COORDINATES = "com.nike:vault-client:1.5.0"

//noinspection GroovyAssignabilityCheck
dependencies {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,9 @@
import com.nike.vault.client.VaultClientFactory;
import com.nike.vault.client.auth.VaultCredentialsProviderChain;

import java.util.HashMap;
import java.util.Map;

/**
* Client factory for creating a Vault client with a URL resolver and credentials provider specific to Cerberus.
*/
Expand All @@ -36,8 +39,13 @@ public final class DefaultCerberusClientFactory {
* @return Vault client
*/
public static VaultClient getClient() {
return VaultClientFactory.getClient(new DefaultCerberusUrlResolver(),
new DefaultCerberusCredentialsProviderChain());
final Map<String, String> defaultHeaders = new HashMap<>();
defaultHeaders.put(ClientVersion.CERBERUS_CLIENT_HEADER, ClientVersion.getClientHeaderValue());

return VaultClientFactory.getClient(
new DefaultCerberusUrlResolver(),
new DefaultCerberusCredentialsProviderChain(),
defaultHeaders);
}

/**
Expand All @@ -49,11 +57,16 @@ public static VaultClient getClient() {
* @return Vault client
*/
public static VaultClient getClientForLambda(final String invokedFunctionArn) {
final Map<String, String> defaultHeaders = new HashMap<>();
defaultHeaders.put(ClientVersion.CERBERUS_CLIENT_HEADER, ClientVersion.getClientHeaderValue());

final DefaultCerberusUrlResolver urlResolver = new DefaultCerberusUrlResolver();
return VaultClientFactory.getClient(urlResolver,
return VaultClientFactory.getClient(
urlResolver,
new VaultCredentialsProviderChain(
new EnvironmentCerberusCredentialsProvider(),
new SystemPropertyCerberusCredentialsProvider(),
new LambdaRoleVaultCredentialsProvider(urlResolver, invokedFunctionArn)));
new LambdaRoleVaultCredentialsProvider(urlResolver, invokedFunctionArn)),
defaultHeaders);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
package com.nike.cerberus.client;

import com.nike.vault.client.VaultClient;
import org.junit.Test;

import static org.junit.Assert.assertEquals;

/**
* Tests the DefaultCerberusClientFactory class
*/
public class DefaultCerberusClientFactoryTest {

@Test
public void test_that_getClient_adds_client_version_as_a_default_header() {
VaultClient result = DefaultCerberusClientFactory.getClient();
assertEquals(
ClientVersion.getClientHeaderValue(),
result.getDefaultHeaders().get(ClientVersion.CERBERUS_CLIENT_HEADER));
}

@Test
public void test_that_getClientForLambda_adds_client_version_as_a_default_header() {
VaultClient result = DefaultCerberusClientFactory.getClientForLambda("arn:aws:lambda:us-west-2:000000000000:function:name:qualifier");
assertEquals(
ClientVersion.getClientHeaderValue(),
result.getDefaultHeaders().get(ClientVersion.CERBERUS_CLIENT_HEADER));
}

}

0 comments on commit 3d35373

Please sign in to comment.