use of com.okta.authn.sdk.FactorValidationException in project cerberus by Nike-Inc.
the class OktaAuthConnector method mfaCheck.
/**
* Verifies user's MFA factor using Okta Auth SDK.
*/
@Override
public AuthResponse mfaCheck(String stateToken, String deviceId, String otpToken) {
CompletableFuture<AuthResponse> authResponse = new CompletableFuture<>();
MfaStateHandler stateHandler = new MfaStateHandler(oktaAuthenticationClient, authResponse);
DefaultVerifyPassCodeFactorRequest request = oktaAuthenticationClient.instantiate(DefaultVerifyPassCodeFactorRequest.class);
request.setPassCode(otpToken);
request.setStateToken(stateToken);
try {
oktaAuthenticationClient.verifyFactor(deviceId, request, stateHandler);
return authResponse.get(45, TimeUnit.SECONDS);
} catch (ApiException e) {
throw e;
} catch (FactorValidationException e) {
throw ApiException.newBuilder().withExceptionCause(e).withApiErrors(DefaultApiError.FACTOR_VALIDATE_FAILED).withExceptionMessage("Failed to validate factor.").build();
} catch (Exception e) {
throw ApiException.newBuilder().withExceptionCause(e).withApiErrors(DefaultApiError.AUTH_RESPONSE_WAIT_FAILED).withExceptionMessage("Failed to wait for Okta Auth Completable Future to complete.").build();
}
}
Aggregations