Skip to content

Commit

Permalink
upgrade to openapi v2.0.0 (#380)
Browse files Browse the repository at this point in the history
  • Loading branch information
arvindkrishnakumar-okta authored May 27, 2020
1 parent e17cd15 commit e499ddb
Show file tree
Hide file tree
Showing 26 changed files with 8,353 additions and 2,075 deletions.
2 changes: 1 addition & 1 deletion api/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
<parent>
<groupId>com.okta.sdk</groupId>
<artifactId>okta-sdk-root</artifactId>
<version>1.6.1-SNAPSHOT</version>
<version>2.0.0-SNAPSHOT</version>
</parent>

<artifactId>okta-sdk-api</artifactId>
Expand Down
2 changes: 1 addition & 1 deletion coverage/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
<parent>
<groupId>com.okta.sdk</groupId>
<artifactId>okta-sdk-root</artifactId>
<version>1.6.1-SNAPSHOT</version>
<version>2.0.0-SNAPSHOT</version>
</parent>

<artifactId>okta-sdk-coverage</artifactId>
Expand Down
2 changes: 1 addition & 1 deletion examples/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
<parent>
<groupId>com.okta.sdk</groupId>
<artifactId>okta-sdk-root</artifactId>
<version>1.6.1-SNAPSHOT</version>
<version>2.0.0-SNAPSHOT</version>
</parent>

<artifactId>okta-sdk-examples</artifactId>
Expand Down
2 changes: 1 addition & 1 deletion examples/quickstart/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
<parent>
<groupId>com.okta.sdk</groupId>
<artifactId>okta-sdk-examples</artifactId>
<version>1.6.1-SNAPSHOT</version>
<version>2.0.0-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>

Expand Down
27 changes: 14 additions & 13 deletions examples/quickstart/src/main/java/quickstart/ReadmeSnippets.java
Original file line number Diff line number Diff line change
Expand Up @@ -33,11 +33,12 @@
import com.okta.sdk.resource.user.User;
import com.okta.sdk.resource.user.UserBuilder;
import com.okta.sdk.resource.user.UserList;
import com.okta.sdk.resource.user.factor.Factor;
import com.okta.sdk.resource.user.factor.FactorList;
import com.okta.sdk.resource.user.factor.SmsFactor;
import com.okta.sdk.resource.user.factor.ActivateFactorRequest;
import com.okta.sdk.resource.user.factor.UserFactor;
import com.okta.sdk.resource.user.factor.UserFactorList;
import com.okta.sdk.resource.user.factor.SmsUserFactor;
import com.okta.sdk.resource.user.factor.VerifyFactorRequest;
import com.okta.sdk.resource.user.factor.VerifyFactorResponse;
import com.okta.sdk.resource.user.factor.VerifyUserFactorResponse;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

Expand Down Expand Up @@ -137,27 +138,27 @@ private void addUserToGroup() {
}

private void listUserFactors() {
FactorList factors = user.listFactors();
UserFactorList factors = user.listFactors();
}

private void enrollUserInFactor() {
SmsFactor smsFactor = client.instantiate(SmsFactor.class);
SmsUserFactor smsFactor = client.instantiate(SmsUserFactor.class);
smsFactor.getProfile().setPhoneNumber("555 867 5309");
user.addFactor(smsFactor);
user.enrollFactor(smsFactor);
}

private void activateFactor() {
Factor factor = user.getFactor("factorId");
VerifyFactorRequest verifyFactorRequest = client.instantiate(VerifyFactorRequest.class);
verifyFactorRequest.setPassCode("123456");
factor.activate(verifyFactorRequest);
UserFactor factor = user.getFactor("factorId");
ActivateFactorRequest activateFactorRequest = client.instantiate(ActivateFactorRequest.class);
activateFactorRequest.setPassCode("123456");
factor.activate(activateFactorRequest);
}

private void verifyFactor() {
Factor factor = user.getFactor("factorId");
UserFactor factor = user.getFactor("factorId");
VerifyFactorRequest verifyFactorRequest = client.instantiate(VerifyFactorRequest.class);
verifyFactorRequest.setPassCode("123456");
VerifyFactorResponse response = factor.verify(verifyFactorRequest);
VerifyUserFactorResponse verifyUserFactorResponse = factor.setVerify(verifyFactorRequest).verify();
}

private void listApplication() {
Expand Down
2 changes: 1 addition & 1 deletion httpclients/httpclient/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
<parent>
<groupId>com.okta.sdk</groupId>
<artifactId>okta-sdk-root</artifactId>
<version>1.6.1-SNAPSHOT</version>
<version>2.0.0-SNAPSHOT</version>
<relativePath>../..</relativePath>
</parent>

Expand Down
2 changes: 1 addition & 1 deletion httpclients/okhttp/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
<parent>
<groupId>com.okta.sdk</groupId>
<artifactId>okta-sdk-root</artifactId>
<version>1.6.1-SNAPSHOT</version>
<version>2.0.0-SNAPSHOT</version>
<relativePath>../..</relativePath>
</parent>

Expand Down
2 changes: 1 addition & 1 deletion impl/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
<parent>
<groupId>com.okta.sdk</groupId>
<artifactId>okta-sdk-root</artifactId>
<version>1.6.1-SNAPSHOT</version>
<version>2.0.0-SNAPSHOT</version>
</parent>

<artifactId>okta-sdk-impl</artifactId>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@

/**
* A DiscriminatorRegistry allows for the resolution of a specific type, based on the data of the object.
* For example, the Factors API return a collection of {@link com.okta.sdk.resource.user.factor.Factor Factor} objects,
* For example, the Factors API return a collection of {@link com.okta.sdk.resource.user.factor.UserFactor UserFactor} objects,
* The actual type is dependent on a property of the data map 'factorType'.
*
* @since 0.8.0
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,9 @@
*/
package com.okta.sdk.impl.ds

import com.okta.sdk.resource.user.factor.Factor
import com.okta.sdk.resource.user.factor.UserFactor
import com.okta.sdk.resource.user.factor.FactorType
import com.okta.sdk.resource.user.factor.TotpFactor
import com.okta.sdk.resource.user.factor.TotpUserFactor
import org.testng.annotations.Test

import static org.hamcrest.Matchers.equalTo
Expand All @@ -39,8 +39,8 @@ class DefaultResourceFactoryTest {
def map = [
factorType: "token:software:totp"
]
Factor factor = resourceFactory.instantiate(Factor, map)
assertThat factor, instanceOf(TotpFactor)
UserFactor factor = resourceFactory.instantiate(UserFactor, map)
assertThat factor, instanceOf(TotpUserFactor)
assertThat factor.getFactorType(), equalTo(FactorType.TOKEN_SOFTWARE_TOTP)
}
}
2 changes: 1 addition & 1 deletion integration-tests/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
<parent>
<groupId>com.okta.sdk</groupId>
<artifactId>okta-sdk-root</artifactId>
<version>1.6.1-SNAPSHOT</version>
<version>2.0.0-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,34 +15,32 @@
*/
package com.okta.sdk.tests.it

import com.google.common.collect.Lists;
import com.google.common.collect.Lists

import com.okta.sdk.client.Client
import com.okta.sdk.resource.user.User
import com.okta.sdk.resource.user.UserBuilder
import com.okta.sdk.resource.user.factor.CallFactor
import com.okta.sdk.resource.user.factor.Factor
import com.okta.sdk.resource.user.factor.FactorList
import com.okta.sdk.resource.user.factor.FactorResultType
import com.okta.sdk.resource.user.factor.ActivateFactorRequest
import com.okta.sdk.resource.user.factor.CallUserFactor
import com.okta.sdk.resource.user.factor.FactorProvider
import com.okta.sdk.resource.user.factor.FactorStatus
import com.okta.sdk.resource.user.factor.PushFactor
import com.okta.sdk.resource.user.factor.SecurityQuestionFactor
import com.okta.sdk.resource.user.factor.PushUserFactor
import com.okta.sdk.resource.user.factor.SecurityQuestionUserFactor
import com.okta.sdk.resource.user.factor.SecurityQuestionList
import com.okta.sdk.resource.user.factor.SmsFactor
import com.okta.sdk.resource.user.factor.SmsFactorProfile
import com.okta.sdk.resource.user.factor.TotpFactor
import com.okta.sdk.resource.user.factor.SmsUserFactor
import com.okta.sdk.resource.user.factor.TotpUserFactor
import com.okta.sdk.resource.user.factor.UserFactor
import com.okta.sdk.resource.user.factor.UserFactorList
import com.okta.sdk.resource.user.factor.VerifyFactorRequest
import com.okta.sdk.resource.user.factor.VerifyFactorResponse
import com.okta.sdk.resource.user.factor.VerifyUserFactorResponse
import com.okta.sdk.tests.it.util.ITSupport
import org.jboss.aerogear.security.otp.Totp
import org.jboss.aerogear.security.otp.api.Base32
import org.testng.annotations.Test

import static org.hamcrest.Matchers.*
import static org.hamcrest.MatcherAssert.assertThat

class FactorsIT extends ITSupport {


private String smsTestNumber = "162 840 01133"

@Test
Expand All @@ -53,25 +51,25 @@ class FactorsIT extends ITSupport {

assertThat user.listFactors(), emptyIterable()

SmsFactor smsFactor = client.instantiate(SmsFactor)
smsFactor.getProfile().phoneNumber = smsTestNumber
user.addFactor(smsFactor)
SmsUserFactor smsUserFactor = client.instantiate(SmsUserFactor)
smsUserFactor.getProfile().setPhoneNumber(smsTestNumber)
user.enrollFactor(smsUserFactor)

SecurityQuestionFactor securityQuestionFactor = client.instantiate(SecurityQuestionFactor)
securityQuestionFactor.getProfile()
.setQuestion("disliked_food")
.setAnswer("pizza")
user.addFactor(securityQuestionFactor)
SecurityQuestionUserFactor securityQuestionUserFactor = client.instantiate(SecurityQuestionUserFactor)
securityQuestionUserFactor.getProfile()
.setQuestion("disliked_food")
.setAnswer("pizza")
user.enrollFactor(securityQuestionUserFactor)

FactorList factorsList = user.listFactors()
List<Factor> factorsArrayList = Lists.newArrayList(factorsList)
UserFactorList factorsList = user.listFactors()
List<UserFactor> factorsArrayList = Lists.newArrayList(factorsList)
assertThat factorsArrayList, allOf(hasSize(2), containsInAnyOrder(
allOf(
instanceOf(SmsFactor),
hasProperty("id", is(smsFactor.getId()))),
allOf(
instanceOf(SecurityQuestionFactor),
hasProperty("id", is(securityQuestionFactor.getId())))))
allOf(
instanceOf(SmsUserFactor),
hasProperty("id", is(smsUserFactor.getId()))),
allOf(
instanceOf(SecurityQuestionUserFactor),
hasProperty("id", is(securityQuestionUserFactor.getId())))))
}

@Test
Expand All @@ -81,14 +79,14 @@ class FactorsIT extends ITSupport {

assertThat user.listFactors(), emptyIterable()

SecurityQuestionFactor securityQuestionFactor = client.instantiate(SecurityQuestionFactor)
securityQuestionFactor.getProfile()
.setQuestion("disliked_food")
.setAnswer("pizza")
SecurityQuestionUserFactor securityQuestionUserFactor = client.instantiate(SecurityQuestionUserFactor)
securityQuestionUserFactor.getProfile()
.setQuestion("disliked_food")
.setAnswer("pizza")

assertThat securityQuestionFactor.id, nullValue()
assertThat securityQuestionFactor, sameInstance(user.addFactor(securityQuestionFactor))
assertThat securityQuestionFactor.id, notNullValue()
assertThat securityQuestionUserFactor.id, nullValue()
assertThat securityQuestionUserFactor, sameInstance(user.enrollFactor(securityQuestionUserFactor))
assertThat securityQuestionUserFactor.id, notNullValue()
}

@Test
Expand All @@ -98,12 +96,12 @@ class FactorsIT extends ITSupport {

assertThat user.listFactors(), emptyIterable()

CallFactor callFactor = client.instantiate(CallFactor)
callFactor.getProfile().phoneNumber = smsTestNumber
CallUserFactor callUserFactor = client.instantiate(CallUserFactor)
callUserFactor.getProfile().setPhoneNumber(smsTestNumber)

assertThat callFactor.id, nullValue()
assertThat callFactor, sameInstance(user.addFactor(callFactor))
assertThat callFactor.id, notNullValue()
assertThat callUserFactor.id, nullValue()
assertThat callUserFactor, sameInstance(user.enrollFactor(callUserFactor))
assertThat callUserFactor.id, notNullValue()
}

@Test
Expand All @@ -113,12 +111,12 @@ class FactorsIT extends ITSupport {

assertThat user.listFactors(), emptyIterable()

SmsFactor smsFactor = client.instantiate(SmsFactor)
smsFactor.getProfile().phoneNumber = smsTestNumber
SmsUserFactor smsUserFactor = client.instantiate(SmsUserFactor)
smsUserFactor.getProfile().setPhoneNumber(smsTestNumber)

assertThat smsFactor.id, nullValue()
assertThat smsFactor, sameInstance(user.addFactor(smsFactor))
assertThat smsFactor.id, notNullValue()
assertThat smsUserFactor.id, nullValue()
assertThat smsUserFactor, sameInstance(user.enrollFactor(smsUserFactor))
assertThat smsUserFactor.id, notNullValue()
}

@Test
Expand All @@ -127,10 +125,10 @@ class FactorsIT extends ITSupport {
User user = randomUser()
assertThat user.listFactors(), emptyIterable()

PushFactor pushFactor = client.instantiate(PushFactor)
assertThat pushFactor.id, nullValue()
assertThat pushFactor, sameInstance(user.addFactor(pushFactor))
assertThat pushFactor.id, notNullValue()
PushUserFactor pushUserFactor = client.instantiate(PushUserFactor)
assertThat pushUserFactor.id, nullValue()
assertThat pushUserFactor, sameInstance(user.enrollFactor(pushUserFactor))
assertThat pushUserFactor.id, notNullValue()
}

@Test
Expand All @@ -143,51 +141,51 @@ class FactorsIT extends ITSupport {
@Test
void testAvailableFactorsNotEmpty() {
User user = randomUser()
FactorList factors = user.listSupportedFactors()
UserFactorList factors = user.listSupportedFactors()
assertThat factors, iterableWithSize(greaterThan(1))
}

@Test
void activateTotpFactor() {
User user = randomUser()
assertThat user.listFactors(), emptyIterable()
TotpFactor totpFactor = client.instantiate(TotpFactor)
user.addFactor(totpFactor)
TotpUserFactor totpUserFactor = client.instantiate(TotpUserFactor)
user.enrollFactor(totpUserFactor)

assertThat totpFactor.getStatus(), is(FactorStatus.PENDING_ACTIVATION)
Totp totp = new Totp(totpFactor.getEmbedded().get("activation").get("sharedSecret"))
assertThat totpUserFactor.getStatus(), is(FactorStatus.PENDING_ACTIVATION)
Totp totp = new Totp(totpUserFactor.getEmbedded().get("activation").get("sharedSecret"))

VerifyFactorRequest verifyFactorRequest = client.instantiate(VerifyFactorRequest)
verifyFactorRequest.passCode = totp.now()
Factor factorResult = totpFactor.activate(verifyFactorRequest)
ActivateFactorRequest activateFactorRequest = client.instantiate(ActivateFactorRequest)
activateFactorRequest.setPassCode(totp.now())
UserFactor factorResult = totpUserFactor.activate(activateFactorRequest)
assertThat factorResult.getStatus(), is(FactorStatus.ACTIVE)
assertThat factorResult, instanceOf(TotpFactor)
assertThat factorResult, instanceOf(TotpUserFactor)
}

@Test
void verifyQuestionFactor() {
User user = randomUser()

SecurityQuestionFactor securityQuestionFactor = client.instantiate(SecurityQuestionFactor)
securityQuestionFactor.getProfile()
.setQuestion("disliked_food")
.setAnswer("pizza")
user.addFactor(securityQuestionFactor)
SecurityQuestionUserFactor securityQuestionUserFactor = client.instantiate(SecurityQuestionUserFactor)
securityQuestionUserFactor.getProfile()
.setQuestion("disliked_food")
.setAnswer("pizza")
user.enrollFactor(securityQuestionUserFactor)

VerifyFactorRequest request = client.instantiate(VerifyFactorRequest)
request.answer = "pizza"
VerifyFactorResponse response = securityQuestionFactor.verify(request)
assertThat response.getFactorResult(), is(FactorResultType.SUCCESS)
request.setAnswer("pizza")
VerifyUserFactorResponse response = securityQuestionUserFactor.verify(request, null, null)
assertThat response.getFactorResult(), is(VerifyUserFactorResponse.FactorResultEnum.SUCCESS)
}

@Test
void deleteFactorTest() {

User user = randomUser()
assertThat user.listFactors(), emptyIterable()
TotpFactor totpFactor = client.instantiate(TotpFactor)
totpFactor.provider = "OKTA"
user.addFactor(totpFactor)
totpFactor.delete()
TotpUserFactor totpUserFactor = client.instantiate(TotpUserFactor)
totpUserFactor.setProvider(FactorProvider.OKTA)
user.enrollFactor(totpUserFactor)
totpUserFactor.delete()
}
}
Loading

0 comments on commit e499ddb

Please sign in to comment.