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

Commit 1c58af2

Browse files
committed
1309: checkpoint
1 parent c8cd0e7 commit 1c58af2

File tree

3 files changed

+22
-17
lines changed

3 files changed

+22
-17
lines changed

api/src/main/java/com/stormpath/sdk/client/DefaultPairedApiKey.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,18 +8,16 @@
88
import com.stormpath.sdk.tenant.Tenant;
99

1010
/**
11-
* Created by lhazlewood on 3/9/17.
11+
* For Okta authentication against both the REST API endpoints and the OIDC endpoints.
1212
*/
1313
public class DefaultPairedApiKey implements PairedApiKey {
1414

1515
private final ApiKey primary;
1616
private ApiKey secondary;
1717

18-
public DefaultPairedApiKey(ApiKey primary, ApiKey secondary) {
18+
public DefaultPairedApiKey(ApiKey primary) {
1919
Assert.notNull(primary, "primary ApiKey cannot be null.");
20-
Assert.notNull(secondary, "secondary ApiKey cannot be null.");
2120
this.primary = primary;
22-
this.secondary = secondary;
2321
}
2422

2523
@Override

extensions/spring/boot/stormpath-spring-boot-starter/src/main/java/com/stormpath/spring/boot/autoconfigure/StormpathAutoConfiguration.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@
1919
import com.stormpath.sdk.application.Application;
2020
import com.stormpath.sdk.client.Client;
2121
import com.stormpath.spring.config.AbstractStormpathConfiguration;
22+
import org.springframework.beans.factory.annotation.Autowired;
23+
import org.springframework.beans.factory.annotation.Qualifier;
2224
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
2325
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
2426
import org.springframework.context.annotation.Bean;

extensions/spring/stormpath-spring/src/main/java/com/stormpath/spring/config/AbstractStormpathConfiguration.java

Lines changed: 18 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -26,12 +26,14 @@
2626
import com.stormpath.sdk.client.ClientBuilder;
2727
import com.stormpath.sdk.client.Clients;
2828
import com.stormpath.sdk.client.DefaultPairedApiKey;
29+
import com.stormpath.sdk.client.PairedApiKey;
2930
import com.stormpath.sdk.client.Proxy;
3031
import com.stormpath.sdk.lang.Assert;
3132
import com.stormpath.sdk.lang.Strings;
3233
import com.stormpath.spring.cache.SpringCacheManager;
3334
import org.springframework.beans.factory.BeanCreationException;
3435
import org.springframework.beans.factory.annotation.Autowired;
36+
import org.springframework.beans.factory.annotation.Qualifier;
3537
import org.springframework.beans.factory.annotation.Value;
3638
import org.springframework.cache.CacheManager;
3739
import org.springframework.core.io.Resource;
@@ -110,10 +112,13 @@ public ApiKey stormpathClientApiKey() {
110112
if (oktaEnabled) {
111113
Assert.hasText(oktaApiToken, "When okta.enabled is true, the okta.api.token " +
112114
"property must be specified with a valid Okta API Token value.");
113-
return ApiKeys.builder()
115+
116+
ApiKey primary = ApiKeys.builder()
114117
.setId(baseUrl) //not really necessary, but what the heck, why not
115118
.setSecret(oktaApiToken)
116119
.build();
120+
121+
return new DefaultPairedApiKey(primary);
117122
}
118123

119124
ApiKeyBuilder builder = ApiKeys.builder();
@@ -143,6 +148,17 @@ public ApiKey stormpathClientApiKey() {
143148
return builder.build();
144149
}
145150

151+
@Autowired
152+
public void oktaOidcClientApiKey(@Qualifier("stormpathClientApiKey") ApiKey stormpathClientApiKey) {
153+
154+
//TODO: lookup client credentials
155+
ApiKey secondary = null;
156+
157+
if (oktaEnabled) {
158+
((PairedApiKey)stormpathClientApiKey).setSecondaryApiKey(secondary);
159+
}
160+
}
161+
146162
public Application stormpathApplication() {
147163

148164
Client client = stormpathClient();
@@ -212,16 +228,10 @@ protected Proxy resolveProxy() {
212228
return proxy;
213229
}
214230

215-
public ApiKey oktaOidcClientApiKey() {
216-
//Brian:
217-
return ApiKeys.builder().setId("foo").setSecret("bar").build();
218-
}
219-
220231
public Client stormpathClient() {
221232

222-
ApiKey apiKey = stormpathClientApiKey();
223-
224233
ClientBuilder builder = Clients.builder()
234+
.setApiKey(stormpathClientApiKey())
225235
.setCacheManager(stormpathCacheManager());
226236

227237
if (oktaEnabled) {
@@ -242,11 +252,6 @@ public Client stormpathClient() {
242252
if (append != null) {
243253
baseUrl += append;
244254
}
245-
246-
apiKey = new DefaultPairedApiKey(apiKey, oktaOidcClientApiKey());
247-
248-
} else {
249-
builder.setApiKey(stormpathClientApiKey());
250255
}
251256

252257
if (authenticationScheme != null) {

0 commit comments

Comments
 (0)