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

Commit

Permalink
issue 877 - setRequestAuthenticator removed from ClientBuilder, now o…
Browse files Browse the repository at this point in the history
…nly available on DefaultClientBuilder. since javadoc added to credentials providers etc
  • Loading branch information
iancorcoran committed Aug 24, 2016
1 parent 50bd6e4 commit f3546af
Show file tree
Hide file tree
Showing 15 changed files with 73 additions and 22 deletions.
8 changes: 0 additions & 8 deletions api/src/main/java/com/stormpath/sdk/client/ClientBuilder.java
Expand Up @@ -350,14 +350,6 @@ public interface ClientBuilder {
*/
ClientBuilder setBaseUrl(String baseUrl);

/**
* Sets the request authentication factory for the client to use. It is not recommended to use this setting.
* @param factory the request authenticator factory to use.
* @return the ClientBuilder instance for method chaining
* @since 1.0.4
*/
ClientBuilder setRequestAuthenticatorFactory(Object factory);

/**
* Constructs a new {@link Client} instance based on the ClientBuilder's current configuration state.
*
Expand Down
Expand Up @@ -99,8 +99,6 @@ public class HttpClientRequestExecutor implements RequestExecutor {

private HttpClientRequestFactory httpClientRequestFactory;

private final RequestAuthenticatorFactory requestAuthenticatorFactory;

//doesn't need to be SecureRandom: only used in backoff strategy, not for crypto:
private final Random random = new Random();

Expand Down Expand Up @@ -146,11 +144,11 @@ public HttpClientRequestExecutor(ClientCredentials clientCredentials, Proxy prox
Assert.notNull(clientCredentials, "clientCredentials argument is required.");
Assert.isTrue(connectionTimeout >= 0, "Timeout cannot be a negative number.");

this.requestAuthenticatorFactory = (requestAuthenticatorFactory != null)
RequestAuthenticatorFactory factory = (requestAuthenticatorFactory != null)
? requestAuthenticatorFactory
: new DefaultRequestAuthenticatorFactory();

this.requestAuthenticator = this.requestAuthenticatorFactory.create(authenticationScheme, clientCredentials);
this.requestAuthenticator = factory.create(authenticationScheme, clientCredentials);

this.httpClientRequestFactory = new HttpClientRequestFactory();

Expand Down
@@ -1,22 +1,25 @@
package com.stormpath.sdk.impl.http.httpclient

import com.stormpath.sdk.account.Account
import com.stormpath.sdk.api.ApiKey
import com.stormpath.sdk.client.AuthenticationScheme
import com.stormpath.sdk.client.ClientIT
import com.stormpath.sdk.http.HttpMethod
import com.stormpath.sdk.impl.api.ClientApiKey
import com.stormpath.sdk.impl.authc.credentials.ApiKeyCredentials
import com.stormpath.sdk.impl.authc.credentials.ClientCredentials
import com.stormpath.sdk.impl.client.DefaultClientBuilder
import com.stormpath.sdk.impl.http.Response
import com.stormpath.sdk.impl.http.authc.BasicRequestAuthenticator
import com.stormpath.sdk.impl.http.authc.RequestAuthenticator
import com.stormpath.sdk.impl.http.authc.RequestAuthenticatorFactory
import com.stormpath.sdk.impl.http.support.DefaultRequest
import com.stormpath.sdk.oauth.Authenticators
import com.stormpath.sdk.oauth.OAuthRequests
import com.stormpath.sdk.oauth.OAuthPasswordGrantRequestAuthentication
import com.stormpath.sdk.oauth.OAuthRequests
import org.testng.annotations.Test

import java.util.concurrent.Callable
import java.util.concurrent.ExecutorService
import java.util.concurrent.Executors
import java.util.concurrent.Future
import java.util.concurrent.TimeUnit
import java.util.concurrent.*

import static org.testng.Assert.assertEquals
import static org.testng.Assert.assertNotNull
Expand Down Expand Up @@ -69,4 +72,30 @@ class HttpClientRequestExecutorIT extends ClientIT {
def response = task.get(500, TimeUnit.MILLISECONDS)
assertEquals response.getHttpStatus(), 200
}

@Test
void testConfigureRequestAuthenticatorFactory(){

def id = UUID.randomUUID().toString()
def secret = UUID.randomUUID().toString()

ApiKey apiKey = new ClientApiKey(id, secret)
def creds = new ApiKeyCredentials(apiKey)
def requestAuthenticator = new BasicRequestAuthenticator(creds)

def requestAuthenticatorFactory = new RequestAuthenticatorFactory() {
@Override
RequestAuthenticator create(AuthenticationScheme scheme, ClientCredentials clientCredentials) {
return requestAuthenticator
}
}

def builder = new DefaultClientBuilder()
builder.setClientCredentials(creds)
builder.setRequestAuthenticatorFactory(requestAuthenticatorFactory)
def testClient = builder.build()

assertEquals(testClient.dataStore.requestExecutor.requestAuthenticator, requestAuthenticator)
}

}
Expand Up @@ -25,6 +25,9 @@
import java.io.*;
import java.util.Properties;

/**
* @since 1.0.4
*/
public abstract class AbstractApiKeyCredentialsProvider implements ClientCredentialsProvider {

public static final String DEFAULT_API_KEY_PROPERTIES_FILE_LOCATION =
Expand Down
Expand Up @@ -18,6 +18,9 @@
import com.stormpath.sdk.api.ApiKey;
import com.stormpath.sdk.lang.Assert;

/**
* @since 1.0.4
*/
public class ApiKeyCredentials implements ClientCredentials {

private ApiKey apiKey;
Expand Down
Expand Up @@ -23,6 +23,9 @@
import java.io.Reader;
import java.util.Properties;

/**
* @since 1.0.4
*/
public class ApiKeyFileCredentialsProvider extends AbstractApiKeyCredentialsProvider {

private static final Logger log = LoggerFactory.getLogger(ApiKeyFileCredentialsProvider.class);
Expand Down
Expand Up @@ -15,6 +15,9 @@
*/
package com.stormpath.sdk.impl.authc.credentials;

/**
* @since 1.0.4
*/
public interface ClientCredentialsProvider {

ClientCredentials getClientCredentials();
Expand Down
Expand Up @@ -21,6 +21,9 @@
import java.util.ArrayList;
import java.util.List;

/**
* @since 1.0.4
*/
public abstract class ClientCredentialsProviderChain implements ClientCredentialsProvider {

private static final Logger log = LoggerFactory.getLogger(ClientCredentialsProviderChain.class);
Expand Down
Expand Up @@ -21,6 +21,9 @@

import java.util.Properties;

/**
* @since 1.0.4
*/
public class ConfigurationCredentialsProvider extends AbstractApiKeyCredentialsProvider {

private ClientConfiguration clientConfiguration;
Expand Down
Expand Up @@ -18,6 +18,9 @@
import com.stormpath.sdk.impl.config.ClientConfiguration;
import com.stormpath.sdk.lang.Assert;

/**
* @since 1.0.4
*/
public class DefaultClientCredentialsProviderChain extends ClientCredentialsProviderChain {

public DefaultClientCredentialsProviderChain(ClientConfiguration clientConfiguration) {
Expand Down
Expand Up @@ -19,6 +19,9 @@

import java.util.Properties;

/**
* @since 1.0.4
*/
public class EnvironmentVariableCredentialsProvider extends AbstractApiKeyCredentialsProvider {

private static final String API_KEY_ID_ENVIRONMENT_VARIABLE = "STORMPATH_API_KEY_ID";
Expand Down
Expand Up @@ -23,6 +23,9 @@
import java.io.Reader;
import java.util.Properties;

/**
* @since 1.0.4
*/
public class EnvironmentVariableFileCredentialsProvider extends AbstractApiKeyCredentialsProvider {

private static final Logger log = LoggerFactory.getLogger(EnvironmentVariableFileCredentialsProvider.class);
Expand Down
Expand Up @@ -19,6 +19,9 @@

import java.util.Properties;

/**
* @since 1.0.4
*/
public class SystemPropertiesApiKeyCredentialsProvider extends AbstractApiKeyCredentialsProvider {

private static final String API_KEY_ID_SYSTEM_PROPERTY = "stormpath.client.apiKey.id";
Expand Down
Expand Up @@ -23,6 +23,9 @@
import java.io.Reader;
import java.util.Properties;

/**
* @since 1.0.4
*/
public class SystemPropertyFileCredentialsProvider extends AbstractApiKeyCredentialsProvider {

private static final Logger log = LoggerFactory.getLogger(SystemPropertyFileCredentialsProvider.class);
Expand Down
Expand Up @@ -230,10 +230,9 @@ public ClientBuilder setConnectionTimeout(int timeout) {
return this;
}

@Override
public ClientBuilder setRequestAuthenticatorFactory(Object factory) {
Assert.isInstanceOf(RequestAuthenticatorFactory.class, factory);
this.clientConfig.setRequestAuthenticatorFactory((RequestAuthenticatorFactory) factory);
public ClientBuilder setRequestAuthenticatorFactory(RequestAuthenticatorFactory factory) {
Assert.notNull(factory, "factory argument cannot be null");
this.clientConfig.setRequestAuthenticatorFactory(factory);
return this;
}

Expand Down

0 comments on commit f3546af

Please sign in to comment.