diff --git a/powerauth-java-cmd-lib/src/main/java/io/getlime/security/powerauth/lib/cmd/service/StepExecutionService.java b/powerauth-java-cmd-lib/src/main/java/io/getlime/security/powerauth/lib/cmd/service/StepExecutionService.java index 58fd7b5d..bee7f16e 100644 --- a/powerauth-java-cmd-lib/src/main/java/io/getlime/security/powerauth/lib/cmd/service/StepExecutionService.java +++ b/powerauth-java-cmd-lib/src/main/java/io/getlime/security/powerauth/lib/cmd/service/StepExecutionService.java @@ -80,9 +80,9 @@ public ResultStatusObject execute(PowerAuthStep stepId, PowerAuthVersion version throw new PowerAuthCmdException(); } - BaseStep step = stepProvider.getStep(stepId, version); + final BaseStep step = stepProvider.getStep(stepId, version); - ResultStatusObject result = step.execute(model.toMap()); + final ResultStatusObject result = step.execute(stepLogger, model.toMap()); if (result == null) { throw new PowerAuthCmdException(); } diff --git a/powerauth-java-cmd-lib/src/main/java/io/getlime/security/powerauth/lib/cmd/steps/AbstractBaseStep.java b/powerauth-java-cmd-lib/src/main/java/io/getlime/security/powerauth/lib/cmd/steps/AbstractBaseStep.java index f5fb4fe0..030a883a 100644 --- a/powerauth-java-cmd-lib/src/main/java/io/getlime/security/powerauth/lib/cmd/steps/AbstractBaseStep.java +++ b/powerauth-java-cmd-lib/src/main/java/io/getlime/security/powerauth/lib/cmd/steps/AbstractBaseStep.java @@ -125,26 +125,6 @@ public AbstractBaseStep(PowerAuthStep step, */ protected abstract ParameterizedTypeReference getResponseTypeReference(); - /** - * Executes this step with a given context - * - * @param context Provided context - * @return Result status object, null in case of failure. - * @throws Exception In case of any error. - */ - @Override - public ResultStatusObject execute(Map context) throws Exception { - StepLogger stepLogger = stepLoggerFactory.createStepLogger(); - stepLogger.start(); - JSONObject jsonObject = execute(stepLogger, context); - stepLogger.close(); - if (jsonObject == null) { - return null; - } else { - return ResultStatusObject.fromJsonObject(jsonObject); - } - } - /** * Execute this step with given logger and context objects. * @@ -155,7 +135,7 @@ public ResultStatusObject execute(Map context) throws Exception * @return Result status object (with current activation status), null in case of failure. * @throws Exception In case of a failure. */ - public final JSONObject execute(StepLogger stepLogger, Map context) throws Exception { + public final ResultStatusObject execute(StepLogger stepLogger, Map context) throws Exception { if (stepLogger == null) { stepLogger = DisabledStepLogger.INSTANCE; } @@ -187,7 +167,12 @@ public final JSONObject execute(StepLogger stepLogger, Map conte return null; } - return stepContext.getModel().getResultStatusObject(); + final JSONObject resultStatusObject = stepContext.getModel().getResultStatusObject(); + if (resultStatusObject == null) { + return null; + } else { + return ResultStatusObject.fromJsonObject(resultStatusObject); + } } /** @@ -231,7 +216,6 @@ public void addEncryptedRequest(StepContext stepContext, String applicatio * @throws Exception when an error during encryption of the request data occurred */ public void addEncryptedRequest(StepContext stepContext, ClientEncryptor encryptor, byte[] data) throws Exception { - M model = stepContext.getModel(); SimpleSecurityContext securityContext = (SimpleSecurityContext) stepContext.getSecurityContext(); if (securityContext == null) { stepContext.setSecurityContext( diff --git a/powerauth-java-cmd-lib/src/main/java/io/getlime/security/powerauth/lib/cmd/steps/BaseStep.java b/powerauth-java-cmd-lib/src/main/java/io/getlime/security/powerauth/lib/cmd/steps/BaseStep.java index c8fab8f1..fede5e1d 100644 --- a/powerauth-java-cmd-lib/src/main/java/io/getlime/security/powerauth/lib/cmd/steps/BaseStep.java +++ b/powerauth-java-cmd-lib/src/main/java/io/getlime/security/powerauth/lib/cmd/steps/BaseStep.java @@ -18,6 +18,7 @@ import io.getlime.security.powerauth.lib.cmd.consts.PowerAuthStep; import io.getlime.security.powerauth.lib.cmd.consts.PowerAuthVersion; +import io.getlime.security.powerauth.lib.cmd.logging.StepLogger; import io.getlime.security.powerauth.lib.cmd.steps.pojo.ResultStatusObject; import java.util.List; @@ -34,11 +35,12 @@ public interface BaseStep { /** * Execute this step with given context objects. * + * @param stepLogger Step logger. * @param context Context objects. * @return Result status object (with current activation status), null in case of failure. * @throws Exception In case of a failure. */ - ResultStatusObject execute(Map context) throws Exception; + ResultStatusObject execute(StepLogger stepLogger, Map context) throws Exception; /** * @return Corresponding PowerAuth step diff --git a/powerauth-java-cmd-lib/src/main/java/io/getlime/security/powerauth/lib/cmd/steps/pojo/ResultStatusObject.java b/powerauth-java-cmd-lib/src/main/java/io/getlime/security/powerauth/lib/cmd/steps/pojo/ResultStatusObject.java index d01827e7..9b11ea3d 100644 --- a/powerauth-java-cmd-lib/src/main/java/io/getlime/security/powerauth/lib/cmd/steps/pojo/ResultStatusObject.java +++ b/powerauth-java-cmd-lib/src/main/java/io/getlime/security/powerauth/lib/cmd/steps/pojo/ResultStatusObject.java @@ -188,7 +188,10 @@ public void setServerPublicKey(String serverPublicKey) { */ @JsonIgnore public SecretKey getSignatureBiometryKeyObject() { - String signatureBiometryKey = (String) jsonObject.get("signatureBiometryKey"); + final String signatureBiometryKey = (String) jsonObject.get("signatureBiometryKey"); + if (signatureBiometryKey == null) { + return null; + } return KEY_CONVERTOR.convertBytesToSharedSecretKey(Base64.getDecoder().decode(signatureBiometryKey)); } @@ -290,7 +293,10 @@ public void setSignatureKnowledgeKeySalt(String signatureKnowledgeKeySalt) { */ @JsonIgnore public SecretKey getSignaturePossessionKeyObject() { - String signaturePossessionKey = (String) jsonObject.get("signaturePossessionKey"); + final String signaturePossessionKey = (String) jsonObject.get("signaturePossessionKey"); + if (signaturePossessionKey == null) { + return null; + } return KEY_CONVERTOR.convertBytesToSharedSecretKey(Base64.getDecoder().decode(signaturePossessionKey)); } @@ -324,7 +330,10 @@ public void setSignaturePossessionKey(String signaturePossessionKey) { */ @JsonIgnore public SecretKey getTransportMasterKeyObject() { - String transportMasterKey = (String) jsonObject.get("transportMasterKey"); + final String transportMasterKey = (String) jsonObject.get("transportMasterKey"); + if (transportMasterKey == null) { + return null; + } return KEY_CONVERTOR.convertBytesToSharedSecretKey(Base64.getDecoder().decode(transportMasterKey)); } diff --git a/powerauth-java-cmd-lib/src/main/java/io/getlime/security/powerauth/lib/cmd/util/FileUtil.java b/powerauth-java-cmd-lib/src/main/java/io/getlime/security/powerauth/lib/cmd/util/FileUtil.java index 4c332134..8b5339f6 100644 --- a/powerauth-java-cmd-lib/src/main/java/io/getlime/security/powerauth/lib/cmd/util/FileUtil.java +++ b/powerauth-java-cmd-lib/src/main/java/io/getlime/security/powerauth/lib/cmd/util/FileUtil.java @@ -54,7 +54,7 @@ public static byte[] readFileBytes(StepLogger stepLogger, "Empty " + fileDescription + " file", "File not provided, assuming empty data.", "WARNING", - filePath + null ); return new byte[0]; } diff --git a/powerauth-java-cmd/src/main/java/io/getlime/security/powerauth/app/cmd/Application.java b/powerauth-java-cmd/src/main/java/io/getlime/security/powerauth/app/cmd/Application.java index 089a160e..aa68455b 100755 --- a/powerauth-java-cmd/src/main/java/io/getlime/security/powerauth/app/cmd/Application.java +++ b/powerauth-java-cmd/src/main/java/io/getlime/security/powerauth/app/cmd/Application.java @@ -289,12 +289,7 @@ public static void main(String[] args) { stepExecutionService.execute(powerAuthStep, version, model); } - case ACTIVATION_CREATE, ACTIVATION_PREPARE -> { - if (powerAuthStep.equals(PowerAuthStep.ACTIVATION_PREPARE)) { - System.err.println("The 'prepare' step name is deprecated, use the 'create' step name instead"); - powerAuthStep = PowerAuthStep.ACTIVATION_CREATE; - } - + case ACTIVATION_CREATE -> { String customAttributesFileName = cmd.getOptionValue("C"); Map customAttributes = FileUtil.readDataFromFile(stepLogger, customAttributesFileName, HashMap.class, "custom-attributes", "custom attributes");