From c931b5e5c6a0829875fb192127c55c5e692eff2a Mon Sep 17 00:00:00 2001 From: JanardhanBS-SyncByte Date: Thu, 19 Aug 2021 18:32:51 +0530 Subject: [PATCH] MOSIP-16007 - Fingerprint Single MDS and Iris Single MDS --- .../Finger/Single/DeviceInfo.json | 2 +- MockMDS/application.properties | 15 +- .../java/io/mosip/mock/sbi/SBIConstant.java | 82 +- .../sbi/devicehelper/SBIBioSubTypeInfo.java | 380 +- .../sbi/devicehelper/SBIDeviceHelper.java | 520 +- .../sbi/devicehelper/face/SBIFaceHelper.java | 6 +- .../SBIFingerSingleBioExceptionInfo.java | 73 +- .../finger/single/SBIFingerSingleHelper.java | 2 +- .../slap/SBIFingerSlapBioExceptionInfo.java | 351 +- .../finger/slap/SBIFingerSlapHelper.java | 530 +- .../SBIIrisDoubleBioExceptionInfo.java | 123 +- .../iris/binacular/SBIIrisDoubleHelper.java | 252 +- .../SBIIrisSingleBioExceptionInfo.java | 17 +- .../iris/monocular/SBIIrisSingleHelper.java | 2 +- .../mock/sbi/service/SBIMockService.java | 24 +- .../mock/sbi/service/SBIServiceResponse.java | 5207 ++++++++--------- .../io/mosip/mock/sbi/test/TestMockSBI.java | 162 +- .../org.eclipse.wst.server.core.prefs | 3 + 18 files changed, 3816 insertions(+), 3935 deletions(-) create mode 100644 Servers/.settings/org.eclipse.wst.server.core.prefs diff --git a/MockMDS/Biometric Devices/Finger/Single/DeviceInfo.json b/MockMDS/Biometric Devices/Finger/Single/DeviceInfo.json index d023a6fe..7b880b5b 100644 --- a/MockMDS/Biometric Devices/Finger/Single/DeviceInfo.json +++ b/MockMDS/Biometric Devices/Finger/Single/DeviceInfo.json @@ -1,7 +1,7 @@ { "deviceStatus": "Ready", "deviceId": "4", - "firmware": "MOSIP.SLAP.1.0.0.0", + "firmware": "MOSIP.SINGLE.1.0.0.0", "certification": "L0", "serviceVersion": "0.9.5", "deviceSubId":[ diff --git a/MockMDS/application.properties b/MockMDS/application.properties index 549d466f..fd717464 100644 --- a/MockMDS/application.properties +++ b/MockMDS/application.properties @@ -6,6 +6,7 @@ cors.headers.allowed.origin="*" mosip.mock.sbi.allowed.admin.apis="admin/score, admin/delay, admin/status, admin/profile" mosip.mock.sbi.quality.score=44 + mosip.mock.sbi.device.purpose.registration=Registration mosip.mock.sbi.device.purpose.auth=Auth @@ -14,18 +15,6 @@ mosip.mock.sbi.env.developer=Developer mosip.mock.sbi.env.pre_production=Pre-Production mosip.mock.sbi.env.production=Production -mosip.mock.sbi.biometric.type.biometricdevice=Biometric Device -mosip.mock.sbi.biometric.type.finger=Finger -mosip.mock.sbi.biometric.type.face=Face -mosip.mock.sbi.biometric.type.iris=Iris - -mosip.mock.sbi.biometric.subtype.finger.slap=Slap -mosip.mock.sbi.biometric.subtype.finger.single=Single -mosip.mock.sbi.biometric.subtype.finger.touchless=Touchless -mosip.mock.sbi.biometric.subtype.face=Full face -mosip.mock.sbi.biometric.subtype.iris.single=Single -mosip.mock.sbi.biometric.subtype.iris.double=Double - mosip.mock.sbi.biometric.seed.finger=99 mosip.mock.sbi.biometric.seed.face=1 mosip.mock.sbi.biometric.seed.iris=999 @@ -57,7 +46,7 @@ mosip.mock.sbi.file.finger.slap.keys.keystorepwd.ftm=mosipfingerslapftm mosip.mock.sbi.file.finger.single.digitalid.json=/Biometric Devices/Finger/Single/DigitalId.json mosip.mock.sbi.file.finger.single.deviceinfo.json=/Biometric Devices/Finger/Single/DeviceInfo.json mosip.mock.sbi.file.finger.single.devicediscovery.json=/Biometric Devices/Finger/Single/DeviceDiscovery.json -mosip.mock.sbi.file.finger.single.keys.keystorefilename=/Biometric Devices/Finger/Single/Keys/mosipfingerslap.p12 +mosip.mock.sbi.file.finger.single.keys.keystorefilename=/Biometric Devices/Finger/Single/Keys/mosipfingersingle.p12 mosip.mock.sbi.file.finger.single.keys.keyalias=mosipfingersingle mosip.mock.sbi.file.finger.single.keys.keystorepwd=mosipfingersingle mosip.mock.sbi.file.finger.single.keys.keystorefilename.ftm=/Biometric Devices/Finger/Single/Keys/mosipfingersingleftm.p12 diff --git a/MockMDS/src/main/java/io/mosip/mock/sbi/SBIConstant.java b/MockMDS/src/main/java/io/mosip/mock/sbi/SBIConstant.java index faf18fb7..aec7566d 100644 --- a/MockMDS/src/main/java/io/mosip/mock/sbi/SBIConstant.java +++ b/MockMDS/src/main/java/io/mosip/mock/sbi/SBIConstant.java @@ -26,41 +26,41 @@ public class SBIConstant { public static String ENVIRONMENT_PRODUCTION = "Production"; /** Purpose */ - public static String PURPOSE_AUTH = "Auth"; - public static String PURPOSE_REGISTRATION = "Registration"; + public final static String PURPOSE_AUTH = "Auth"; + public final static String PURPOSE_REGISTRATION = "Registration"; /** Device Status */ - public static String DEVICE_STATUS = "DEVICE_STATUS"; - public static String DEVICE_STATUS_ISREADY = "Ready"; - public static String DEVICE_STATUS_ISBUSY = "Busy"; - public static String DEVICE_STATUS_NOTREADY = "Not Ready"; - public static String DEVICE_STATUS_NOTREGISTERED = "Not Registered"; + public final static String DEVICE_STATUS = "DEVICE_STATUS"; + public final static String DEVICE_STATUS_ISREADY = "Ready"; + public final static String DEVICE_STATUS_ISBUSY = "Busy"; + public final static String DEVICE_STATUS_NOTREADY = "Not Ready"; + public final static String DEVICE_STATUS_NOTREGISTERED = "Not Registered"; /** Device SubType Id Value */ - public static int DEVICE_IRIS_SINGLE_SUB_TYPE_ID = 0; // Single IMAGE - public static int DEVICE_IRIS_DOUBLE_SUB_TYPE_ID_LEFT = 1; // LEFT IRIS IMAGE - public static int DEVICE_IRIS_DOUBLE_SUB_TYPE_ID_RIGHT = 2; // RIGHT IRIS IMAGE - public static int DEVICE_IRIS_DOUBLE_SUB_TYPE_ID_BOTH = 3; // BOTH LEFT AND RIGHT IRIS IMAGE - public static int DEVICE_FINGER_SINGLE_SUB_TYPE_ID = 0; // Single IMAGE - public static int DEVICE_FINGER_SLAP_SUB_TYPE_ID_LEFT = 1; // LEFT SLAP IMAGE - public static int DEVICE_FINGER_SLAP_SUB_TYPE_ID_RIGHT = 2; // RIGHT SLAP IMAGE - public static int DEVICE_FINGER_SLAP_SUB_TYPE_ID_THUMB = 3;// TWO THUMB IMAGE - public static int DEVICE_FACE_SUB_TYPE_ID_FULLFACE = 0; // TWO THUMB IMAGE + public final static int DEVICE_IRIS_SINGLE_SUB_TYPE_ID = 0; // Single IMAGE + public final static int DEVICE_IRIS_DOUBLE_SUB_TYPE_ID_LEFT = 1; // LEFT IRIS IMAGE + public final static int DEVICE_IRIS_DOUBLE_SUB_TYPE_ID_RIGHT = 2; // RIGHT IRIS IMAGE + public final static int DEVICE_IRIS_DOUBLE_SUB_TYPE_ID_BOTH = 3; // BOTH LEFT AND RIGHT IRIS IMAGE + public final static int DEVICE_FINGER_SINGLE_SUB_TYPE_ID = 0; // Single IMAGE + public final static int DEVICE_FINGER_SLAP_SUB_TYPE_ID_LEFT = 1; // LEFT SLAP IMAGE + public final static int DEVICE_FINGER_SLAP_SUB_TYPE_ID_RIGHT = 2; // RIGHT SLAP IMAGE + public final static int DEVICE_FINGER_SLAP_SUB_TYPE_ID_THUMB = 3;// TWO THUMB IMAGE + public final static int DEVICE_FACE_SUB_TYPE_ID_FULLFACE = 0; // TWO THUMB IMAGE /** Bio Exceptions/Bio Subtype Names */ - public static String BIO_NAME_UNKNOWN = "UNKNOWN"; - public static String BIO_NAME_RIGHT_THUMB = "Right Thumb"; - public static String BIO_NAME_RIGHT_INDEX = "Right IndexFinger"; - public static String BIO_NAME_RIGHT_MIDDLE = "Right MiddleFinger"; - public static String BIO_NAME_RIGHT_RING = "Right RingFinger"; - public static String BIO_NAME_RIGHT_LITTLE = "Right LittleFinger"; - public static String BIO_NAME_LEFT_THUMB = "Left Thumb"; - public static String BIO_NAME_LEFT_INDEX = "Left IndexFinger"; - public static String BIO_NAME_LEFT_MIDDLE = "Left MiddleFinger"; - public static String BIO_NAME_LEFT_RING = "Left RingFinger"; - public static String BIO_NAME_LEFT_LITTLE = "Left LittleFinger"; - public static String BIO_NAME_RIGHT_IRIS = "Right"; - public static String BIO_NAME_LEFT_IRIS = "Left"; + public final static String BIO_NAME_UNKNOWN = "UNKNOWN"; + public final static String BIO_NAME_RIGHT_THUMB = "Right Thumb"; + public final static String BIO_NAME_RIGHT_INDEX = "Right IndexFinger"; + public final static String BIO_NAME_RIGHT_MIDDLE = "Right MiddleFinger"; + public final static String BIO_NAME_RIGHT_RING = "Right RingFinger"; + public final static String BIO_NAME_RIGHT_LITTLE = "Right LittleFinger"; + public final static String BIO_NAME_LEFT_THUMB = "Left Thumb"; + public final static String BIO_NAME_LEFT_INDEX = "Left IndexFinger"; + public final static String BIO_NAME_LEFT_MIDDLE = "Left MiddleFinger"; + public final static String BIO_NAME_LEFT_RING = "Left RingFinger"; + public final static String BIO_NAME_LEFT_LITTLE = "Left LittleFinger"; + public final static String BIO_NAME_RIGHT_IRIS = "Right"; + public final static String BIO_NAME_LEFT_IRIS = "Left"; /** Profile Bio File Names */ public static String PROFILE_BIO_FILE_NAME_RIGHT_THUMB = "Right_Thumb.iso"; @@ -79,9 +79,9 @@ public class SBIConstant { public static String PROFILE_BIO_FILE_NAME_FACE_EXCEPTION = "Exception_Photo.iso"; /** Profile Default. */ - public static String PROFILE_DEFAULT = "Default"; + public final static String PROFILE_DEFAULT = "Default"; /** Profile Automatic. */ - public static String PROFILE_AUTOMATIC = "Automatic"; + public final static String PROFILE_AUTOMATIC = "Automatic"; /** Errors */ public static final String Error_Code_0 = "mds_ERROR_0_msg_en"; @@ -180,18 +180,18 @@ public class SBIConstant { public static String MOSIP_PURPOSE_AUTH = "mosip.mock.sbi.device.purpose.auth"; /** Biometric Types Names */ - public static String MOSIP_BIOMETRIC_TYPE_BIOMTRIC_DEVICE = "mosip.mock.sbi.biometric.type.biometricdevice"; - public static String MOSIP_BIOMETRIC_TYPE_FINGER = "mosip.mock.sbi.biometric.type.finger"; - public static String MOSIP_BIOMETRIC_TYPE_FACE = "mosip.mock.sbi.biometric.type.face"; - public static String MOSIP_BIOMETRIC_TYPE_IRIS = "mosip.mock.sbi.biometric.type.iris"; + public final static String MOSIP_BIOMETRIC_TYPE_BIOMTRIC_DEVICE = "Biometric Device"; + public final static String MOSIP_BIOMETRIC_TYPE_FINGER = "Finger"; + public final static String MOSIP_BIOMETRIC_TYPE_FACE = "Face"; + public final static String MOSIP_BIOMETRIC_TYPE_IRIS = "Iris"; /** Biometric Sub Types Names */ - public static String MOSIP_BIOMETRIC_SUBTYPE_FINGER_SLAP = "mosip.mock.sbi.biometric.subtype.finger.slap"; - public static String MOSIP_BIOMETRIC_SUBTYPE_FINGER_SINGLE = "mosip.mock.sbi.biometric.subtype.finger.single"; - public static String MOSIP_BIOMETRIC_SUBTYPE_FINGER_TOUCHLESS = "mosip.mock.sbi.biometric.subtype.finger.touchless"; - public static String MOSIP_BIOMETRIC_SUBTYPE_FACE = "mosip.mock.sbi.biometric.subtype.face"; - public static String MOSIP_BIOMETRIC_SUBTYPE_IRIS_SINGLE = "mosip.mock.sbi.biometric.subtype.iris.single"; - public static String MOSIP_BIOMETRIC_SUBTYPE_IRIS_DOUBLE = "mosip.mock.sbi.biometric.subtype.iris.double"; + public final static String MOSIP_BIOMETRIC_SUBTYPE_FINGER_SLAP = "Slap"; + public final static String MOSIP_BIOMETRIC_SUBTYPE_FINGER_SINGLE = "Single"; + public final static String MOSIP_BIOMETRIC_SUBTYPE_FINGER_TOUCHLESS = "Touchless"; + public final static String MOSIP_BIOMETRIC_SUBTYPE_FACE = "Full face"; + public final static String MOSIP_BIOMETRIC_SUBTYPE_IRIS_SINGLE = "Single"; + public final static String MOSIP_BIOMETRIC_SUBTYPE_IRIS_DOUBLE = "Double"; /** Biometric seed Names */ public static String MOSIP_BIOMETRIC_SEED_FINGER = "mosip.mock.sbi.biometric.seed.finger"; diff --git a/MockMDS/src/main/java/io/mosip/mock/sbi/devicehelper/SBIBioSubTypeInfo.java b/MockMDS/src/main/java/io/mosip/mock/sbi/devicehelper/SBIBioSubTypeInfo.java index def6ad8d..7dbcae37 100644 --- a/MockMDS/src/main/java/io/mosip/mock/sbi/devicehelper/SBIBioSubTypeInfo.java +++ b/MockMDS/src/main/java/io/mosip/mock/sbi/devicehelper/SBIBioSubTypeInfo.java @@ -1,195 +1,185 @@ -package io.mosip.mock.sbi.devicehelper; - -import io.mosip.mock.sbi.SBIConstant; - -public class SBIBioSubTypeInfo { - private SBICheckState chkUnknown; - private SBICheckState chkLeftIndex; - private SBICheckState chkLeftMiddle; - private SBICheckState chkLeftRing; - private SBICheckState chkLeftLittle; - - private SBICheckState chkRightIndex; - private SBICheckState chkRightMiddle; - private SBICheckState chkRightRing; - private SBICheckState chkRightLittle; - - private SBICheckState chkRightThumb; - private SBICheckState chkLeftThumb; - - private SBICheckState chkRightIris; - private SBICheckState chkLeftIris; - - public SBIBioSubTypeInfo() { - super(); - } - - public void initBioSubType(String[] bioSubType) { - // TODO Auto-generated method stub - if (bioSubType != null && bioSubType.length > 0) - { - for (String tag : bioSubType){ - if (tag.trim ().equals (SBIConstant.BIO_NAME_UNKNOWN)) - { - setChkUnknown (SBICheckState.Checked); - } - else if (tag.trim ().equals (SBIConstant.BIO_NAME_RIGHT_THUMB)) - { - setChkRightThumb (SBICheckState.Checked); - } - else if (tag.trim ().equals (SBIConstant.BIO_NAME_RIGHT_INDEX)) - { - setChkRightIndex (SBICheckState.Checked); - } - else if (tag.trim ().equals (SBIConstant.BIO_NAME_RIGHT_MIDDLE)) - { - setChkRightMiddle (SBICheckState.Checked); - } - else if (tag.trim ().equals (SBIConstant.BIO_NAME_RIGHT_RING)) - { - setChkRightRing (SBICheckState.Checked); - } - else if (tag.trim ().equals (SBIConstant.BIO_NAME_RIGHT_LITTLE)) - { - setChkRightLittle (SBICheckState.Checked); - } - else if (tag.trim ().equals (SBIConstant.BIO_NAME_LEFT_THUMB)) - { - setChkLeftThumb (SBICheckState.Checked); - } - else if (tag.trim ().equals (SBIConstant.BIO_NAME_LEFT_INDEX)) - { - setChkLeftIndex (SBICheckState.Checked); - } - else if (tag.trim ().equals (SBIConstant.BIO_NAME_LEFT_MIDDLE)) - { - setChkLeftMiddle (SBICheckState.Checked); - } - else if (tag.trim ().equals (SBIConstant.BIO_NAME_LEFT_RING)) - { - setChkLeftRing (SBICheckState.Checked); - } - else if (tag.trim ().equals (SBIConstant.BIO_NAME_LEFT_LITTLE)) - { - setChkLeftLittle (SBICheckState.Checked); - } - else if (tag.trim ().equals (SBIConstant.BIO_NAME_LEFT_IRIS)) - { - setChkLeftIris (SBICheckState.Checked); - } - else if (tag.trim ().equals (SBIConstant.BIO_NAME_RIGHT_IRIS)) - { - setChkLeftIris (SBICheckState.Checked); - } - } - } - else - { - setChkUnknown (SBICheckState.Checked); - } - } - - public SBICheckState getChkUnknown() { - return chkUnknown; - } - - public void setChkUnknown(SBICheckState chkUnknown) { - this.chkUnknown = chkUnknown; - } - - public SBICheckState getChkLeftIndex() { - return chkLeftIndex; - } - - public void setChkLeftIndex(SBICheckState chkLeftIndex) { - this.chkLeftIndex = chkLeftIndex; - } - - public SBICheckState getChkLeftMiddle() { - return chkLeftMiddle; - } - - public void setChkLeftMiddle(SBICheckState chkLeftMiddle) { - this.chkLeftMiddle = chkLeftMiddle; - } - - public SBICheckState getChkLeftRing() { - return chkLeftRing; - } - - public void setChkLeftRing(SBICheckState chkLeftRing) { - this.chkLeftRing = chkLeftRing; - } - - public SBICheckState getChkLeftLittle() { - return chkLeftLittle; - } - - public void setChkLeftLittle(SBICheckState chkLeftLittle) { - this.chkLeftLittle = chkLeftLittle; - } - - public SBICheckState getChkRightIndex() { - return chkRightIndex; - } - - public void setChkRightIndex(SBICheckState chkRightIndex) { - this.chkRightIndex = chkRightIndex; - } - - public SBICheckState getChkRightMiddle() { - return chkRightMiddle; - } - - public void setChkRightMiddle(SBICheckState chkRightMiddle) { - this.chkRightMiddle = chkRightMiddle; - } - - public SBICheckState getChkRightRing() { - return chkRightRing; - } - - public void setChkRightRing(SBICheckState chkRightRing) { - this.chkRightRing = chkRightRing; - } - - public SBICheckState getChkRightLittle() { - return chkRightLittle; - } - - public void setChkRightLittle(SBICheckState chkRightLittle) { - this.chkRightLittle = chkRightLittle; - } - - public SBICheckState getChkRightThumb() { - return chkRightThumb; - } - - public void setChkRightThumb(SBICheckState chkRightThumb) { - this.chkRightThumb = chkRightThumb; - } - - public SBICheckState getChkLeftThumb() { - return chkLeftThumb; - } - - public void setChkLeftThumb(SBICheckState chkLeftThumb) { - this.chkLeftThumb = chkLeftThumb; - } - - public SBICheckState getChkRightIris() { - return chkRightIris; - } - - public void setChkRightIris(SBICheckState chkRightIris) { - this.chkRightIris = chkRightIris; - } - - public SBICheckState getChkLeftIris() { - return chkLeftIris; - } - - public void setChkLeftIris(SBICheckState chkLeftIris) { - this.chkLeftIris = chkLeftIris; - } -} +package io.mosip.mock.sbi.devicehelper; + +import io.mosip.mock.sbi.SBIConstant; + +public class SBIBioSubTypeInfo { + private SBICheckState chkUnknown; + private SBICheckState chkLeftIndex; + private SBICheckState chkLeftMiddle; + private SBICheckState chkLeftRing; + private SBICheckState chkLeftLittle; + + private SBICheckState chkRightIndex; + private SBICheckState chkRightMiddle; + private SBICheckState chkRightRing; + private SBICheckState chkRightLittle; + + private SBICheckState chkRightThumb; + private SBICheckState chkLeftThumb; + + private SBICheckState chkRightIris; + private SBICheckState chkLeftIris; + + public SBIBioSubTypeInfo() { + super(); + } + + public void initBioSubType(String[] bioSubType) { + // TODO Auto-generated method stub + if (bioSubType != null && bioSubType.length > 0) + { + for (String tag : bioSubType){ + switch (tag.trim ()) + { + case SBIConstant.BIO_NAME_UNKNOWN: + setChkUnknown (SBICheckState.Checked); + break; + case SBIConstant.BIO_NAME_RIGHT_THUMB: + setChkRightThumb (SBICheckState.Checked); + break; + case SBIConstant.BIO_NAME_RIGHT_INDEX: + setChkRightIndex (SBICheckState.Checked); + break; + case SBIConstant.BIO_NAME_RIGHT_MIDDLE: + setChkRightMiddle (SBICheckState.Checked); + break; + case SBIConstant.BIO_NAME_RIGHT_RING: + setChkRightRing (SBICheckState.Checked); + break; + case SBIConstant.BIO_NAME_RIGHT_LITTLE: + setChkRightLittle (SBICheckState.Checked); + break; + case SBIConstant.BIO_NAME_LEFT_THUMB: + setChkLeftThumb (SBICheckState.Checked); + break; + case SBIConstant.BIO_NAME_LEFT_INDEX: + setChkLeftIndex (SBICheckState.Checked); + break; + case SBIConstant.BIO_NAME_LEFT_MIDDLE: + setChkLeftMiddle (SBICheckState.Checked); + break; + case SBIConstant.BIO_NAME_LEFT_RING: + setChkLeftRing (SBICheckState.Checked); + break; + case SBIConstant.BIO_NAME_LEFT_LITTLE: + setChkLeftLittle (SBICheckState.Checked); + break; + case SBIConstant.BIO_NAME_LEFT_IRIS: + setChkLeftIris (SBICheckState.Checked); + break; + case SBIConstant.BIO_NAME_RIGHT_IRIS: + setChkRightIris (SBICheckState.Checked); + break; + } + } + } + else + { + setChkUnknown (SBICheckState.Checked); + } + } + + public SBICheckState getChkUnknown() { + return chkUnknown; + } + + public void setChkUnknown(SBICheckState chkUnknown) { + this.chkUnknown = chkUnknown; + } + + public SBICheckState getChkLeftIndex() { + return chkLeftIndex; + } + + public void setChkLeftIndex(SBICheckState chkLeftIndex) { + this.chkLeftIndex = chkLeftIndex; + } + + public SBICheckState getChkLeftMiddle() { + return chkLeftMiddle; + } + + public void setChkLeftMiddle(SBICheckState chkLeftMiddle) { + this.chkLeftMiddle = chkLeftMiddle; + } + + public SBICheckState getChkLeftRing() { + return chkLeftRing; + } + + public void setChkLeftRing(SBICheckState chkLeftRing) { + this.chkLeftRing = chkLeftRing; + } + + public SBICheckState getChkLeftLittle() { + return chkLeftLittle; + } + + public void setChkLeftLittle(SBICheckState chkLeftLittle) { + this.chkLeftLittle = chkLeftLittle; + } + + public SBICheckState getChkRightIndex() { + return chkRightIndex; + } + + public void setChkRightIndex(SBICheckState chkRightIndex) { + this.chkRightIndex = chkRightIndex; + } + + public SBICheckState getChkRightMiddle() { + return chkRightMiddle; + } + + public void setChkRightMiddle(SBICheckState chkRightMiddle) { + this.chkRightMiddle = chkRightMiddle; + } + + public SBICheckState getChkRightRing() { + return chkRightRing; + } + + public void setChkRightRing(SBICheckState chkRightRing) { + this.chkRightRing = chkRightRing; + } + + public SBICheckState getChkRightLittle() { + return chkRightLittle; + } + + public void setChkRightLittle(SBICheckState chkRightLittle) { + this.chkRightLittle = chkRightLittle; + } + + public SBICheckState getChkRightThumb() { + return chkRightThumb; + } + + public void setChkRightThumb(SBICheckState chkRightThumb) { + this.chkRightThumb = chkRightThumb; + } + + public SBICheckState getChkLeftThumb() { + return chkLeftThumb; + } + + public void setChkLeftThumb(SBICheckState chkLeftThumb) { + this.chkLeftThumb = chkLeftThumb; + } + + public SBICheckState getChkRightIris() { + return chkRightIris; + } + + public void setChkRightIris(SBICheckState chkRightIris) { + this.chkRightIris = chkRightIris; + } + + public SBICheckState getChkLeftIris() { + return chkLeftIris; + } + + public void setChkLeftIris(SBICheckState chkLeftIris) { + this.chkLeftIris = chkLeftIris; + } +} diff --git a/MockMDS/src/main/java/io/mosip/mock/sbi/devicehelper/SBIDeviceHelper.java b/MockMDS/src/main/java/io/mosip/mock/sbi/devicehelper/SBIDeviceHelper.java index 1e505705..5395331f 100644 --- a/MockMDS/src/main/java/io/mosip/mock/sbi/devicehelper/SBIDeviceHelper.java +++ b/MockMDS/src/main/java/io/mosip/mock/sbi/devicehelper/SBIDeviceHelper.java @@ -77,31 +77,36 @@ protected DigitalId getDigitalId(String deviceType, String deviceSubType) { String fileName = null; try { ObjectMapper objectMapper = new ObjectMapper(); - if (deviceType.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_FINGER)) && - deviceSubType.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_FINGER_SLAP))) + switch (deviceType) { - fileName = FileHelper.getCanonicalPath () + ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_FINGER_SLAP_DIGITALID_JSON); - } - else if (deviceType.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_FINGER)) && - deviceSubType.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_FINGER_SINGLE))) - { - fileName = FileHelper.getCanonicalPath () + ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_FINGER_SINGLE_DIGITALID_JSON); - } - else if (deviceType.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_FACE)) && - deviceSubType.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_FACE))) - { - fileName = FileHelper.getCanonicalPath () + ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_FACE_DIGITALID_JSON); - } - else if (deviceType.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_IRIS)) && - deviceSubType.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_IRIS_DOUBLE))) - { - fileName = FileHelper.getCanonicalPath () + ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_IRIS_DOUBLE_DIGITALID_JSON); - } - else if (deviceType.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_IRIS)) && - deviceSubType.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_IRIS_SINGLE))) - { - fileName = FileHelper.getCanonicalPath () + ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_IRIS_SINGLE_DIGITALID_JSON); + case SBIConstant.MOSIP_BIOMETRIC_TYPE_FINGER: + switch (deviceSubType) + { + case SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_FINGER_SLAP: + fileName = FileHelper.getCanonicalPath () + ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_FINGER_SLAP_DIGITALID_JSON); + break; + case SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_FINGER_SINGLE: + fileName = FileHelper.getCanonicalPath () + ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_FINGER_SINGLE_DIGITALID_JSON); + break; + } + break; + case SBIConstant.MOSIP_BIOMETRIC_TYPE_FACE: + if (deviceSubType.equalsIgnoreCase(SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_FACE)) + fileName = FileHelper.getCanonicalPath () + ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_FACE_DIGITALID_JSON); + break; + case SBIConstant.MOSIP_BIOMETRIC_TYPE_IRIS: + switch (deviceSubType) + { + case SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_IRIS_DOUBLE: + fileName = FileHelper.getCanonicalPath () + ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_IRIS_DOUBLE_DIGITALID_JSON); + break; + case SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_IRIS_SINGLE: + fileName = FileHelper.getCanonicalPath () + ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_IRIS_SINGLE_DIGITALID_JSON); + break; + } + break; } + if (FileHelper.exists(fileName)) { File file = new File(fileName); @@ -124,30 +129,34 @@ protected DiscoverDto getDiscoverInfo(String deviceType, String deviceSubType, D String fileName = null; try { ObjectMapper objectMapper = new ObjectMapper(); - if (deviceType.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_FINGER)) && - deviceSubType.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_FINGER_SLAP))) - { - fileName = FileHelper.getCanonicalPath () + ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_FINGER_SLAP_DEVICEDEISCOVERYINFO_JSON); - } - else if (deviceType.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_FINGER)) && - deviceSubType.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_FINGER_SINGLE))) + switch (deviceType) { - fileName = FileHelper.getCanonicalPath () + ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_FINGER_SINGLE_DEVICEDEISCOVERYINFO_JSON); - } - else if (deviceType.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_FACE)) && - deviceSubType.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_FACE))) - { - fileName = FileHelper.getCanonicalPath () + ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_FACE_DEVICEDEISCOVERYINFO_JSON); - } - else if (deviceType.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_IRIS)) && - deviceSubType.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_IRIS_DOUBLE))) - { - fileName = FileHelper.getCanonicalPath () + ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_IRIS_DOUBLE_DEVICEDEISCOVERYINFO_JSON); - } - else if (deviceType.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_IRIS)) && - deviceSubType.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_IRIS_SINGLE))) - { - fileName = FileHelper.getCanonicalPath () + ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_IRIS_SINGLE_DEVICEDEISCOVERYINFO_JSON); + case SBIConstant.MOSIP_BIOMETRIC_TYPE_FINGER: + switch (deviceSubType) + { + case SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_FINGER_SLAP: + fileName = FileHelper.getCanonicalPath () + ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_FINGER_SLAP_DEVICEDEISCOVERYINFO_JSON); + break; + case SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_FINGER_SINGLE: + fileName = FileHelper.getCanonicalPath () + ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_FINGER_SINGLE_DEVICEDEISCOVERYINFO_JSON); + break; + } + break; + case SBIConstant.MOSIP_BIOMETRIC_TYPE_FACE: + if (deviceSubType.equalsIgnoreCase(SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_FACE)) + fileName = FileHelper.getCanonicalPath () + ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_FACE_DEVICEDEISCOVERYINFO_JSON); + break; + case SBIConstant.MOSIP_BIOMETRIC_TYPE_IRIS: + switch (deviceSubType) + { + case SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_IRIS_DOUBLE: + fileName = FileHelper.getCanonicalPath () + ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_IRIS_DOUBLE_DEVICEDEISCOVERYINFO_JSON); + break; + case SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_IRIS_SINGLE: + fileName = FileHelper.getCanonicalPath () + ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_IRIS_SINGLE_DEVICEDEISCOVERYINFO_JSON); + break; + } + break; } if (FileHelper.exists(fileName)) @@ -161,24 +170,23 @@ else if (deviceType.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyVal discoverDto.setPurpose(getPurpose ()); discoverDto.setCallbackId("http://" + ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.SERVER_ADDRESS) + ":" + getPort() + "/"); - if (getDeviceStatus().equalsIgnoreCase(SBIConstant.DEVICE_STATUS_NOTREADY)) - { - discoverDto.setError(new ErrorInfo ("110", SBIJsonInfo.getErrorDescription("en", "110"))); - } - else if (getDeviceStatus().equalsIgnoreCase(SBIConstant.DEVICE_STATUS_ISBUSY)) - { - discoverDto.setError(new ErrorInfo ("111", SBIJsonInfo.getErrorDescription("en", "111"))); - } - else if (getDeviceStatus().equalsIgnoreCase(SBIConstant.DEVICE_STATUS_NOTREGISTERED)) - { - discoverDto.setDeviceId(""); - discoverDto.setDeviceCode(""); - discoverDto.setPurpose(""); - discoverDto.setError(new ErrorInfo ("100", SBIJsonInfo.getErrorDescription("en", "100"))); - } - else - { - discoverDto.setError(new ErrorInfo ("0", SBIJsonInfo.getErrorDescription("en", "0"))); + switch (getDeviceStatus()) + { + case SBIConstant.DEVICE_STATUS_NOTREADY: + discoverDto.setError(new ErrorInfo ("110", SBIJsonInfo.getErrorDescription("en", "110"))); + break; + case SBIConstant.DEVICE_STATUS_ISBUSY: + discoverDto.setError(new ErrorInfo ("111", SBIJsonInfo.getErrorDescription("en", "111"))); + break; + case SBIConstant.DEVICE_STATUS_NOTREGISTERED: + discoverDto.setDeviceId(""); + discoverDto.setDeviceCode(""); + discoverDto.setPurpose(""); + discoverDto.setError(new ErrorInfo ("100", SBIJsonInfo.getErrorDescription("en", "100"))); + break; + default: + discoverDto.setError(new ErrorInfo ("0", SBIJsonInfo.getErrorDescription("en", "0"))); + break; } } @@ -200,49 +208,51 @@ protected DeviceInfo getDeviceInfo(String deviceType, String deviceSubType, Digi try { String purpose = getPurpose (); ObjectMapper objectMapper = new ObjectMapper(); - - if (deviceType.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_FINGER)) && - deviceSubType.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_FINGER_SLAP))) - { - fileName = FileHelper.getCanonicalPath () + ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_FINGER_SLAP_DEVICEINFO_JSON); - keyStoreFileName = FileHelper.getCanonicalPath () + (purpose.equalsIgnoreCase(SBIConstant.PURPOSE_AUTH) ? ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_FINGER_SLAP_KEYSTORE_FILE_NAME_FTM) : ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_FINGER_SLAP_KEYSTORE_FILE_NAME)); - keyAlias = (purpose.equalsIgnoreCase(SBIConstant.PURPOSE_AUTH) ? ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_FINGER_SLAP_KEY_ALIAS_FTM) : ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_FINGER_SLAP_KEY_ALIAS)); - keyPwd = (purpose.equalsIgnoreCase(SBIConstant.PURPOSE_AUTH) ? ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_FINGER_SLAP_KEYSTORE_PWD_FTM) : ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_FINGER_SLAP_KEYSTORE_PWD)); - } - else if (deviceType.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_FINGER)) && - deviceSubType.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_FINGER_SINGLE))) - { - fileName = FileHelper.getCanonicalPath () + ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_FINGER_SINGLE_DEVICEINFO_JSON); - keyStoreFileName = FileHelper.getCanonicalPath () + (purpose.equalsIgnoreCase(SBIConstant.PURPOSE_AUTH) ? ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_FINGER_SINGLE_KEYSTORE_FILE_NAME_FTM) : ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_FINGER_SINGLE_KEYSTORE_FILE_NAME)); - keyAlias = (purpose.equalsIgnoreCase(SBIConstant.PURPOSE_AUTH) ? ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_FINGER_SINGLE_KEY_ALIAS_FTM) : ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_FINGER_SINGLE_KEY_ALIAS)); - keyPwd = (purpose.equalsIgnoreCase(SBIConstant.PURPOSE_AUTH) ? ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_FINGER_SINGLE_KEYSTORE_PWD_FTM) : ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_FINGER_SINGLE_KEYSTORE_PWD)); - } - else if (deviceType.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_FACE)) && - deviceSubType.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_FACE))) - { - fileName = FileHelper.getCanonicalPath () + ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_FACE_DEVICEINFO_JSON); - - keyStoreFileName = FileHelper.getCanonicalPath () + (purpose.equalsIgnoreCase(SBIConstant.PURPOSE_AUTH) ? ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_FACE_KEYSTORE_FILE_NAME_FTM) : ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_FACE_KEYSTORE_FILE_NAME)); - keyAlias = (purpose.equalsIgnoreCase(SBIConstant.PURPOSE_AUTH) ? ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_FACE_KEY_ALIAS_FTM) : ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_FACE_KEY_ALIAS)); - keyPwd = (purpose.equalsIgnoreCase(SBIConstant.PURPOSE_AUTH) ? ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_FACE_KEYSTORE_PWD_FTM) : ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_FACE_KEYSTORE_PWD)); - } - else if (deviceType.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_IRIS)) && - deviceSubType.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_IRIS_DOUBLE))) - { - fileName = FileHelper.getCanonicalPath () + ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_IRIS_DOUBLE_DEVICEINFO_JSON); - - keyStoreFileName = FileHelper.getCanonicalPath () + (purpose.equalsIgnoreCase(SBIConstant.PURPOSE_AUTH) ? ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_IRIS_DOUBLE_KEYSTORE_FILE_NAME_FTM) : ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_IRIS_DOUBLE_KEYSTORE_FILE_NAME)); - keyAlias = (purpose.equalsIgnoreCase(SBIConstant.PURPOSE_AUTH) ? ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_IRIS_DOUBLE_KEY_ALIAS_FTM) : ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_IRIS_DOUBLE_KEY_ALIAS)); - keyPwd = (purpose.equalsIgnoreCase(SBIConstant.PURPOSE_AUTH) ? ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_IRIS_DOUBLE_KEYSTORE_PWD_FTM) : ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_IRIS_DOUBLE_KEYSTORE_PWD)); - } - else if (deviceType.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_IRIS)) && - deviceSubType.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_IRIS_SINGLE))) + switch (deviceType) { - fileName = FileHelper.getCanonicalPath () + ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_IRIS_SINGLE_DEVICEINFO_JSON); - - keyStoreFileName = FileHelper.getCanonicalPath () + (purpose.equalsIgnoreCase(SBIConstant.PURPOSE_AUTH) ? ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_IRIS_SINGLE_KEYSTORE_FILE_NAME_FTM) : ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_IRIS_SINGLE_KEYSTORE_FILE_NAME)); - keyAlias = (purpose.equalsIgnoreCase(SBIConstant.PURPOSE_AUTH) ? ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_IRIS_SINGLE_KEY_ALIAS_FTM) : ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_IRIS_SINGLE_KEY_ALIAS)); - keyPwd = (purpose.equalsIgnoreCase(SBIConstant.PURPOSE_AUTH) ? ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_IRIS_SINGLE_KEYSTORE_PWD_FTM) : ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_IRIS_SINGLE_KEYSTORE_PWD)); + case SBIConstant.MOSIP_BIOMETRIC_TYPE_FINGER: + switch (deviceSubType) + { + case SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_FINGER_SLAP: + fileName = FileHelper.getCanonicalPath () + ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_FINGER_SLAP_DEVICEINFO_JSON); + keyStoreFileName = FileHelper.getCanonicalPath () + (purpose.equalsIgnoreCase(SBIConstant.PURPOSE_AUTH) ? ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_FINGER_SLAP_KEYSTORE_FILE_NAME_FTM) : ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_FINGER_SLAP_KEYSTORE_FILE_NAME)); + keyAlias = (purpose.equalsIgnoreCase(SBIConstant.PURPOSE_AUTH) ? ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_FINGER_SLAP_KEY_ALIAS_FTM) : ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_FINGER_SLAP_KEY_ALIAS)); + keyPwd = (purpose.equalsIgnoreCase(SBIConstant.PURPOSE_AUTH) ? ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_FINGER_SLAP_KEYSTORE_PWD_FTM) : ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_FINGER_SLAP_KEYSTORE_PWD)); + break; + case SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_FINGER_SINGLE: + fileName = FileHelper.getCanonicalPath () + ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_FINGER_SINGLE_DEVICEINFO_JSON); + keyStoreFileName = FileHelper.getCanonicalPath () + (purpose.equalsIgnoreCase(SBIConstant.PURPOSE_AUTH) ? ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_FINGER_SINGLE_KEYSTORE_FILE_NAME_FTM) : ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_FINGER_SINGLE_KEYSTORE_FILE_NAME)); + keyAlias = (purpose.equalsIgnoreCase(SBIConstant.PURPOSE_AUTH) ? ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_FINGER_SINGLE_KEY_ALIAS_FTM) : ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_FINGER_SINGLE_KEY_ALIAS)); + keyPwd = (purpose.equalsIgnoreCase(SBIConstant.PURPOSE_AUTH) ? ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_FINGER_SINGLE_KEYSTORE_PWD_FTM) : ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_FINGER_SINGLE_KEYSTORE_PWD)); + break; + } + break; + case SBIConstant.MOSIP_BIOMETRIC_TYPE_FACE: + if (deviceSubType.equalsIgnoreCase(SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_FACE)) + { + fileName = FileHelper.getCanonicalPath () + ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_FACE_DEVICEINFO_JSON); + keyStoreFileName = FileHelper.getCanonicalPath () + (purpose.equalsIgnoreCase(SBIConstant.PURPOSE_AUTH) ? ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_FACE_KEYSTORE_FILE_NAME_FTM) : ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_FACE_KEYSTORE_FILE_NAME)); + keyAlias = (purpose.equalsIgnoreCase(SBIConstant.PURPOSE_AUTH) ? ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_FACE_KEY_ALIAS_FTM) : ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_FACE_KEY_ALIAS)); + keyPwd = (purpose.equalsIgnoreCase(SBIConstant.PURPOSE_AUTH) ? ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_FACE_KEYSTORE_PWD_FTM) : ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_FACE_KEYSTORE_PWD)); + } + break; + case SBIConstant.MOSIP_BIOMETRIC_TYPE_IRIS: + switch (deviceSubType) + { + case SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_IRIS_DOUBLE: + fileName = FileHelper.getCanonicalPath () + ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_IRIS_DOUBLE_DEVICEINFO_JSON); + keyStoreFileName = FileHelper.getCanonicalPath () + (purpose.equalsIgnoreCase(SBIConstant.PURPOSE_AUTH) ? ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_IRIS_DOUBLE_KEYSTORE_FILE_NAME_FTM) : ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_IRIS_DOUBLE_KEYSTORE_FILE_NAME)); + keyAlias = (purpose.equalsIgnoreCase(SBIConstant.PURPOSE_AUTH) ? ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_IRIS_DOUBLE_KEY_ALIAS_FTM) : ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_IRIS_DOUBLE_KEY_ALIAS)); + keyPwd = (purpose.equalsIgnoreCase(SBIConstant.PURPOSE_AUTH) ? ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_IRIS_DOUBLE_KEYSTORE_PWD_FTM) : ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_IRIS_DOUBLE_KEYSTORE_PWD)); + break; + case SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_IRIS_SINGLE: + fileName = FileHelper.getCanonicalPath () + ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_IRIS_SINGLE_DEVICEINFO_JSON); + keyStoreFileName = FileHelper.getCanonicalPath () + (purpose.equalsIgnoreCase(SBIConstant.PURPOSE_AUTH) ? ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_IRIS_SINGLE_KEYSTORE_FILE_NAME_FTM) : ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_IRIS_SINGLE_KEYSTORE_FILE_NAME)); + keyAlias = (purpose.equalsIgnoreCase(SBIConstant.PURPOSE_AUTH) ? ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_IRIS_SINGLE_KEY_ALIAS_FTM) : ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_IRIS_SINGLE_KEY_ALIAS)); + keyPwd = (purpose.equalsIgnoreCase(SBIConstant.PURPOSE_AUTH) ? ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_IRIS_SINGLE_KEYSTORE_PWD_FTM) : ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_IRIS_SINGLE_KEYSTORE_PWD)); + break; + } + break; } if (FileHelper.exists(fileName) && FileHelper.exists(keyStoreFileName)) @@ -310,41 +320,46 @@ protected DeviceInfoDto getDeviceInfoDto(String deviceType, String deviceSubType try { ObjectMapper objectMapper = new ObjectMapper(); - - if (deviceType.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_FINGER)) && - deviceSubType.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_FINGER_SLAP))) - { - keyStoreFileName = FileHelper.getCanonicalPath () + ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_FINGER_SLAP_KEYSTORE_FILE_NAME); - keyAlias = ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_FINGER_SLAP_KEY_ALIAS); - keyPwd = ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_FINGER_SLAP_KEYSTORE_PWD); - } - else if (deviceType.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_FINGER)) && - deviceSubType.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_FINGER_SINGLE))) - { - keyStoreFileName = FileHelper.getCanonicalPath () + ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_FINGER_SINGLE_KEYSTORE_FILE_NAME); - keyAlias = ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_FINGER_SINGLE_KEY_ALIAS); - keyPwd = ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_FINGER_SINGLE_KEYSTORE_PWD); - } - else if (deviceType.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_FACE)) && - deviceSubType.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_FACE))) - { - keyStoreFileName = FileHelper.getCanonicalPath () + ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_FACE_KEYSTORE_FILE_NAME); - keyAlias = ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_FACE_KEY_ALIAS); - keyPwd = ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_FACE_KEYSTORE_PWD); - } - else if (deviceType.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_IRIS)) && - deviceSubType.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_IRIS_DOUBLE))) - { - keyStoreFileName = FileHelper.getCanonicalPath () + ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_IRIS_DOUBLE_KEYSTORE_FILE_NAME); - keyAlias = ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_IRIS_DOUBLE_KEY_ALIAS); - keyPwd = ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_IRIS_DOUBLE_KEYSTORE_PWD); - } - else if (deviceType.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_IRIS)) && - deviceSubType.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_IRIS_SINGLE))) + switch (deviceType) { - keyStoreFileName = FileHelper.getCanonicalPath () + ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_IRIS_SINGLE_KEYSTORE_FILE_NAME); - keyAlias = ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_IRIS_SINGLE_KEY_ALIAS); - keyPwd = ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_IRIS_SINGLE_KEYSTORE_PWD); + case SBIConstant.MOSIP_BIOMETRIC_TYPE_FINGER: + switch (deviceSubType) + { + case SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_FINGER_SLAP: + keyStoreFileName = FileHelper.getCanonicalPath () + ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_FINGER_SLAP_KEYSTORE_FILE_NAME); + keyAlias = ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_FINGER_SLAP_KEY_ALIAS); + keyPwd = ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_FINGER_SLAP_KEYSTORE_PWD); + break; + case SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_FINGER_SINGLE: + keyStoreFileName = FileHelper.getCanonicalPath () + ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_FINGER_SINGLE_KEYSTORE_FILE_NAME); + keyAlias = ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_FINGER_SINGLE_KEY_ALIAS); + keyPwd = ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_FINGER_SINGLE_KEYSTORE_PWD); + break; + } + break; + case SBIConstant.MOSIP_BIOMETRIC_TYPE_FACE: + if (deviceSubType.equalsIgnoreCase(SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_FACE)) + { + keyStoreFileName = FileHelper.getCanonicalPath () + ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_FACE_KEYSTORE_FILE_NAME); + keyAlias = ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_FACE_KEY_ALIAS); + keyPwd = ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_FACE_KEYSTORE_PWD); + } + break; + case SBIConstant.MOSIP_BIOMETRIC_TYPE_IRIS: + switch (deviceSubType) + { + case SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_IRIS_DOUBLE: + keyStoreFileName = FileHelper.getCanonicalPath () + ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_IRIS_DOUBLE_KEYSTORE_FILE_NAME); + keyAlias = ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_IRIS_DOUBLE_KEY_ALIAS); + keyPwd = ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_IRIS_DOUBLE_KEYSTORE_PWD); + break; + case SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_IRIS_SINGLE: + keyStoreFileName = FileHelper.getCanonicalPath () + ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_IRIS_SINGLE_KEYSTORE_FILE_NAME); + keyAlias = ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_IRIS_SINGLE_KEY_ALIAS); + keyPwd = ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_IRIS_SINGLE_KEYSTORE_PWD); + break; + } + break; } if (FileHelper.exists(keyStoreFileName)) @@ -370,27 +385,26 @@ else if (deviceType.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyVal /* Here it prints the private key*/ //LOGGER.Info("\nPrivate Key:"); //LOGGER.Info(key); - if (getDeviceStatus().equalsIgnoreCase(SBIConstant.DEVICE_STATUS_NOTREADY)) - { - deviceInfoDto.setDeviceInfo(JwtUtility.getJwt(strDeviceInfo.getBytes("UTF-8"), key, (X509Certificate) cert)); - deviceInfoDto.setError(new ErrorInfo ("110", SBIJsonInfo.getErrorDescription("en", "110"))); - } - else if (getDeviceStatus().equalsIgnoreCase(SBIConstant.DEVICE_STATUS_ISBUSY)) - { - deviceInfoDto.setDeviceInfo(JwtUtility.getJwt(strDeviceInfo.getBytes("UTF-8"), key, (X509Certificate) cert)); - deviceInfoDto.setError(new ErrorInfo ("111", SBIJsonInfo.getErrorDescription("en", "111"))); + switch (getDeviceStatus()) + { + case SBIConstant.DEVICE_STATUS_NOTREADY: + deviceInfoDto.setDeviceInfo(JwtUtility.getJwt(strDeviceInfo.getBytes("UTF-8"), key, (X509Certificate) cert)); + deviceInfoDto.setError(new ErrorInfo ("110", SBIJsonInfo.getErrorDescription("en", "110"))); + break; + case SBIConstant.DEVICE_STATUS_ISBUSY: + deviceInfoDto.setDeviceInfo(JwtUtility.getJwt(strDeviceInfo.getBytes("UTF-8"), key, (X509Certificate) cert)); + deviceInfoDto.setError(new ErrorInfo ("111", SBIJsonInfo.getErrorDescription("en", "111"))); + break; + case SBIConstant.DEVICE_STATUS_NOTREGISTERED: + deviceInfoDto.setDeviceInfo(getUnsignedDeviceInfo (deviceInfo, true)); + deviceInfoDto.setError(new ErrorInfo ("100", SBIJsonInfo.getErrorDescription("en", "100"))); + break; + default: + deviceInfoDto.setDeviceInfo(JwtUtility.getJwt(strDeviceInfo.getBytes("UTF-8"), key, (X509Certificate) cert)); + deviceInfoDto.setError(new ErrorInfo ("0", SBIJsonInfo.getErrorDescription("en", "0"))); + break; } - else if (getDeviceStatus().equalsIgnoreCase(SBIConstant.DEVICE_STATUS_NOTREGISTERED)) - { - deviceInfoDto.setDeviceInfo(getUnsignedDeviceInfo (deviceInfo, true)); - deviceInfoDto.setError(new ErrorInfo ("100", SBIJsonInfo.getErrorDescription("en", "100"))); - } - else - { - deviceInfoDto.setDeviceInfo(JwtUtility.getJwt(strDeviceInfo.getBytes("UTF-8"), key, (X509Certificate) cert)); - deviceInfoDto.setError(new ErrorInfo ("0", SBIJsonInfo.getErrorDescription("en", "0"))); - } - + return deviceInfoDto ; } } catch (Exception ex) { @@ -413,40 +427,46 @@ public String getSignBioMetricsDataDto(String deviceType, String deviceSubType, FileInputStream inputStream = null; try { - if (deviceType.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_FINGER)) && - deviceSubType.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_FINGER_SLAP))) - { - keyStoreFileName = FileHelper.getCanonicalPath () + ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_FINGER_SLAP_KEYSTORE_FILE_NAME); - keyAlias = ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_FINGER_SLAP_KEY_ALIAS); - keyPwd = ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_FINGER_SLAP_KEYSTORE_PWD); - } - else if (deviceType.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_FINGER)) && - deviceSubType.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_FINGER_SINGLE))) - { - keyStoreFileName = FileHelper.getCanonicalPath () + ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_FINGER_SINGLE_KEYSTORE_FILE_NAME); - keyAlias = ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_FINGER_SINGLE_KEY_ALIAS); - keyPwd = ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_FINGER_SINGLE_KEYSTORE_PWD); - } - else if (deviceType.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_FACE)) && - deviceSubType.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_FACE))) + switch (deviceType) { - keyStoreFileName = FileHelper.getCanonicalPath () + ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_FACE_KEYSTORE_FILE_NAME); - keyAlias = ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_FACE_KEY_ALIAS); - keyPwd = ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_FACE_KEYSTORE_PWD); - } - else if (deviceType.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_IRIS)) && - deviceSubType.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_IRIS_DOUBLE))) - { - keyStoreFileName = FileHelper.getCanonicalPath () + ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_IRIS_DOUBLE_KEYSTORE_FILE_NAME); - keyAlias = ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_IRIS_DOUBLE_KEY_ALIAS); - keyPwd = ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_IRIS_DOUBLE_KEYSTORE_PWD); - } - else if (deviceType.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_IRIS)) && - deviceSubType.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_IRIS_SINGLE))) - { - keyStoreFileName = FileHelper.getCanonicalPath () + ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_IRIS_SINGLE_KEYSTORE_FILE_NAME); - keyAlias = ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_IRIS_SINGLE_KEY_ALIAS); - keyPwd = ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_IRIS_SINGLE_KEYSTORE_PWD); + case SBIConstant.MOSIP_BIOMETRIC_TYPE_FINGER: + switch (deviceSubType) + { + case SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_FINGER_SLAP: + keyStoreFileName = FileHelper.getCanonicalPath () + ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_FINGER_SLAP_KEYSTORE_FILE_NAME); + keyAlias = ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_FINGER_SLAP_KEY_ALIAS); + keyPwd = ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_FINGER_SLAP_KEYSTORE_PWD); + break; + case SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_FINGER_SINGLE: + keyStoreFileName = FileHelper.getCanonicalPath () + ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_FINGER_SINGLE_KEYSTORE_FILE_NAME); + keyAlias = ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_FINGER_SINGLE_KEY_ALIAS); + keyPwd = ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_FINGER_SINGLE_KEYSTORE_PWD); + break; + } + break; + case SBIConstant.MOSIP_BIOMETRIC_TYPE_FACE: + if (deviceSubType.equalsIgnoreCase(SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_FACE)) + { + keyStoreFileName = FileHelper.getCanonicalPath () + ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_FACE_KEYSTORE_FILE_NAME); + keyAlias = ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_FACE_KEY_ALIAS); + keyPwd = ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_FACE_KEYSTORE_PWD); + } + break; + case SBIConstant.MOSIP_BIOMETRIC_TYPE_IRIS: + switch (deviceSubType) + { + case SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_IRIS_DOUBLE: + keyStoreFileName = FileHelper.getCanonicalPath () + ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_IRIS_DOUBLE_KEYSTORE_FILE_NAME); + keyAlias = ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_IRIS_DOUBLE_KEY_ALIAS); + keyPwd = ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_IRIS_DOUBLE_KEYSTORE_PWD); + break; + case SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_IRIS_SINGLE: + keyStoreFileName = FileHelper.getCanonicalPath () + ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_IRIS_SINGLE_KEYSTORE_FILE_NAME); + keyAlias = ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_IRIS_SINGLE_KEY_ALIAS); + keyPwd = ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_IRIS_SINGLE_KEYSTORE_PWD); + break; + } + break; } if (FileHelper.exists(keyStoreFileName)) @@ -552,32 +572,55 @@ protected byte[] getLiveStreamBufferedImage() { byte[] image = null; String fileName = null; try { - if (getDeviceType().equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_FINGER)) && - getDeviceSubType().equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_FINGER_SLAP))) - { - if (getDeviceSubId () == SBIConstant.DEVICE_FINGER_SLAP_SUB_TYPE_ID_LEFT) - fileName = FileHelper.getCanonicalPath () + ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_FINGER_SLAP_SUBID_LEFT_HAND); - else if (getDeviceSubId () == SBIConstant.DEVICE_FINGER_SLAP_SUB_TYPE_ID_RIGHT) - fileName = FileHelper.getCanonicalPath () + ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_FINGER_SLAP_SUBID_RIGHT_HAND); - else if (getDeviceSubId () == SBIConstant.DEVICE_FINGER_SLAP_SUB_TYPE_ID_THUMB) - fileName = FileHelper.getCanonicalPath () + ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_FINGER_SLAP_SUBID_THUMBS); - } - else if (getDeviceType().equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_FACE)) && - getDeviceSubType().equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_FACE))) - { - if (getDeviceSubId () == SBIConstant.DEVICE_FACE_SUB_TYPE_ID_FULLFACE) - fileName = FileHelper.getCanonicalPath () + ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_FACE_SUBID_FULLFACE); - } - else if (getDeviceType().equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_IRIS)) && - getDeviceSubType().equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_IRIS_DOUBLE))) + switch (getDeviceType()) { - if (getDeviceSubId () == SBIConstant.DEVICE_IRIS_DOUBLE_SUB_TYPE_ID_LEFT) - fileName = FileHelper.getCanonicalPath () + ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_IRIS_DOUBLE_SUBID_LEFT); - else if (getDeviceSubId () == SBIConstant.DEVICE_IRIS_DOUBLE_SUB_TYPE_ID_RIGHT) - fileName = FileHelper.getCanonicalPath () + ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_IRIS_DOUBLE_SUBID_RIGHT); - else if (getDeviceSubId () == SBIConstant.DEVICE_IRIS_DOUBLE_SUB_TYPE_ID_BOTH) - fileName = FileHelper.getCanonicalPath () + ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_IRIS_DOUBLE_SUBID_BOTH); + case SBIConstant.MOSIP_BIOMETRIC_TYPE_FINGER: + switch (getDeviceSubType()) + { + case SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_FINGER_SLAP: + switch (getDeviceSubId ()) + { + case SBIConstant.DEVICE_FINGER_SLAP_SUB_TYPE_ID_LEFT: + fileName = FileHelper.getCanonicalPath () + ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_FINGER_SLAP_SUBID_LEFT_HAND); + break; + case SBIConstant.DEVICE_FINGER_SLAP_SUB_TYPE_ID_RIGHT: + fileName = FileHelper.getCanonicalPath () + ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_FINGER_SLAP_SUBID_RIGHT_HAND); + break; + case SBIConstant.DEVICE_FINGER_SLAP_SUB_TYPE_ID_THUMB: + fileName = FileHelper.getCanonicalPath () + ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_FINGER_SLAP_SUBID_THUMBS); + break; + } + break; + } + break; + case SBIConstant.MOSIP_BIOMETRIC_TYPE_FACE: + if (deviceSubType.equalsIgnoreCase(SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_FACE)) + { + if (getDeviceSubId () == SBIConstant.DEVICE_FACE_SUB_TYPE_ID_FULLFACE) + fileName = FileHelper.getCanonicalPath () + ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_FACE_SUBID_FULLFACE); + } + break; + case SBIConstant.MOSIP_BIOMETRIC_TYPE_IRIS: + switch (getDeviceSubType()) + { + case SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_IRIS_DOUBLE: + switch (getDeviceSubId ()) + { + case SBIConstant.DEVICE_IRIS_DOUBLE_SUB_TYPE_ID_LEFT: + fileName = FileHelper.getCanonicalPath () + ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_IRIS_DOUBLE_SUBID_LEFT); + break; + case SBIConstant.DEVICE_IRIS_DOUBLE_SUB_TYPE_ID_RIGHT: + fileName = FileHelper.getCanonicalPath () + ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_IRIS_DOUBLE_SUBID_RIGHT); + break; + case SBIConstant.DEVICE_IRIS_DOUBLE_SUB_TYPE_ID_BOTH: + fileName = FileHelper.getCanonicalPath () + ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_STREAM_IRIS_DOUBLE_SUBID_BOTH); + break; + } + break; + } + break; } + if (FileHelper.exists(fileName)) { //image = FileHelper.readAllBytes ImageIO.read(new File(fileName)); @@ -685,29 +728,32 @@ public void setDeviceInfoDto(DeviceInfoDto deviceInfoDto) { } public String getDeviceStatus() { + String status = null; if (this.statusMap == null) this.statusMap = new HashMap<> (); if ((this.statusMap.containsKey(SBIConstant.DEVICE_STATUS) == false || SBIConstant.DEVICE_STATUS_ISREADY.equalsIgnoreCase (this.statusMap.get(SBIConstant.DEVICE_STATUS)))) { - return SBIConstant.DEVICE_STATUS_ISREADY; - } - if (SBIConstant.DEVICE_STATUS_ISBUSY.equalsIgnoreCase (this.statusMap.get(SBIConstant.DEVICE_STATUS))) - { - return SBIConstant.DEVICE_STATUS_ISBUSY; - } - else if (SBIConstant.DEVICE_STATUS_ISREADY.equalsIgnoreCase (this.statusMap.get(SBIConstant.DEVICE_STATUS))) - { - return SBIConstant.DEVICE_STATUS_ISREADY; - } - else if (SBIConstant.DEVICE_STATUS_NOTREGISTERED.equalsIgnoreCase (this.statusMap.get(SBIConstant.DEVICE_STATUS))) - { - return SBIConstant.DEVICE_STATUS_NOTREGISTERED; - } - else - { - return SBIConstant.DEVICE_STATUS_NOTREADY; + status = SBIConstant.DEVICE_STATUS_ISREADY;; + return status; } + switch (getDeviceStatus(SBIConstant.DEVICE_STATUS)) + { + case SBIConstant.DEVICE_STATUS_ISBUSY: + status = SBIConstant.DEVICE_STATUS_ISBUSY; + break; + case SBIConstant.DEVICE_STATUS_ISREADY: + status = SBIConstant.DEVICE_STATUS_ISREADY; + break; + case SBIConstant.DEVICE_STATUS_NOTREGISTERED: + status = SBIConstant.DEVICE_STATUS_NOTREGISTERED; + break; + default: + status = SBIConstant.DEVICE_STATUS_NOTREADY; + break; + + } + return status; } public void setDeviceStatus(String deviceStatus) { @@ -717,6 +763,12 @@ public void setDeviceStatus(String deviceStatus) { this.statusMap.put(SBIConstant.DEVICE_STATUS, deviceStatus); } + public String getDeviceStatus(String key) { + if (this.statusMap.containsKey(key)) + return this.statusMap.get(key); + return null; + } + public boolean isScoreFromIso() { return scoreFromIso; } diff --git a/MockMDS/src/main/java/io/mosip/mock/sbi/devicehelper/face/SBIFaceHelper.java b/MockMDS/src/main/java/io/mosip/mock/sbi/devicehelper/face/SBIFaceHelper.java index c811e501..24eceb1b 100644 --- a/MockMDS/src/main/java/io/mosip/mock/sbi/devicehelper/face/SBIFaceHelper.java +++ b/MockMDS/src/main/java/io/mosip/mock/sbi/devicehelper/face/SBIFaceHelper.java @@ -19,7 +19,7 @@ public class SBIFaceHelper extends SBIDeviceHelper { private SBIFaceHelper(int port, String purpose) { - super (port, purpose, ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_FACE), ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_FACE)); + super (port, purpose, SBIConstant.MOSIP_BIOMETRIC_TYPE_FACE, SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_FACE); } //synchronized method to control simultaneous access @@ -72,6 +72,7 @@ public int getBioCapture(boolean isUsedForAuthenication) throws Exception { seedName = String.format("%04d", getRandomNumberForSeed(seedValue)).trim(); } } + if (!isUsedForAuthenication) { isoData = getBiometricISOImage(seedName, SBIConstant.PROFILE_BIO_FILE_NAME_FACE); @@ -113,7 +114,8 @@ public int getBioCapture(boolean isUsedForAuthenication) throws Exception { else ((SBIFaceCaptureInfo)getCaptureInfo ()).setCaptureScoreFace(getQualityScore()); ((SBIFaceCaptureInfo)getCaptureInfo ()).setCaptureFace(true); - } + } + if (((SBIFaceCaptureInfo)getCaptureInfo ()).isCaptureFace()) getCaptureInfo ().setCaptureCompleted(true); } diff --git a/MockMDS/src/main/java/io/mosip/mock/sbi/devicehelper/finger/single/SBIFingerSingleBioExceptionInfo.java b/MockMDS/src/main/java/io/mosip/mock/sbi/devicehelper/finger/single/SBIFingerSingleBioExceptionInfo.java index 195ff363..0df13815 100644 --- a/MockMDS/src/main/java/io/mosip/mock/sbi/devicehelper/finger/single/SBIFingerSingleBioExceptionInfo.java +++ b/MockMDS/src/main/java/io/mosip/mock/sbi/devicehelper/finger/single/SBIFingerSingleBioExceptionInfo.java @@ -35,46 +35,39 @@ public void initBioException(String[] bioException) { if (bioException != null && bioException.length > 0) { for (String tag : bioException){ - if (tag.trim ().equals (SBIConstant.BIO_NAME_RIGHT_THUMB)) - { - setChkMissingRightThumb (SBICheckState.Checked); - } - else if (tag.trim ().equals (SBIConstant.BIO_NAME_RIGHT_INDEX)) - { - setChkMissingRightIndex (SBICheckState.Checked); - } - else if (tag.trim ().equals (SBIConstant.BIO_NAME_RIGHT_MIDDLE)) - { - setChkMissingRightMiddle (SBICheckState.Checked); - } - else if (tag.trim ().equals (SBIConstant.BIO_NAME_RIGHT_RING)) - { - setChkMissingRightRing (SBICheckState.Checked); - } - else if (tag.trim ().equals (SBIConstant.BIO_NAME_RIGHT_LITTLE)) - { - setChkMissingRightLittle (SBICheckState.Checked); - } - else if (tag.trim ().equals (SBIConstant.BIO_NAME_LEFT_THUMB)) - { - setChkMissingLeftThumb (SBICheckState.Checked); - } - else if (tag.trim ().equals (SBIConstant.BIO_NAME_LEFT_INDEX)) - { - setChkMissingLeftIndex (SBICheckState.Checked); - } - else if (tag.trim ().equals (SBIConstant.BIO_NAME_LEFT_MIDDLE)) - { - setChkMissingLeftMiddle (SBICheckState.Checked); - } - else if (tag.trim ().equals (SBIConstant.BIO_NAME_LEFT_RING)) - { - setChkMissingLeftRing (SBICheckState.Checked); - } - else if (tag.trim ().equals (SBIConstant.BIO_NAME_LEFT_LITTLE)) - { - setChkMissingLeftLittle (SBICheckState.Checked); - } + switch (tag.trim ()) + { + case SBIConstant.BIO_NAME_RIGHT_THUMB: + setChkMissingRightThumb (SBICheckState.Checked); + break; + case SBIConstant.BIO_NAME_RIGHT_INDEX: + setChkMissingRightIndex (SBICheckState.Checked); + break; + case SBIConstant.BIO_NAME_RIGHT_MIDDLE: + setChkMissingRightMiddle (SBICheckState.Checked); + break; + case SBIConstant.BIO_NAME_RIGHT_RING: + setChkMissingRightRing (SBICheckState.Checked); + break; + case SBIConstant.BIO_NAME_RIGHT_LITTLE: + setChkMissingRightLittle (SBICheckState.Checked); + break; + case SBIConstant.BIO_NAME_LEFT_THUMB: + setChkMissingLeftThumb (SBICheckState.Checked); + break; + case SBIConstant.BIO_NAME_LEFT_INDEX: + setChkMissingLeftIndex (SBICheckState.Checked); + break; + case SBIConstant.BIO_NAME_LEFT_MIDDLE: + setChkMissingLeftMiddle (SBICheckState.Checked); + break; + case SBIConstant.BIO_NAME_LEFT_RING: + setChkMissingLeftRing (SBICheckState.Checked); + break; + case SBIConstant.BIO_NAME_LEFT_LITTLE: + setChkMissingLeftLittle (SBICheckState.Checked); + break; + } } } } diff --git a/MockMDS/src/main/java/io/mosip/mock/sbi/devicehelper/finger/single/SBIFingerSingleHelper.java b/MockMDS/src/main/java/io/mosip/mock/sbi/devicehelper/finger/single/SBIFingerSingleHelper.java index 9e636ab7..407dc874 100644 --- a/MockMDS/src/main/java/io/mosip/mock/sbi/devicehelper/finger/single/SBIFingerSingleHelper.java +++ b/MockMDS/src/main/java/io/mosip/mock/sbi/devicehelper/finger/single/SBIFingerSingleHelper.java @@ -17,7 +17,7 @@ public class SBIFingerSingleHelper extends SBIDeviceHelper { private SBIFingerSingleHelper(int port, String purpose) { - super (port, purpose, ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_FINGER), ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_FINGER_SINGLE)); + super (port, purpose, SBIConstant.MOSIP_BIOMETRIC_TYPE_FINGER, SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_FINGER_SINGLE); } //synchronized method to control simultaneous access diff --git a/MockMDS/src/main/java/io/mosip/mock/sbi/devicehelper/finger/slap/SBIFingerSlapBioExceptionInfo.java b/MockMDS/src/main/java/io/mosip/mock/sbi/devicehelper/finger/slap/SBIFingerSlapBioExceptionInfo.java index 6c91ac5a..84767361 100644 --- a/MockMDS/src/main/java/io/mosip/mock/sbi/devicehelper/finger/slap/SBIFingerSlapBioExceptionInfo.java +++ b/MockMDS/src/main/java/io/mosip/mock/sbi/devicehelper/finger/slap/SBIFingerSlapBioExceptionInfo.java @@ -1,179 +1,172 @@ -package io.mosip.mock.sbi.devicehelper.finger.slap; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import io.mosip.mock.sbi.SBIConstant; -import io.mosip.mock.sbi.devicehelper.SBIBioExceptionInfo; -import io.mosip.mock.sbi.devicehelper.SBICheckState; - -public class SBIFingerSlapBioExceptionInfo extends SBIBioExceptionInfo { - private static final Logger LOGGER = LoggerFactory.getLogger(SBIFingerSlapBioExceptionInfo.class); - - private SBICheckState chkMissingLeftIndex; - private SBICheckState chkMissingLeftMiddle; - private SBICheckState chkMissingLeftRing; - private SBICheckState chkMissingLeftLittle; - - private SBICheckState chkMissingRightIndex; - private SBICheckState chkMissingRightMiddle; - private SBICheckState chkMissingRightRing; - private SBICheckState chkMissingRightLittle; - - private SBICheckState chkMissingRightThumb; - private SBICheckState chkMissingLeftThumb; - - protected SBIFingerSlapBioExceptionInfo() - { - super (); - deInitBioException(); - } - - @Override - public void initBioException(String[] bioException) { - // TODO Auto-generated method stub - if (bioException != null && bioException.length > 0) - { - for (String tag : bioException){ - if (tag.trim ().equals (SBIConstant.BIO_NAME_RIGHT_THUMB)) - { - setChkMissingRightThumb (SBICheckState.Checked); - } - else if (tag.trim ().equals (SBIConstant.BIO_NAME_RIGHT_INDEX)) - { - setChkMissingRightIndex (SBICheckState.Checked); - } - else if (tag.trim ().equals (SBIConstant.BIO_NAME_RIGHT_MIDDLE)) - { - setChkMissingRightMiddle (SBICheckState.Checked); - } - else if (tag.trim ().equals (SBIConstant.BIO_NAME_RIGHT_RING)) - { - setChkMissingRightRing (SBICheckState.Checked); - } - else if (tag.trim ().equals (SBIConstant.BIO_NAME_RIGHT_LITTLE)) - { - setChkMissingRightLittle (SBICheckState.Checked); - } - else if (tag.trim ().equals (SBIConstant.BIO_NAME_LEFT_THUMB)) - { - setChkMissingLeftThumb (SBICheckState.Checked); - } - else if (tag.trim ().equals (SBIConstant.BIO_NAME_LEFT_INDEX)) - { - setChkMissingLeftIndex (SBICheckState.Checked); - } - else if (tag.trim ().equals (SBIConstant.BIO_NAME_LEFT_MIDDLE)) - { - setChkMissingLeftMiddle (SBICheckState.Checked); - } - else if (tag.trim ().equals (SBIConstant.BIO_NAME_LEFT_RING)) - { - setChkMissingLeftRing (SBICheckState.Checked); - } - else if (tag.trim ().equals (SBIConstant.BIO_NAME_LEFT_LITTLE)) - { - setChkMissingLeftLittle (SBICheckState.Checked); - } - } - } - } - - @Override - public void deInitBioException() { - setChkMissingLeftIndex (SBICheckState.Unchecked); - setChkMissingLeftMiddle (SBICheckState.Unchecked); - setChkMissingLeftRing (SBICheckState.Unchecked); - setChkMissingLeftLittle (SBICheckState.Unchecked); - - setChkMissingRightIndex (SBICheckState.Unchecked); - setChkMissingRightMiddle (SBICheckState.Unchecked); - setChkMissingRightRing (SBICheckState.Unchecked); - setChkMissingRightLittle (SBICheckState.Unchecked); - - setChkMissingRightThumb (SBICheckState.Unchecked); - setChkMissingLeftThumb (SBICheckState.Unchecked); - } - - public SBICheckState getChkMissingLeftIndex() { - return chkMissingLeftIndex; - } - - public void setChkMissingLeftIndex(SBICheckState chkMissingLeftIndex) { - this.chkMissingLeftIndex = chkMissingLeftIndex; - } - - public SBICheckState getChkMissingLeftMiddle() { - return chkMissingLeftMiddle; - } - - public void setChkMissingLeftMiddle(SBICheckState chkMissingLeftMiddle) { - this.chkMissingLeftMiddle = chkMissingLeftMiddle; - } - - public SBICheckState getChkMissingLeftRing() { - return chkMissingLeftRing; - } - - public void setChkMissingLeftRing(SBICheckState chkMissingLeftRing) { - this.chkMissingLeftRing = chkMissingLeftRing; - } - - public SBICheckState getChkMissingLeftLittle() { - return chkMissingLeftLittle; - } - - public void setChkMissingLeftLittle(SBICheckState chkMissingLeftLittle) { - this.chkMissingLeftLittle = chkMissingLeftLittle; - } - - public SBICheckState getChkMissingRightIndex() { - return chkMissingRightIndex; - } - - public void setChkMissingRightIndex(SBICheckState chkMissingRightIndex) { - this.chkMissingRightIndex = chkMissingRightIndex; - } - - public SBICheckState getChkMissingRightMiddle() { - return chkMissingRightMiddle; - } - - public void setChkMissingRightMiddle(SBICheckState chkMissingRightMiddle) { - this.chkMissingRightMiddle = chkMissingRightMiddle; - } - - public SBICheckState getChkMissingRightRing() { - return chkMissingRightRing; - } - - public void setChkMissingRightRing(SBICheckState chkMissingRightRing) { - this.chkMissingRightRing = chkMissingRightRing; - } - - public SBICheckState getChkMissingRightLittle() { - return chkMissingRightLittle; - } - - public void setChkMissingRightLittle(SBICheckState chkMissingRightLittle) { - this.chkMissingRightLittle = chkMissingRightLittle; - } - - public SBICheckState getChkMissingRightThumb() { - return chkMissingRightThumb; - } - - public void setChkMissingRightThumb(SBICheckState chkMissingRightThumb) { - this.chkMissingRightThumb = chkMissingRightThumb; - } - - public SBICheckState getChkMissingLeftThumb() { - return chkMissingLeftThumb; - } - - public void setChkMissingLeftThumb(SBICheckState chkMissingLeftThumb) { - this.chkMissingLeftThumb = chkMissingLeftThumb; - } - - -} +package io.mosip.mock.sbi.devicehelper.finger.slap; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import io.mosip.mock.sbi.SBIConstant; +import io.mosip.mock.sbi.devicehelper.SBIBioExceptionInfo; +import io.mosip.mock.sbi.devicehelper.SBICheckState; + +public class SBIFingerSlapBioExceptionInfo extends SBIBioExceptionInfo { + private static final Logger LOGGER = LoggerFactory.getLogger(SBIFingerSlapBioExceptionInfo.class); + + private SBICheckState chkMissingLeftIndex; + private SBICheckState chkMissingLeftMiddle; + private SBICheckState chkMissingLeftRing; + private SBICheckState chkMissingLeftLittle; + + private SBICheckState chkMissingRightIndex; + private SBICheckState chkMissingRightMiddle; + private SBICheckState chkMissingRightRing; + private SBICheckState chkMissingRightLittle; + + private SBICheckState chkMissingRightThumb; + private SBICheckState chkMissingLeftThumb; + + protected SBIFingerSlapBioExceptionInfo() + { + super (); + deInitBioException(); + } + + @Override + public void initBioException(String[] bioException) { + // TODO Auto-generated method stub + if (bioException != null && bioException.length > 0) + { + for (String tag : bioException){ + switch (tag.trim ()) + { + case SBIConstant.BIO_NAME_RIGHT_THUMB: + setChkMissingRightThumb (SBICheckState.Checked); + break; + case SBIConstant.BIO_NAME_RIGHT_INDEX: + setChkMissingRightIndex (SBICheckState.Checked); + break; + case SBIConstant.BIO_NAME_RIGHT_MIDDLE: + setChkMissingRightMiddle (SBICheckState.Checked); + break; + case SBIConstant.BIO_NAME_RIGHT_RING: + setChkMissingRightRing (SBICheckState.Checked); + break; + case SBIConstant.BIO_NAME_RIGHT_LITTLE: + setChkMissingRightLittle (SBICheckState.Checked); + break; + case SBIConstant.BIO_NAME_LEFT_THUMB: + setChkMissingLeftThumb (SBICheckState.Checked); + break; + case SBIConstant.BIO_NAME_LEFT_INDEX: + setChkMissingLeftIndex (SBICheckState.Checked); + break; + case SBIConstant.BIO_NAME_LEFT_MIDDLE: + setChkMissingLeftMiddle (SBICheckState.Checked); + break; + case SBIConstant.BIO_NAME_LEFT_RING: + setChkMissingLeftRing (SBICheckState.Checked); + break; + case SBIConstant.BIO_NAME_LEFT_LITTLE: + setChkMissingLeftLittle (SBICheckState.Checked); + break; + } + } + } + } + + @Override + public void deInitBioException() { + setChkMissingLeftIndex (SBICheckState.Unchecked); + setChkMissingLeftMiddle (SBICheckState.Unchecked); + setChkMissingLeftRing (SBICheckState.Unchecked); + setChkMissingLeftLittle (SBICheckState.Unchecked); + + setChkMissingRightIndex (SBICheckState.Unchecked); + setChkMissingRightMiddle (SBICheckState.Unchecked); + setChkMissingRightRing (SBICheckState.Unchecked); + setChkMissingRightLittle (SBICheckState.Unchecked); + + setChkMissingRightThumb (SBICheckState.Unchecked); + setChkMissingLeftThumb (SBICheckState.Unchecked); + } + + public SBICheckState getChkMissingLeftIndex() { + return chkMissingLeftIndex; + } + + public void setChkMissingLeftIndex(SBICheckState chkMissingLeftIndex) { + this.chkMissingLeftIndex = chkMissingLeftIndex; + } + + public SBICheckState getChkMissingLeftMiddle() { + return chkMissingLeftMiddle; + } + + public void setChkMissingLeftMiddle(SBICheckState chkMissingLeftMiddle) { + this.chkMissingLeftMiddle = chkMissingLeftMiddle; + } + + public SBICheckState getChkMissingLeftRing() { + return chkMissingLeftRing; + } + + public void setChkMissingLeftRing(SBICheckState chkMissingLeftRing) { + this.chkMissingLeftRing = chkMissingLeftRing; + } + + public SBICheckState getChkMissingLeftLittle() { + return chkMissingLeftLittle; + } + + public void setChkMissingLeftLittle(SBICheckState chkMissingLeftLittle) { + this.chkMissingLeftLittle = chkMissingLeftLittle; + } + + public SBICheckState getChkMissingRightIndex() { + return chkMissingRightIndex; + } + + public void setChkMissingRightIndex(SBICheckState chkMissingRightIndex) { + this.chkMissingRightIndex = chkMissingRightIndex; + } + + public SBICheckState getChkMissingRightMiddle() { + return chkMissingRightMiddle; + } + + public void setChkMissingRightMiddle(SBICheckState chkMissingRightMiddle) { + this.chkMissingRightMiddle = chkMissingRightMiddle; + } + + public SBICheckState getChkMissingRightRing() { + return chkMissingRightRing; + } + + public void setChkMissingRightRing(SBICheckState chkMissingRightRing) { + this.chkMissingRightRing = chkMissingRightRing; + } + + public SBICheckState getChkMissingRightLittle() { + return chkMissingRightLittle; + } + + public void setChkMissingRightLittle(SBICheckState chkMissingRightLittle) { + this.chkMissingRightLittle = chkMissingRightLittle; + } + + public SBICheckState getChkMissingRightThumb() { + return chkMissingRightThumb; + } + + public void setChkMissingRightThumb(SBICheckState chkMissingRightThumb) { + this.chkMissingRightThumb = chkMissingRightThumb; + } + + public SBICheckState getChkMissingLeftThumb() { + return chkMissingLeftThumb; + } + + public void setChkMissingLeftThumb(SBICheckState chkMissingLeftThumb) { + this.chkMissingLeftThumb = chkMissingLeftThumb; + } + + +} diff --git a/MockMDS/src/main/java/io/mosip/mock/sbi/devicehelper/finger/slap/SBIFingerSlapHelper.java b/MockMDS/src/main/java/io/mosip/mock/sbi/devicehelper/finger/slap/SBIFingerSlapHelper.java index c697d5ad..b585448a 100644 --- a/MockMDS/src/main/java/io/mosip/mock/sbi/devicehelper/finger/slap/SBIFingerSlapHelper.java +++ b/MockMDS/src/main/java/io/mosip/mock/sbi/devicehelper/finger/slap/SBIFingerSlapHelper.java @@ -20,7 +20,7 @@ public class SBIFingerSlapHelper extends SBIDeviceHelper { private SBIFingerSlapHelper(int port, String purpose) { - super (port, purpose, ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_FINGER), ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_FINGER_SLAP)); + super (port, purpose, SBIConstant.MOSIP_BIOMETRIC_TYPE_FINGER, SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_FINGER_SLAP); } //synchronized method to control simultaneous access @@ -62,8 +62,6 @@ public int getLiveStream() { @Override public int getBioCapture(boolean isUsedForAuthenication) throws Exception { - byte [] isoData = null; - String seedName = ""; if (this.getProfileId().equalsIgnoreCase(SBIConstant.PROFILE_AUTOMATIC)) { @@ -74,358 +72,300 @@ public int getBioCapture(boolean isUsedForAuthenication) throws Exception { } } - if (!isUsedForAuthenication) + switch (getDeviceSubId ()) + { + case SBIConstant.DEVICE_FINGER_SLAP_SUB_TYPE_ID_LEFT: + setBioCaptureFingerprintForSubTypeLeft (isUsedForAuthenication, seedName); + break; + case SBIConstant.DEVICE_FINGER_SLAP_SUB_TYPE_ID_RIGHT: + setBioCaptureFingerprintForSubTypeRight (isUsedForAuthenication, seedName); + break; + case SBIConstant.DEVICE_FINGER_SLAP_SUB_TYPE_ID_THUMB: + setBioCaptureFingerprintForSubTypeThumb (isUsedForAuthenication, seedName); + break; + } + + return 0; + } + + private void setBioCaptureFingerprintForSubTypeThumb(boolean isUsedForAuthenication, String seedName) throws Exception { + byte [] isoData = null; + if (((SBIFingerSlapBioExceptionInfo)getCaptureInfo ().getBioExceptionInfo()).getChkMissingLeftThumb() == SBICheckState.Unchecked) { - if (getDeviceSubId () == SBIConstant.DEVICE_FINGER_SLAP_SUB_TYPE_ID_LEFT) + isoData = getBiometricISOImage(seedName, SBIConstant.PROFILE_BIO_FILE_NAME_LEFT_THUMB); + if (isoData != null && !((SBIFingerSlapCaptureInfo)getCaptureInfo ()).isCaptureLT()) { - if (((SBIFingerSlapBioExceptionInfo)getCaptureInfo ().getBioExceptionInfo()).getChkMissingLeftIndex() == SBICheckState.Unchecked) + if (!isUsedForAuthenication) { - isoData = getBiometricISOImage(seedName, SBIConstant.PROFILE_BIO_FILE_NAME_LEFT_INDEX); - if (isoData != null && !((SBIFingerSlapCaptureInfo)getCaptureInfo ()).isCaptureLI()) - { - ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setBioValueLI(StringHelper.base64UrlEncode(isoData)); - if (isScoreFromIso()) - ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setCaptureScoreLI(BioUtilHelper.getFingerQualityScoreFromIso(getPurpose(), isoData)); - else - ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setCaptureScoreLI(getQualityScore()); - ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setCaptureLI(true); - } + ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setBioValueLT(StringHelper.base64UrlEncode(isoData)); } else { - ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setCaptureLI(true); - } - - if (((SBIFingerSlapBioExceptionInfo)getCaptureInfo ().getBioExceptionInfo()).getChkMissingLeftMiddle() == SBICheckState.Unchecked) - { - isoData = getBiometricISOImage(seedName, SBIConstant.PROFILE_BIO_FILE_NAME_LEFT_MIDDLE); - if (isoData != null && !((SBIFingerSlapCaptureInfo)getCaptureInfo ()).isCaptureLM()) - { - ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setBioValueLM(StringHelper.base64UrlEncode(isoData)); - if (isScoreFromIso()) - ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setCaptureScoreLM(BioUtilHelper.getFingerQualityScoreFromIso(getPurpose(), isoData)); - else - ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setCaptureScoreLM(getQualityScore()); - ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setCaptureLM(true); - } + getCaptureInfo ().addBiometricForBioSubType(SBIConstant.BIO_NAME_LEFT_THUMB, StringHelper.base64UrlEncode(isoData)); } + if (isScoreFromIso()) + ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setCaptureScoreLT(BioUtilHelper.getFingerQualityScoreFromIso(getPurpose(), isoData)); else + ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setCaptureScoreLT(getQualityScore()); + ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setCaptureLT(true); + } + } + else + { + ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setCaptureLT(true); + } + + if (((SBIFingerSlapBioExceptionInfo)getCaptureInfo ().getBioExceptionInfo()).getChkMissingRightThumb() == SBICheckState.Unchecked) + { + isoData = getBiometricISOImage(seedName, SBIConstant.PROFILE_BIO_FILE_NAME_RIGHT_THUMB); + if (isoData != null && !((SBIFingerSlapCaptureInfo)getCaptureInfo ()).isCaptureRT()) + { + if (!isUsedForAuthenication) { - ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setCaptureLM(true); - } - - if (((SBIFingerSlapBioExceptionInfo)getCaptureInfo ().getBioExceptionInfo()).getChkMissingLeftRing() == SBICheckState.Unchecked) - { - isoData = getBiometricISOImage(seedName, SBIConstant.PROFILE_BIO_FILE_NAME_LEFT_RING); - if (isoData != null && !((SBIFingerSlapCaptureInfo)getCaptureInfo ()).isCaptureLR()) - { - ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setBioValueLR(StringHelper.base64UrlEncode(isoData)); - if (isScoreFromIso()) - ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setCaptureScoreLR(BioUtilHelper.getFingerQualityScoreFromIso(getPurpose(), isoData)); - else - ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setCaptureScoreLR(getQualityScore()); - ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setCaptureLR(true); - } + ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setBioValueRT(StringHelper.base64UrlEncode(isoData)); } else { - ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setCaptureLR(true); - } - - if (((SBIFingerSlapBioExceptionInfo)getCaptureInfo ().getBioExceptionInfo()).getChkMissingLeftLittle() == SBICheckState.Unchecked) - { - isoData = getBiometricISOImage(seedName, SBIConstant.PROFILE_BIO_FILE_NAME_LEFT_LITTLE); - if (isoData != null && !((SBIFingerSlapCaptureInfo)getCaptureInfo ()).isCaptureLL()) - { - ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setBioValueLL(StringHelper.base64UrlEncode(isoData)); - if (isScoreFromIso()) - ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setCaptureScoreLL(BioUtilHelper.getFingerQualityScoreFromIso(getPurpose(), isoData)); - else - ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setCaptureScoreLL(getQualityScore()); - ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setCaptureLL(true); - } + getCaptureInfo ().addBiometricForBioSubType(SBIConstant.BIO_NAME_RIGHT_THUMB, StringHelper.base64UrlEncode(isoData)); } + if (isScoreFromIso()) + ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setCaptureScoreRT(BioUtilHelper.getFingerQualityScoreFromIso(getPurpose(), isoData)); else - { - ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setCaptureLL(true); - } + ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setCaptureScoreRT(getQualityScore()); + ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setCaptureRT(true); + } + } + else + { + ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setCaptureRT(true); + } + + if (((SBIFingerSlapCaptureInfo)getCaptureInfo ()).isCaptureLT() || + ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).isCaptureRT()) + { + getCaptureInfo ().setCaptureCompleted(true); + } + } - if (((SBIFingerSlapCaptureInfo)getCaptureInfo ()).isCaptureLI() || - ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).isCaptureLM() || - ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).isCaptureLR() || - ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).isCaptureLL()) - { - getCaptureInfo ().setCaptureCompleted(true); - } - } - else if (getDeviceSubId () == SBIConstant.DEVICE_FINGER_SLAP_SUB_TYPE_ID_RIGHT) + private void setBioCaptureFingerprintForSubTypeRight(boolean isUsedForAuthenication, String seedName) throws Exception { + byte [] isoData = null; + if (((SBIFingerSlapBioExceptionInfo)getCaptureInfo ().getBioExceptionInfo()).getChkMissingRightIndex() == SBICheckState.Unchecked) + { + isoData = getBiometricISOImage(seedName, SBIConstant.PROFILE_BIO_FILE_NAME_RIGHT_INDEX); + if (isoData != null && !((SBIFingerSlapCaptureInfo)getCaptureInfo ()).isCaptureRI()) { - if (((SBIFingerSlapBioExceptionInfo)getCaptureInfo ().getBioExceptionInfo()).getChkMissingRightIndex() == SBICheckState.Unchecked) + if (!isUsedForAuthenication) { - isoData = getBiometricISOImage(seedName, SBIConstant.PROFILE_BIO_FILE_NAME_RIGHT_INDEX); - if (isoData != null && !((SBIFingerSlapCaptureInfo)getCaptureInfo ()).isCaptureRI()) - { - ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setBioValueRI(StringHelper.base64UrlEncode(isoData)); - if (isScoreFromIso()) - ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setCaptureScoreRI(BioUtilHelper.getFingerQualityScoreFromIso(getPurpose(), isoData)); - else - ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setCaptureScoreRI(getQualityScore()); - ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setCaptureRI(true); - } + ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setBioValueRI(StringHelper.base64UrlEncode(isoData)); } else { - ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setCaptureRI(true); + getCaptureInfo ().addBiometricForBioSubType(SBIConstant.BIO_NAME_RIGHT_INDEX, StringHelper.base64UrlEncode(isoData)); } - - if (((SBIFingerSlapBioExceptionInfo)getCaptureInfo ().getBioExceptionInfo()).getChkMissingRightMiddle() == SBICheckState.Unchecked) + if (isScoreFromIso()) + ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setCaptureScoreRI(BioUtilHelper.getFingerQualityScoreFromIso(getPurpose(), isoData)); + else + ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setCaptureScoreRI(getQualityScore()); + ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setCaptureRI(true); + } + } + else + { + ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setCaptureRI(true); + } + + if (((SBIFingerSlapBioExceptionInfo)getCaptureInfo ().getBioExceptionInfo()).getChkMissingRightMiddle() == SBICheckState.Unchecked) + { + isoData = getBiometricISOImage(seedName, SBIConstant.PROFILE_BIO_FILE_NAME_RIGHT_MIDDLE); + if (isoData != null && !((SBIFingerSlapCaptureInfo)getCaptureInfo ()).isCaptureRM()) + { + if (!isUsedForAuthenication) { - isoData = getBiometricISOImage(seedName, SBIConstant.PROFILE_BIO_FILE_NAME_RIGHT_MIDDLE); - if (isoData != null && !((SBIFingerSlapCaptureInfo)getCaptureInfo ()).isCaptureRM()) - { - ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setBioValueRM(StringHelper.base64UrlEncode(isoData)); - if (isScoreFromIso()) - ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setCaptureScoreRM(BioUtilHelper.getFingerQualityScoreFromIso(getPurpose(), isoData)); - else - ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setCaptureScoreRM(getQualityScore()); - ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setCaptureRM(true); - } + ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setBioValueRM(StringHelper.base64UrlEncode(isoData)); } else { - ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setCaptureRM(true); + getCaptureInfo ().addBiometricForBioSubType(SBIConstant.BIO_NAME_RIGHT_MIDDLE, StringHelper.base64UrlEncode(isoData)); } - - if (((SBIFingerSlapBioExceptionInfo)getCaptureInfo ().getBioExceptionInfo()).getChkMissingRightRing() == SBICheckState.Unchecked) + if (isScoreFromIso()) + ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setCaptureScoreRM(BioUtilHelper.getFingerQualityScoreFromIso(getPurpose(), isoData)); + else + ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setCaptureScoreRM(getQualityScore()); + ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setCaptureRM(true); + } + } + else + { + ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setCaptureRM(true); + } + + if (((SBIFingerSlapBioExceptionInfo)getCaptureInfo ().getBioExceptionInfo()).getChkMissingRightRing() == SBICheckState.Unchecked) + { + isoData = getBiometricISOImage(seedName, SBIConstant.PROFILE_BIO_FILE_NAME_RIGHT_RING); + if (isoData != null && !((SBIFingerSlapCaptureInfo)getCaptureInfo ()).isCaptureRR()) + { + if (!isUsedForAuthenication) { - isoData = getBiometricISOImage(seedName, SBIConstant.PROFILE_BIO_FILE_NAME_RIGHT_RING); - if (isoData != null && !((SBIFingerSlapCaptureInfo)getCaptureInfo ()).isCaptureRR()) - { - ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setBioValueRR(StringHelper.base64UrlEncode(isoData)); - if (isScoreFromIso()) - ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setCaptureScoreRR(BioUtilHelper.getFingerQualityScoreFromIso(getPurpose(), isoData)); - else - ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setCaptureScoreRR(getQualityScore()); - ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setCaptureRR(true); - } + ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setBioValueRR(StringHelper.base64UrlEncode(isoData)); } else { - ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setCaptureRR(true); + getCaptureInfo ().addBiometricForBioSubType(SBIConstant.BIO_NAME_RIGHT_RING, StringHelper.base64UrlEncode(isoData)); } - - if (((SBIFingerSlapBioExceptionInfo)getCaptureInfo ().getBioExceptionInfo()).getChkMissingRightLittle() == SBICheckState.Unchecked) + if (isScoreFromIso()) + ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setCaptureScoreRR(BioUtilHelper.getFingerQualityScoreFromIso(getPurpose(), isoData)); + else + ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setCaptureScoreRR(getQualityScore()); + ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setCaptureRR(true); + } + } + else + { + ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setCaptureRR(true); + } + + if (((SBIFingerSlapBioExceptionInfo)getCaptureInfo ().getBioExceptionInfo()).getChkMissingRightLittle() == SBICheckState.Unchecked) + { + isoData = getBiometricISOImage(seedName, SBIConstant.PROFILE_BIO_FILE_NAME_RIGHT_LITTLE); + if (isoData != null && !((SBIFingerSlapCaptureInfo)getCaptureInfo ()).isCaptureRL()) + { + if (!isUsedForAuthenication) { - isoData = getBiometricISOImage(seedName, SBIConstant.PROFILE_BIO_FILE_NAME_RIGHT_LITTLE); - if (isoData != null && !((SBIFingerSlapCaptureInfo)getCaptureInfo ()).isCaptureRL()) - { - ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setBioValueRL(StringHelper.base64UrlEncode(isoData)); - if (isScoreFromIso()) - ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setCaptureScoreRL(BioUtilHelper.getFingerQualityScoreFromIso(getPurpose(), isoData)); - else - ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setCaptureScoreRL(getQualityScore()); - ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setCaptureRL(true); - } + ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setBioValueRL(StringHelper.base64UrlEncode(isoData)); } else { - ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setCaptureRL(true); + getCaptureInfo ().addBiometricForBioSubType(SBIConstant.BIO_NAME_RIGHT_LITTLE, StringHelper.base64UrlEncode(isoData)); } + if (isScoreFromIso()) + ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setCaptureScoreRL(BioUtilHelper.getFingerQualityScoreFromIso(getPurpose(), isoData)); + else + ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setCaptureScoreRL(getQualityScore()); + ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setCaptureRL(true); + } + } + else + { + ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setCaptureRL(true); + } - if (((SBIFingerSlapCaptureInfo)getCaptureInfo ()).isCaptureRI() || - ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).isCaptureRM() || - ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).isCaptureRR() || - ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).isCaptureRL()) - { - getCaptureInfo ().setCaptureCompleted(true); - } - } - else if (getDeviceSubId () == SBIConstant.DEVICE_FINGER_SLAP_SUB_TYPE_ID_THUMB) + if (((SBIFingerSlapCaptureInfo)getCaptureInfo ()).isCaptureRI() || + ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).isCaptureRM() || + ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).isCaptureRR() || + ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).isCaptureRL()) + { + getCaptureInfo ().setCaptureCompleted(true); + } + } + + private void setBioCaptureFingerprintForSubTypeLeft(boolean isUsedForAuthenication, String seedName) throws Exception { + byte [] isoData = null; + if (((SBIFingerSlapBioExceptionInfo)getCaptureInfo ().getBioExceptionInfo()).getChkMissingLeftIndex() == SBICheckState.Unchecked) + { + isoData = getBiometricISOImage(seedName, SBIConstant.PROFILE_BIO_FILE_NAME_LEFT_INDEX); + if (isoData != null && !((SBIFingerSlapCaptureInfo)getCaptureInfo ()).isCaptureLI()) { - if (((SBIFingerSlapBioExceptionInfo)getCaptureInfo ().getBioExceptionInfo()).getChkMissingLeftThumb() == SBICheckState.Unchecked) + if (!isUsedForAuthenication) { - isoData = getBiometricISOImage(seedName, SBIConstant.PROFILE_BIO_FILE_NAME_LEFT_THUMB); - if (isoData != null && !((SBIFingerSlapCaptureInfo)getCaptureInfo ()).isCaptureLT()) - { - ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setBioValueLT(StringHelper.base64UrlEncode(isoData)); - if (isScoreFromIso()) - ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setCaptureScoreLT(BioUtilHelper.getFingerQualityScoreFromIso(getPurpose(), isoData)); - else - ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setCaptureScoreLT(getQualityScore()); - ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setCaptureLT(true); - } + ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setBioValueLI(StringHelper.base64UrlEncode(isoData)); } else { - ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setCaptureLT(true); - } - - if (((SBIFingerSlapBioExceptionInfo)getCaptureInfo ().getBioExceptionInfo()).getChkMissingRightThumb() == SBICheckState.Unchecked) - { - isoData = getBiometricISOImage(seedName, SBIConstant.PROFILE_BIO_FILE_NAME_RIGHT_THUMB); - if (isoData != null && !((SBIFingerSlapCaptureInfo)getCaptureInfo ()).isCaptureRT()) - { - ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setBioValueRT(StringHelper.base64UrlEncode(isoData)); - if (isScoreFromIso()) - ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setCaptureScoreRT(BioUtilHelper.getFingerQualityScoreFromIso(getPurpose(), isoData)); - else - ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setCaptureScoreRT(getQualityScore()); - ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setCaptureRT(true); - } + getCaptureInfo ().addBiometricForBioSubType(SBIConstant.BIO_NAME_LEFT_INDEX, StringHelper.base64UrlEncode(isoData)); } + if (isScoreFromIso()) + ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setCaptureScoreLI(BioUtilHelper.getFingerQualityScoreFromIso(getPurpose(), isoData)); else + ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setCaptureScoreLI(getQualityScore()); + ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setCaptureLI(true); + } + } + else + { + ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setCaptureLI(true); + } + + if (((SBIFingerSlapBioExceptionInfo)getCaptureInfo ().getBioExceptionInfo()).getChkMissingLeftMiddle() == SBICheckState.Unchecked) + { + isoData = getBiometricISOImage(seedName, SBIConstant.PROFILE_BIO_FILE_NAME_LEFT_MIDDLE); + if (isoData != null && !((SBIFingerSlapCaptureInfo)getCaptureInfo ()).isCaptureLM()) + { + if (!isUsedForAuthenication) { - ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setCaptureRT(true); + ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setBioValueLM(StringHelper.base64UrlEncode(isoData)); } - - if (((SBIFingerSlapCaptureInfo)getCaptureInfo ()).isCaptureLT() || - ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).isCaptureRT()) + else { - getCaptureInfo ().setCaptureCompleted(true); + getCaptureInfo ().addBiometricForBioSubType(SBIConstant.BIO_NAME_LEFT_MIDDLE, StringHelper.base64UrlEncode(isoData)); } - } + if (isScoreFromIso()) + ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setCaptureScoreLM(BioUtilHelper.getFingerQualityScoreFromIso(getPurpose(), isoData)); + else + ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setCaptureScoreLM(getQualityScore()); + ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setCaptureLM(true); + } } - else if (isUsedForAuthenication) + else { - if (getDeviceSubId () == SBIConstant.DEVICE_FINGER_SLAP_SUB_TYPE_ID_LEFT) + ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setCaptureLM(true); + } + + if (((SBIFingerSlapBioExceptionInfo)getCaptureInfo ().getBioExceptionInfo()).getChkMissingLeftRing() == SBICheckState.Unchecked) + { + isoData = getBiometricISOImage(seedName, SBIConstant.PROFILE_BIO_FILE_NAME_LEFT_RING); + if (isoData != null && !((SBIFingerSlapCaptureInfo)getCaptureInfo ()).isCaptureLR()) { - isoData = getBiometricISOImage(seedName, SBIConstant.PROFILE_BIO_FILE_NAME_LEFT_INDEX); - if (isoData != null && !((SBIFingerSlapCaptureInfo)getCaptureInfo ()).isCaptureLI()) - { - getCaptureInfo ().addBiometricForBioSubType(SBIConstant.BIO_NAME_LEFT_INDEX, StringHelper.base64UrlEncode(isoData)); - if (isScoreFromIso()) - ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setCaptureScoreLI(BioUtilHelper.getFingerQualityScoreFromIso(getPurpose(), isoData)); - else - ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setCaptureScoreLI(getQualityScore()); - ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setCaptureLI(true); - } - - isoData = getBiometricISOImage(seedName, SBIConstant.PROFILE_BIO_FILE_NAME_LEFT_MIDDLE); - if (isoData != null && !((SBIFingerSlapCaptureInfo)getCaptureInfo ()).isCaptureLM()) + if (!isUsedForAuthenication) { - getCaptureInfo ().addBiometricForBioSubType(SBIConstant.BIO_NAME_LEFT_MIDDLE, StringHelper.base64UrlEncode(isoData)); - if (isScoreFromIso()) - ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setCaptureScoreLM(BioUtilHelper.getFingerQualityScoreFromIso(getPurpose(), isoData)); - else - ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setCaptureScoreLM(getQualityScore()); - ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setCaptureLM(true); - } - - isoData = getBiometricISOImage(seedName, SBIConstant.PROFILE_BIO_FILE_NAME_LEFT_RING); - if (isoData != null && !((SBIFingerSlapCaptureInfo)getCaptureInfo ()).isCaptureLR()) + ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setBioValueLR(StringHelper.base64UrlEncode(isoData)); + } + else { getCaptureInfo ().addBiometricForBioSubType(SBIConstant.BIO_NAME_LEFT_RING, StringHelper.base64UrlEncode(isoData)); - if (isScoreFromIso()) - ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setCaptureScoreLR(BioUtilHelper.getFingerQualityScoreFromIso(getPurpose(), isoData)); - else - ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setCaptureScoreLR(getQualityScore()); - ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setCaptureLR(true); - } - - isoData = getBiometricISOImage(seedName, SBIConstant.PROFILE_BIO_FILE_NAME_LEFT_LITTLE); - if (isoData != null && !((SBIFingerSlapCaptureInfo)getCaptureInfo ()).isCaptureLL()) - { - getCaptureInfo ().addBiometricForBioSubType(SBIConstant.BIO_NAME_LEFT_LITTLE, StringHelper.base64UrlEncode(isoData)); - if (isScoreFromIso()) - ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setCaptureScoreLL(BioUtilHelper.getFingerQualityScoreFromIso(getPurpose(), isoData)); - else - ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setCaptureScoreLL(getQualityScore()); - ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setCaptureLL(true); - } - - if (((SBIFingerSlapCaptureInfo)getCaptureInfo ()).isCaptureLI() || - ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).isCaptureLM() || - ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).isCaptureLR() || - ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).isCaptureLL()) - { - getCaptureInfo ().setCaptureCompleted(true); } - } - else if (getDeviceSubId () == SBIConstant.DEVICE_FINGER_SLAP_SUB_TYPE_ID_RIGHT) + if (isScoreFromIso()) + ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setCaptureScoreLR(BioUtilHelper.getFingerQualityScoreFromIso(getPurpose(), isoData)); + else + ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setCaptureScoreLR(getQualityScore()); + ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setCaptureLR(true); + } + } + else + { + ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setCaptureLR(true); + } + + if (((SBIFingerSlapBioExceptionInfo)getCaptureInfo ().getBioExceptionInfo()).getChkMissingLeftLittle() == SBICheckState.Unchecked) + { + isoData = getBiometricISOImage(seedName, SBIConstant.PROFILE_BIO_FILE_NAME_LEFT_LITTLE); + if (isoData != null && !((SBIFingerSlapCaptureInfo)getCaptureInfo ()).isCaptureLL()) { - isoData = getBiometricISOImage(seedName, SBIConstant.PROFILE_BIO_FILE_NAME_RIGHT_INDEX); - if (isoData != null && !((SBIFingerSlapCaptureInfo)getCaptureInfo ()).isCaptureRI()) - { - getCaptureInfo ().addBiometricForBioSubType(SBIConstant.BIO_NAME_RIGHT_INDEX, StringHelper.base64UrlEncode(isoData)); - if (isScoreFromIso()) - ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setCaptureScoreRI(BioUtilHelper.getFingerQualityScoreFromIso(getPurpose(), isoData)); - else - ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setCaptureScoreRI(getQualityScore()); - ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setCaptureRI(true); - } - - isoData = getBiometricISOImage(seedName, SBIConstant.PROFILE_BIO_FILE_NAME_RIGHT_MIDDLE); - if (isoData != null && !((SBIFingerSlapCaptureInfo)getCaptureInfo ()).isCaptureRM()) - { - getCaptureInfo ().addBiometricForBioSubType(SBIConstant.BIO_NAME_RIGHT_MIDDLE, StringHelper.base64UrlEncode(isoData)); - if (isScoreFromIso()) - ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setCaptureScoreRM(BioUtilHelper.getFingerQualityScoreFromIso(getPurpose(), isoData)); - else - ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setCaptureScoreRM(getQualityScore()); - ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setCaptureRM(true); - } - - isoData = getBiometricISOImage(seedName, SBIConstant.PROFILE_BIO_FILE_NAME_RIGHT_RING); - if (isoData != null && !((SBIFingerSlapCaptureInfo)getCaptureInfo ()).isCaptureRR()) - { - getCaptureInfo ().addBiometricForBioSubType(SBIConstant.BIO_NAME_RIGHT_RING, StringHelper.base64UrlEncode(isoData)); - if (isScoreFromIso()) - ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setCaptureScoreRR(BioUtilHelper.getFingerQualityScoreFromIso(getPurpose(), isoData)); - else - ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setCaptureScoreRR(getQualityScore()); - ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setCaptureRR(true); - } - - isoData = getBiometricISOImage(seedName, SBIConstant.PROFILE_BIO_FILE_NAME_RIGHT_LITTLE); - if (isoData != null && !((SBIFingerSlapCaptureInfo)getCaptureInfo ()).isCaptureRL()) - { - getCaptureInfo ().addBiometricForBioSubType(SBIConstant.BIO_NAME_RIGHT_LITTLE, StringHelper.base64UrlEncode(isoData)); - if (isScoreFromIso()) - ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setCaptureScoreRL(BioUtilHelper.getFingerQualityScoreFromIso(getPurpose(), isoData)); - else - ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setCaptureScoreRL(getQualityScore()); - ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setCaptureRL(true); - } - - if (((SBIFingerSlapCaptureInfo)getCaptureInfo ()).isCaptureRI() || - ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).isCaptureRM() || - ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).isCaptureRR() || - ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).isCaptureRL()) + if (!isUsedForAuthenication) { - getCaptureInfo ().setCaptureCompleted(true); + ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setBioValueLL(StringHelper.base64UrlEncode(isoData)); } - } - else if (getDeviceSubId () == SBIConstant.DEVICE_FINGER_SLAP_SUB_TYPE_ID_THUMB) - { - isoData = getBiometricISOImage(seedName, SBIConstant.PROFILE_BIO_FILE_NAME_LEFT_THUMB); - if (isoData != null && !((SBIFingerSlapCaptureInfo)getCaptureInfo ()).isCaptureLT()) - { - getCaptureInfo ().addBiometricForBioSubType(SBIConstant.BIO_NAME_LEFT_THUMB, StringHelper.base64UrlEncode(isoData)); - if (isScoreFromIso()) - ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setCaptureScoreLT(BioUtilHelper.getFingerQualityScoreFromIso(getPurpose(), isoData)); - else - ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setCaptureScoreLT(getQualityScore()); - ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setCaptureLT(true); - } - - isoData = getBiometricISOImage(seedName, SBIConstant.PROFILE_BIO_FILE_NAME_RIGHT_THUMB); - if (isoData != null && !((SBIFingerSlapCaptureInfo)getCaptureInfo ()).isCaptureRT()) - { - getCaptureInfo ().addBiometricForBioSubType(SBIConstant.BIO_NAME_RIGHT_THUMB, StringHelper.base64UrlEncode(isoData)); - if (isScoreFromIso()) - ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setCaptureScoreRT(BioUtilHelper.getFingerQualityScoreFromIso(getPurpose(), isoData)); - else - ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setCaptureScoreRT(getQualityScore()); - ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setCaptureRT(true); - } - - if (((SBIFingerSlapCaptureInfo)getCaptureInfo ()).isCaptureRT() || - ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).isCaptureRT()) + else { - getCaptureInfo ().setCaptureCompleted(true); + getCaptureInfo ().addBiometricForBioSubType(SBIConstant.BIO_NAME_LEFT_LITTLE, StringHelper.base64UrlEncode(isoData)); } - } + if (isScoreFromIso()) + ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setCaptureScoreLL(BioUtilHelper.getFingerQualityScoreFromIso(getPurpose(), isoData)); + else + ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setCaptureScoreLL(getQualityScore()); + ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setCaptureLL(true); + } + } + else + { + ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).setCaptureLL(true); + } + + if (((SBIFingerSlapCaptureInfo)getCaptureInfo ()).isCaptureLI() || + ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).isCaptureLM() || + ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).isCaptureLR() || + ((SBIFingerSlapCaptureInfo)getCaptureInfo ()).isCaptureLL()) + { + getCaptureInfo ().setCaptureCompleted(true); } - return 0; } } diff --git a/MockMDS/src/main/java/io/mosip/mock/sbi/devicehelper/iris/binacular/SBIIrisDoubleBioExceptionInfo.java b/MockMDS/src/main/java/io/mosip/mock/sbi/devicehelper/iris/binacular/SBIIrisDoubleBioExceptionInfo.java index c4de1f33..90ca6c8c 100644 --- a/MockMDS/src/main/java/io/mosip/mock/sbi/devicehelper/iris/binacular/SBIIrisDoubleBioExceptionInfo.java +++ b/MockMDS/src/main/java/io/mosip/mock/sbi/devicehelper/iris/binacular/SBIIrisDoubleBioExceptionInfo.java @@ -1,61 +1,62 @@ -package io.mosip.mock.sbi.devicehelper.iris.binacular; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import io.mosip.mock.sbi.SBIConstant; -import io.mosip.mock.sbi.devicehelper.SBIBioExceptionInfo; -import io.mosip.mock.sbi.devicehelper.SBICheckState; - -public class SBIIrisDoubleBioExceptionInfo extends SBIBioExceptionInfo { - private static final Logger LOGGER = LoggerFactory.getLogger(SBIIrisDoubleBioExceptionInfo.class); - - private SBICheckState chkMissingLeftIris; - private SBICheckState chkMissingRightIris; - - protected SBIIrisDoubleBioExceptionInfo() - { - super (); - deInitBioException(); - } - - @Override - public void initBioException(String[] bioException) { - // TODO Auto-generated method stub - if (bioException != null && bioException.length > 0) - { - for (String tag : bioException){ - if (tag.trim ().equals (SBIConstant.BIO_NAME_LEFT_IRIS)) - { - setChkMissingLeftIris (SBICheckState.Checked); - } - else if (tag.trim ().equals (SBIConstant.BIO_NAME_RIGHT_IRIS)) - { - setChkMissingRightIris (SBICheckState.Checked); - } - } - } - } - - @Override - public void deInitBioException() { - setChkMissingLeftIris (SBICheckState.Unchecked); - setChkMissingRightIris (SBICheckState.Unchecked); - } - - public SBICheckState getChkMissingLeftIris() { - return chkMissingLeftIris; - } - - public void setChkMissingLeftIris(SBICheckState chkMissingLeftIris) { - this.chkMissingLeftIris = chkMissingLeftIris; - } - - public SBICheckState getChkMissingRightIris() { - return chkMissingRightIris; - } - - public void setChkMissingRightIris(SBICheckState chkMissingRightIris) { - this.chkMissingRightIris = chkMissingRightIris; - } -} +package io.mosip.mock.sbi.devicehelper.iris.binacular; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import io.mosip.mock.sbi.SBIConstant; +import io.mosip.mock.sbi.devicehelper.SBIBioExceptionInfo; +import io.mosip.mock.sbi.devicehelper.SBICheckState; + +public class SBIIrisDoubleBioExceptionInfo extends SBIBioExceptionInfo { + private static final Logger LOGGER = LoggerFactory.getLogger(SBIIrisDoubleBioExceptionInfo.class); + + private SBICheckState chkMissingLeftIris; + private SBICheckState chkMissingRightIris; + + protected SBIIrisDoubleBioExceptionInfo() + { + super (); + deInitBioException(); + } + + @Override + public void initBioException(String[] bioException) { + // TODO Auto-generated method stub + if (bioException != null && bioException.length > 0) + { + for (String tag : bioException){ + switch (tag.trim ()) + { + case SBIConstant.BIO_NAME_LEFT_IRIS: + setChkMissingLeftIris (SBICheckState.Checked); + break; + case SBIConstant.BIO_NAME_RIGHT_IRIS: + setChkMissingRightIris (SBICheckState.Checked); + break; + } + } + } + } + + @Override + public void deInitBioException() { + setChkMissingLeftIris (SBICheckState.Unchecked); + setChkMissingRightIris (SBICheckState.Unchecked); + } + + public SBICheckState getChkMissingLeftIris() { + return chkMissingLeftIris; + } + + public void setChkMissingLeftIris(SBICheckState chkMissingLeftIris) { + this.chkMissingLeftIris = chkMissingLeftIris; + } + + public SBICheckState getChkMissingRightIris() { + return chkMissingRightIris; + } + + public void setChkMissingRightIris(SBICheckState chkMissingRightIris) { + this.chkMissingRightIris = chkMissingRightIris; + } +} diff --git a/MockMDS/src/main/java/io/mosip/mock/sbi/devicehelper/iris/binacular/SBIIrisDoubleHelper.java b/MockMDS/src/main/java/io/mosip/mock/sbi/devicehelper/iris/binacular/SBIIrisDoubleHelper.java index 930ae22c..a76ea205 100644 --- a/MockMDS/src/main/java/io/mosip/mock/sbi/devicehelper/iris/binacular/SBIIrisDoubleHelper.java +++ b/MockMDS/src/main/java/io/mosip/mock/sbi/devicehelper/iris/binacular/SBIIrisDoubleHelper.java @@ -7,6 +7,7 @@ import io.mosip.mock.sbi.SBIConstant; import io.mosip.mock.sbi.devicehelper.SBICheckState; import io.mosip.mock.sbi.devicehelper.SBIDeviceHelper; +import io.mosip.mock.sbi.devicehelper.finger.slap.SBIFingerSlapCaptureInfo; import io.mosip.mock.sbi.util.ApplicationPropertyHelper; import io.mosip.mock.sbi.util.BioUtilHelper; import io.mosip.mock.sbi.util.StringHelper; @@ -18,7 +19,7 @@ public class SBIIrisDoubleHelper extends SBIDeviceHelper { private SBIIrisDoubleHelper(int port, String purpose) { - super (port, purpose, ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_IRIS), ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_IRIS_DOUBLE)); + super (port, purpose, SBIConstant.MOSIP_BIOMETRIC_TYPE_IRIS, SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_IRIS_DOUBLE); } //synchronized method to control simultaneous access @@ -59,9 +60,7 @@ public int getLiveStream() { } @Override - public int getBioCapture(boolean isForAuthenication) throws Exception { - byte [] isoData = null; - + public int getBioCapture(boolean isUsedForAuthenication) throws Exception { String seedName = ""; if (this.getProfileId().equalsIgnoreCase(SBIConstant.PROFILE_AUTOMATIC)) { @@ -71,168 +70,145 @@ public int getBioCapture(boolean isForAuthenication) throws Exception { seedName = String.format("%04d", getRandomNumberForSeed(seedValue)).trim(); } } + + switch (getDeviceSubId ()) + { + case SBIConstant.DEVICE_FINGER_SLAP_SUB_TYPE_ID_LEFT: + setBioCaptureIrisForSubTypeLeft (isUsedForAuthenication, seedName); + break; + case SBIConstant.DEVICE_FINGER_SLAP_SUB_TYPE_ID_RIGHT: + setBioCaptureIrisForSubTypeRight (isUsedForAuthenication, seedName); + break; + case SBIConstant.DEVICE_FINGER_SLAP_SUB_TYPE_ID_THUMB: + setBioCaptureIrisForSubTypeBoth (isUsedForAuthenication, seedName); + break; + } + + return 0; + } - if (!isForAuthenication) + private void setBioCaptureIrisForSubTypeLeft(boolean isUsedForAuthenication, String seedName) throws Exception { + byte [] isoData = null; + if (((SBIIrisDoubleBioExceptionInfo)getCaptureInfo ().getBioExceptionInfo()).getChkMissingLeftIris() == SBICheckState.Unchecked) { - if (getDeviceSubId () == SBIConstant.DEVICE_IRIS_DOUBLE_SUB_TYPE_ID_LEFT) + isoData = getBiometricISOImage(seedName, SBIConstant.PROFILE_BIO_FILE_NAME_LEFT_IRIS); + if (isoData != null && !((SBIIrisDoubleCaptureInfo)getCaptureInfo ()).isCaptureLI()) { - if (((SBIIrisDoubleBioExceptionInfo)getCaptureInfo ().getBioExceptionInfo()).getChkMissingLeftIris() == SBICheckState.Unchecked) + if (!isUsedForAuthenication) { - isoData = getBiometricISOImage(seedName, SBIConstant.PROFILE_BIO_FILE_NAME_LEFT_IRIS); - if (isoData != null && !((SBIIrisDoubleCaptureInfo)getCaptureInfo ()).isCaptureLI()) - { - ((SBIIrisDoubleCaptureInfo)getCaptureInfo ()).setBioValueLI(StringHelper.base64UrlEncode(isoData)); - if (isScoreFromIso()) - ((SBIIrisDoubleCaptureInfo)getCaptureInfo ()).setCaptureScoreLI(BioUtilHelper.getIrisQualityScoreFromIso(getPurpose(), isoData)); - else - ((SBIIrisDoubleCaptureInfo)getCaptureInfo ()).setCaptureScoreLI(getQualityScore()); - ((SBIIrisDoubleCaptureInfo)getCaptureInfo ()).setCaptureLI(true); - } + ((SBIIrisDoubleCaptureInfo)getCaptureInfo ()).setBioValueLI(StringHelper.base64UrlEncode(isoData)); } else { - ((SBIIrisDoubleCaptureInfo)getCaptureInfo ()).setCaptureLI(true); - } - - if (((SBIIrisDoubleCaptureInfo)getCaptureInfo ()).isCaptureLI()) - { - getCaptureInfo ().setCaptureCompleted(true); + getCaptureInfo ().addBiometricForBioSubType(SBIConstant.BIO_NAME_LEFT_IRIS, StringHelper.base64UrlEncode(isoData)); } - } - else if (getDeviceSubId () == SBIConstant.DEVICE_IRIS_DOUBLE_SUB_TYPE_ID_RIGHT) + + if (isScoreFromIso()) + ((SBIIrisDoubleCaptureInfo)getCaptureInfo ()).setCaptureScoreLI(BioUtilHelper.getIrisQualityScoreFromIso(getPurpose(), isoData)); + else + ((SBIIrisDoubleCaptureInfo)getCaptureInfo ()).setCaptureScoreLI(getQualityScore()); + ((SBIIrisDoubleCaptureInfo)getCaptureInfo ()).setCaptureLI(true); + } + } + else + { + ((SBIIrisDoubleCaptureInfo)getCaptureInfo ()).setCaptureLI(true); + } + + if (((SBIIrisDoubleCaptureInfo)getCaptureInfo ()).isCaptureLI()) + { + getCaptureInfo ().setCaptureCompleted(true); + } + } + + private void setBioCaptureIrisForSubTypeRight(boolean isUsedForAuthenication, String seedName) throws Exception { + byte [] isoData = null; + if (((SBIIrisDoubleBioExceptionInfo)getCaptureInfo ().getBioExceptionInfo()).getChkMissingRightIris() == SBICheckState.Unchecked) + { + isoData = getBiometricISOImage(seedName, SBIConstant.PROFILE_BIO_FILE_NAME_RIGHT_IRIS); + if (isoData != null && !((SBIIrisDoubleCaptureInfo)getCaptureInfo ()).isCaptureRI()) { - if (((SBIIrisDoubleBioExceptionInfo)getCaptureInfo ().getBioExceptionInfo()).getChkMissingRightIris() == SBICheckState.Unchecked) + if (!isUsedForAuthenication) { - isoData = getBiometricISOImage(seedName, SBIConstant.PROFILE_BIO_FILE_NAME_RIGHT_IRIS); - if (isoData != null && !((SBIIrisDoubleCaptureInfo)getCaptureInfo ()).isCaptureRI()) - { - ((SBIIrisDoubleCaptureInfo)getCaptureInfo ()).setBioValueRI(StringHelper.base64UrlEncode(isoData)); - if (isScoreFromIso()) - ((SBIIrisDoubleCaptureInfo)getCaptureInfo ()).setCaptureScoreRI(BioUtilHelper.getIrisQualityScoreFromIso(getPurpose(), isoData)); - else - ((SBIIrisDoubleCaptureInfo)getCaptureInfo ()).setCaptureScoreRI(getQualityScore()); - ((SBIIrisDoubleCaptureInfo)getCaptureInfo ()).setCaptureRI(true); - } + ((SBIIrisDoubleCaptureInfo)getCaptureInfo ()).setBioValueRI(StringHelper.base64UrlEncode(isoData)); } else { - ((SBIIrisDoubleCaptureInfo)getCaptureInfo ()).setCaptureLI(true); - } - if (((SBIIrisDoubleCaptureInfo)getCaptureInfo ()).isCaptureRI()) - { - getCaptureInfo ().setCaptureCompleted(true); - } - } - else if (getDeviceSubId () == SBIConstant.DEVICE_IRIS_DOUBLE_SUB_TYPE_ID_BOTH) - { - if (((SBIIrisDoubleBioExceptionInfo)getCaptureInfo ().getBioExceptionInfo()).getChkMissingLeftIris() == SBICheckState.Unchecked) - { - isoData = getBiometricISOImage(seedName, SBIConstant.PROFILE_BIO_FILE_NAME_LEFT_IRIS); - if (isoData != null && !((SBIIrisDoubleCaptureInfo)getCaptureInfo ()).isCaptureLI()) - { - ((SBIIrisDoubleCaptureInfo)getCaptureInfo ()).setBioValueLI(StringHelper.base64UrlEncode(isoData)); - if (isScoreFromIso()) - ((SBIIrisDoubleCaptureInfo)getCaptureInfo ()).setCaptureScoreLI(BioUtilHelper.getIrisQualityScoreFromIso(getPurpose(), isoData)); - else - ((SBIIrisDoubleCaptureInfo)getCaptureInfo ()).setCaptureScoreLI(getQualityScore()); - ((SBIIrisDoubleCaptureInfo)getCaptureInfo ()).setCaptureLI(true); - } + getCaptureInfo ().addBiometricForBioSubType(SBIConstant.BIO_NAME_RIGHT_IRIS, StringHelper.base64UrlEncode(isoData)); } + if (isScoreFromIso()) + ((SBIIrisDoubleCaptureInfo)getCaptureInfo ()).setCaptureScoreRI(BioUtilHelper.getIrisQualityScoreFromIso(getPurpose(), isoData)); else - { - ((SBIIrisDoubleCaptureInfo)getCaptureInfo ()).setCaptureLI(true); - } + ((SBIIrisDoubleCaptureInfo)getCaptureInfo ()).setCaptureScoreRI(getQualityScore()); + ((SBIIrisDoubleCaptureInfo)getCaptureInfo ()).setCaptureRI(true); + } + } + else + { + ((SBIIrisDoubleCaptureInfo)getCaptureInfo ()).setCaptureLI(true); + } + if (((SBIIrisDoubleCaptureInfo)getCaptureInfo ()).isCaptureRI()) + { + getCaptureInfo ().setCaptureCompleted(true); + } + } - if (((SBIIrisDoubleBioExceptionInfo)getCaptureInfo ().getBioExceptionInfo()).getChkMissingRightIris() == SBICheckState.Unchecked) + private void setBioCaptureIrisForSubTypeBoth(boolean isUsedForAuthenication, String seedName) throws Exception { + byte [] isoData = null; + if (((SBIIrisDoubleBioExceptionInfo)getCaptureInfo ().getBioExceptionInfo()).getChkMissingLeftIris() == SBICheckState.Unchecked) + { + isoData = getBiometricISOImage(seedName, SBIConstant.PROFILE_BIO_FILE_NAME_LEFT_IRIS); + if (isoData != null && !((SBIIrisDoubleCaptureInfo)getCaptureInfo ()).isCaptureLI()) + { + if (!isUsedForAuthenication) { - isoData = getBiometricISOImage(seedName, SBIConstant.PROFILE_BIO_FILE_NAME_RIGHT_IRIS); - if (isoData != null && !((SBIIrisDoubleCaptureInfo)getCaptureInfo ()).isCaptureRI()) - { - ((SBIIrisDoubleCaptureInfo)getCaptureInfo ()).setBioValueRI(StringHelper.base64UrlEncode(isoData)); - if (isScoreFromIso()) - ((SBIIrisDoubleCaptureInfo)getCaptureInfo ()).setCaptureScoreRI(BioUtilHelper.getIrisQualityScoreFromIso(getPurpose(), isoData)); - else - ((SBIIrisDoubleCaptureInfo)getCaptureInfo ()).setCaptureScoreRI(getQualityScore()); - ((SBIIrisDoubleCaptureInfo)getCaptureInfo ()).setCaptureRI(true); - } + ((SBIIrisDoubleCaptureInfo)getCaptureInfo ()).setBioValueLI(StringHelper.base64UrlEncode(isoData)); } else { - ((SBIIrisDoubleCaptureInfo)getCaptureInfo ()).setCaptureLI(true); - } - - if (((SBIIrisDoubleCaptureInfo)getCaptureInfo ()).isCaptureLI() || - ((SBIIrisDoubleCaptureInfo)getCaptureInfo ()).isCaptureRI()) - { - getCaptureInfo ().setCaptureCompleted(true); + getCaptureInfo ().addBiometricForBioSubType(SBIConstant.BIO_NAME_LEFT_IRIS, StringHelper.base64UrlEncode(isoData)); } - } + if (isScoreFromIso()) + ((SBIIrisDoubleCaptureInfo)getCaptureInfo ()).setCaptureScoreLI(BioUtilHelper.getIrisQualityScoreFromIso(getPurpose(), isoData)); + else + ((SBIIrisDoubleCaptureInfo)getCaptureInfo ()).setCaptureScoreLI(getQualityScore()); + ((SBIIrisDoubleCaptureInfo)getCaptureInfo ()).setCaptureLI(true); + } } - else if (isForAuthenication) + else { - if (getDeviceSubId () == SBIConstant.DEVICE_IRIS_DOUBLE_SUB_TYPE_ID_LEFT) - { - isoData = getBiometricISOImage(seedName, SBIConstant.PROFILE_BIO_FILE_NAME_LEFT_IRIS); - if (isoData != null && !((SBIIrisDoubleCaptureInfo)getCaptureInfo ()).isCaptureLI()) - { - getCaptureInfo ().addBiometricForBioSubType(SBIConstant.BIO_NAME_LEFT_IRIS, StringHelper.base64UrlEncode(isoData)); - if (isScoreFromIso()) - ((SBIIrisDoubleCaptureInfo)getCaptureInfo ()).setCaptureScoreLI(BioUtilHelper.getIrisQualityScoreFromIso(getPurpose(), isoData)); - else - ((SBIIrisDoubleCaptureInfo)getCaptureInfo ()).setCaptureScoreLI(getQualityScore()); - ((SBIIrisDoubleCaptureInfo)getCaptureInfo ()).setCaptureLI(true); - } - - if (((SBIIrisDoubleCaptureInfo)getCaptureInfo ()).isCaptureLI()) - getCaptureInfo ().setCaptureCompleted(true); - } - else if (getDeviceSubId () == SBIConstant.DEVICE_IRIS_DOUBLE_SUB_TYPE_ID_RIGHT) - { - isoData = getBiometricISOImage(seedName, SBIConstant.PROFILE_BIO_FILE_NAME_RIGHT_IRIS); - if (isoData != null && !((SBIIrisDoubleCaptureInfo)getCaptureInfo ()).isCaptureRI()) - { - getCaptureInfo ().addBiometricForBioSubType(SBIConstant.BIO_NAME_RIGHT_IRIS, StringHelper.base64UrlEncode(isoData)); - if (isScoreFromIso()) - ((SBIIrisDoubleCaptureInfo)getCaptureInfo ()).setCaptureScoreRI(BioUtilHelper.getIrisQualityScoreFromIso(getPurpose(), isoData)); - else - ((SBIIrisDoubleCaptureInfo)getCaptureInfo ()).setCaptureScoreRI(getQualityScore()); - ((SBIIrisDoubleCaptureInfo)getCaptureInfo ()).setCaptureRI(true); - } - - if (((SBIIrisDoubleCaptureInfo)getCaptureInfo ()).isCaptureRI()) - getCaptureInfo ().setCaptureCompleted(true); - } - else if (getDeviceSubId () == SBIConstant.DEVICE_IRIS_DOUBLE_SUB_TYPE_ID_BOTH) + ((SBIIrisDoubleCaptureInfo)getCaptureInfo ()).setCaptureLI(true); + } + + if (((SBIIrisDoubleBioExceptionInfo)getCaptureInfo ().getBioExceptionInfo()).getChkMissingRightIris() == SBICheckState.Unchecked) + { + isoData = getBiometricISOImage(seedName, SBIConstant.PROFILE_BIO_FILE_NAME_RIGHT_IRIS); + if (isoData != null && !((SBIIrisDoubleCaptureInfo)getCaptureInfo ()).isCaptureRI()) { - isoData = getBiometricISOImage(seedName, SBIConstant.PROFILE_BIO_FILE_NAME_LEFT_IRIS); - if (isoData != null && !((SBIIrisDoubleCaptureInfo)getCaptureInfo ()).isCaptureLI()) + if (!isUsedForAuthenication) { - getCaptureInfo ().addBiometricForBioSubType(SBIConstant.BIO_NAME_LEFT_IRIS, StringHelper.base64UrlEncode(isoData)); - if (isScoreFromIso()) - ((SBIIrisDoubleCaptureInfo)getCaptureInfo ()).setCaptureScoreLI(BioUtilHelper.getIrisQualityScoreFromIso(getPurpose(), isoData)); - else - ((SBIIrisDoubleCaptureInfo)getCaptureInfo ()).setCaptureScoreLI(getQualityScore()); - ((SBIIrisDoubleCaptureInfo)getCaptureInfo ()).setCaptureLI(true); - } - - isoData = getBiometricISOImage(seedName, SBIConstant.PROFILE_BIO_FILE_NAME_RIGHT_IRIS); - if (isoData != null && !((SBIIrisDoubleCaptureInfo)getCaptureInfo ()).isCaptureRI()) + ((SBIIrisDoubleCaptureInfo)getCaptureInfo ()).setBioValueRI(StringHelper.base64UrlEncode(isoData)); + } + else { getCaptureInfo ().addBiometricForBioSubType(SBIConstant.BIO_NAME_RIGHT_IRIS, StringHelper.base64UrlEncode(isoData)); - if (isScoreFromIso()) - ((SBIIrisDoubleCaptureInfo)getCaptureInfo ()).setCaptureScoreRI(BioUtilHelper.getIrisQualityScoreFromIso(getPurpose(), isoData)); - else - ((SBIIrisDoubleCaptureInfo)getCaptureInfo ()).setCaptureScoreRI(getQualityScore()); - ((SBIIrisDoubleCaptureInfo)getCaptureInfo ()).setCaptureLI(true); - } - - if (((SBIIrisDoubleCaptureInfo)getCaptureInfo ()).isCaptureLI() || - ((SBIIrisDoubleCaptureInfo)getCaptureInfo ()).isCaptureRI()) - { - getCaptureInfo ().setCaptureCompleted(true); } - } + if (isScoreFromIso()) + ((SBIIrisDoubleCaptureInfo)getCaptureInfo ()).setCaptureScoreRI(BioUtilHelper.getIrisQualityScoreFromIso(getPurpose(), isoData)); + else + ((SBIIrisDoubleCaptureInfo)getCaptureInfo ()).setCaptureScoreRI(getQualityScore()); + ((SBIIrisDoubleCaptureInfo)getCaptureInfo ()).setCaptureRI(true); + } + } + else + { + ((SBIIrisDoubleCaptureInfo)getCaptureInfo ()).setCaptureLI(true); + } + + if (((SBIIrisDoubleCaptureInfo)getCaptureInfo ()).isCaptureLI() || + ((SBIIrisDoubleCaptureInfo)getCaptureInfo ()).isCaptureRI()) + { + getCaptureInfo ().setCaptureCompleted(true); } - return 0; } } diff --git a/MockMDS/src/main/java/io/mosip/mock/sbi/devicehelper/iris/monocular/SBIIrisSingleBioExceptionInfo.java b/MockMDS/src/main/java/io/mosip/mock/sbi/devicehelper/iris/monocular/SBIIrisSingleBioExceptionInfo.java index 6744848f..d040dbfc 100644 --- a/MockMDS/src/main/java/io/mosip/mock/sbi/devicehelper/iris/monocular/SBIIrisSingleBioExceptionInfo.java +++ b/MockMDS/src/main/java/io/mosip/mock/sbi/devicehelper/iris/monocular/SBIIrisSingleBioExceptionInfo.java @@ -25,14 +25,15 @@ public void initBioException(String[] bioException) { if (bioException != null && bioException.length > 0) { for (String tag : bioException){ - if (tag.trim ().equals (SBIConstant.BIO_NAME_LEFT_IRIS)) - { - setChkMissingLeftIris (SBICheckState.Checked); - } - else if (tag.trim ().equals (SBIConstant.BIO_NAME_RIGHT_IRIS)) - { - setChkMissingRightIris (SBICheckState.Checked); - } + switch (tag.trim ()) + { + case SBIConstant.BIO_NAME_LEFT_IRIS: + setChkMissingLeftIris (SBICheckState.Checked); + break; + case SBIConstant.BIO_NAME_RIGHT_IRIS: + setChkMissingRightIris (SBICheckState.Checked); + break; + } } } } diff --git a/MockMDS/src/main/java/io/mosip/mock/sbi/devicehelper/iris/monocular/SBIIrisSingleHelper.java b/MockMDS/src/main/java/io/mosip/mock/sbi/devicehelper/iris/monocular/SBIIrisSingleHelper.java index 369c732a..f32c13bf 100644 --- a/MockMDS/src/main/java/io/mosip/mock/sbi/devicehelper/iris/monocular/SBIIrisSingleHelper.java +++ b/MockMDS/src/main/java/io/mosip/mock/sbi/devicehelper/iris/monocular/SBIIrisSingleHelper.java @@ -17,7 +17,7 @@ public class SBIIrisSingleHelper extends SBIDeviceHelper { private SBIIrisSingleHelper(int port, String purpose) { - super (port, purpose, ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_IRIS), ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_IRIS_SINGLE)); + super (port, purpose, SBIConstant.MOSIP_BIOMETRIC_TYPE_IRIS, SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_IRIS_SINGLE); } //synchronized method to control simultaneous access diff --git a/MockMDS/src/main/java/io/mosip/mock/sbi/service/SBIMockService.java b/MockMDS/src/main/java/io/mosip/mock/sbi/service/SBIMockService.java index 1fe3b1cb..30e25f95 100644 --- a/MockMDS/src/main/java/io/mosip/mock/sbi/service/SBIMockService.java +++ b/MockMDS/src/main/java/io/mosip/mock/sbi/service/SBIMockService.java @@ -86,26 +86,28 @@ public void run() { } private void initDeviceHelpers() { - if (getBiometricType().equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_BIOMTRIC_DEVICE)) || - getBiometricType().equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_FINGER))) + if (getBiometricType().equalsIgnoreCase(SBIConstant.MOSIP_BIOMETRIC_TYPE_BIOMTRIC_DEVICE) || + getBiometricType().equalsIgnoreCase(SBIConstant.MOSIP_BIOMETRIC_TYPE_FINGER)) { if (getPurpose ().equalsIgnoreCase(SBIConstant.PURPOSE_REGISTRATION)) - this.deviceHelpers.put(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_FINGER) + "_" + ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_FINGER_SLAP), SBIFingerSlapHelper.getInstance(getServerPort(), getPurpose ())); + this.deviceHelpers.put(SBIConstant.MOSIP_BIOMETRIC_TYPE_FINGER + "_" + SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_FINGER_SLAP, SBIFingerSlapHelper.getInstance(getServerPort(), getPurpose ())); else if (getPurpose ().equalsIgnoreCase(SBIConstant.PURPOSE_AUTH)) - this.deviceHelpers.put(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_FINGER) + "_" + ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_FINGER_SINGLE), SBIFingerSingleHelper.getInstance(getServerPort(), getPurpose ())); + this.deviceHelpers.put(SBIConstant.MOSIP_BIOMETRIC_TYPE_FINGER + "_" + SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_FINGER_SINGLE, SBIFingerSingleHelper.getInstance(getServerPort(), getPurpose ())); } - if (getBiometricType().equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_BIOMTRIC_DEVICE)) || - getBiometricType().equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_IRIS))) + + if (getBiometricType().equalsIgnoreCase(SBIConstant.MOSIP_BIOMETRIC_TYPE_BIOMTRIC_DEVICE) || + getBiometricType().equalsIgnoreCase(SBIConstant.MOSIP_BIOMETRIC_TYPE_IRIS)) { if (getPurpose ().equalsIgnoreCase(SBIConstant.PURPOSE_REGISTRATION)) - this.deviceHelpers.put(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_IRIS) + "_" + ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_IRIS_DOUBLE), SBIIrisDoubleHelper.getInstance(getServerPort(), getPurpose ())); + this.deviceHelpers.put(SBIConstant.MOSIP_BIOMETRIC_TYPE_IRIS + "_" + SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_IRIS_DOUBLE, SBIIrisDoubleHelper.getInstance(getServerPort(), getPurpose ())); else if (getPurpose ().equalsIgnoreCase(SBIConstant.PURPOSE_AUTH)) - this.deviceHelpers.put(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_IRIS) + "_" + ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_IRIS_SINGLE), SBIIrisSingleHelper.getInstance(getServerPort(), getPurpose ())); + this.deviceHelpers.put(SBIConstant.MOSIP_BIOMETRIC_TYPE_IRIS + "_" + SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_IRIS_SINGLE, SBIIrisSingleHelper.getInstance(getServerPort(), getPurpose ())); } - if (getBiometricType().equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_BIOMTRIC_DEVICE)) || - getBiometricType().equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_FACE))) + + if (getBiometricType().equalsIgnoreCase(SBIConstant.MOSIP_BIOMETRIC_TYPE_BIOMTRIC_DEVICE) || + getBiometricType().equalsIgnoreCase(SBIConstant.MOSIP_BIOMETRIC_TYPE_FACE)) { - this.deviceHelpers.put(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_FACE) + "_" + ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_FACE), SBIFaceHelper.getInstance(getServerPort(), getPurpose ())); + this.deviceHelpers.put(SBIConstant.MOSIP_BIOMETRIC_TYPE_FACE + "_" + SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_FACE, SBIFaceHelper.getInstance(getServerPort(), getPurpose ())); } } diff --git a/MockMDS/src/main/java/io/mosip/mock/sbi/service/SBIServiceResponse.java b/MockMDS/src/main/java/io/mosip/mock/sbi/service/SBIServiceResponse.java index 678dac96..aae8daf9 100644 --- a/MockMDS/src/main/java/io/mosip/mock/sbi/service/SBIServiceResponse.java +++ b/MockMDS/src/main/java/io/mosip/mock/sbi/service/SBIServiceResponse.java @@ -1,2634 +1,2573 @@ -package io.mosip.mock.sbi.service; - -import java.io.BufferedOutputStream; -import java.io.ByteArrayInputStream; -import java.io.IOException; -import java.net.Socket; -import java.nio.charset.StandardCharsets; -import java.security.MessageDigest; -import java.security.NoSuchAlgorithmException; -import java.security.PublicKey; -import java.security.cert.CertificateFactory; -import java.security.cert.X509Certificate; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Base64; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.concurrent.Semaphore; - -import org.apache.commons.codec.DecoderException; -import org.apache.commons.codec.binary.Hex; -import org.biometric.provider.CryptoUtility; -import org.biometric.provider.JwtUtility; -import org.codehaus.jackson.JsonGenerationException; -import org.codehaus.jackson.map.JsonMappingException; -import org.codehaus.jackson.map.ObjectMapper; -import org.codehaus.jackson.map.SerializationConfig; -import org.codehaus.jackson.map.annotate.JsonSerialize.Inclusion; -import org.json.JSONException; -import org.json.JSONObject; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import com.squareup.okhttp.MediaType; -import com.squareup.okhttp.OkHttpClient; -import com.squareup.okhttp.Request; -import com.squareup.okhttp.RequestBody; -import com.squareup.okhttp.Response; - -import io.mosip.kernel.core.util.CryptoUtil; -import io.mosip.kernel.core.util.DateUtils; -import io.mosip.mock.sbi.SBIConstant; -import io.mosip.mock.sbi.devicehelper.SBIBioSubTypeInfo; -import io.mosip.mock.sbi.devicehelper.SBICheckState; -import io.mosip.mock.sbi.devicehelper.SBIDeviceHelper; -import io.mosip.mock.sbi.devicehelper.face.SBIFaceCaptureInfo; -import io.mosip.mock.sbi.devicehelper.face.SBIFaceHelper; -import io.mosip.mock.sbi.devicehelper.finger.single.SBIFingerSingleCaptureInfo; -import io.mosip.mock.sbi.devicehelper.finger.single.SBIFingerSingleHelper; -import io.mosip.mock.sbi.devicehelper.finger.slap.SBIFingerSlapBioExceptionInfo; -import io.mosip.mock.sbi.devicehelper.finger.slap.SBIFingerSlapCaptureInfo; -import io.mosip.mock.sbi.devicehelper.finger.slap.SBIFingerSlapHelper; -import io.mosip.mock.sbi.devicehelper.iris.binacular.SBIIrisDoubleBioExceptionInfo; -import io.mosip.mock.sbi.devicehelper.iris.binacular.SBIIrisDoubleCaptureInfo; -import io.mosip.mock.sbi.devicehelper.iris.binacular.SBIIrisDoubleHelper; -import io.mosip.mock.sbi.devicehelper.iris.monocular.SBIIrisSingleBioExceptionInfo; -import io.mosip.mock.sbi.devicehelper.iris.monocular.SBIIrisSingleCaptureInfo; -import io.mosip.mock.sbi.devicehelper.iris.monocular.SBIIrisSingleHelper; -import io.mosip.mock.sbi.util.ApplicationPropertyHelper; -import io.mosip.mock.sbi.util.StringHelper; -import io.mosip.registration.mdm.dto.BioMetricsDataDto; -import io.mosip.registration.mdm.dto.BioMetricsDto; -import io.mosip.registration.mdm.dto.CaptureRequestDeviceDetailDto; -import io.mosip.registration.mdm.dto.CaptureRequestDto; -import io.mosip.registration.mdm.dto.DelayRequest; -import io.mosip.registration.mdm.dto.DeviceDiscoveryRequestDetail; -import io.mosip.registration.mdm.dto.DeviceInfo; -import io.mosip.registration.mdm.dto.DeviceInfoDto; -import io.mosip.registration.mdm.dto.DiscoverDto; -import io.mosip.registration.mdm.dto.ErrorInfo; -import io.mosip.registration.mdm.dto.ProfileRequest; -import io.mosip.registration.mdm.dto.RCaptureResponse; -import io.mosip.registration.mdm.dto.ScoreRequest; -import io.mosip.registration.mdm.dto.StatusRequest; -import io.mosip.registration.mdm.dto.StreamingRequestDetail; - -public class SBIServiceResponse { - - private static final Logger LOGGER = LoggerFactory.getLogger(SBIServiceResponse.class); - private static String AUTH_REQ_TEMPLATE = "{ \"id\": \"string\",\"metadata\": {},\"request\": { \"appId\": \"%s\", \"clientId\": \"%s\", \"secretKey\": \"%s\" }, \"requesttime\": \"%s\", \"version\": \"string\"}"; - - protected int port = 0; - protected String request = ""; - static Semaphore semaphore = new Semaphore (1); - /** - * Hashing Algorithm Used for encryption and decryption - */ - private String algorithm = "SHA-256"; - private String[] bioExceptionsArray = {"Left IndexFinger", "Left MiddleFinger", "Left RingFinger", "Left LittleFinger", "Left Thumb", "Right IndexFinger", "Right MiddleFinger", "Right RingFinger", "Right LittleFinger", "Right Thumb", "Left", "Right"}; - private List bioExceptionsList = Arrays.asList(bioExceptionsArray); - - private String[] bioSubtypesArray = {"Left IndexFinger", "Left MiddleFinger", "Left RingFinger", "Left LittleFinger", "Left Thumb", "Right IndexFinger", "Right MiddleFinger", "Right RingFinger", "Right LittleFinger", "Right Thumb", "Left", "Right", "UNKNOWN"}; - private List bioSubtypesList = Arrays.asList(bioSubtypesArray); - - public SBIServiceResponse (int port) - { - setPort (port); - } - - public String getServiceresponse (SBIMockService mockService, Socket socket, String strJsonRequest) - { - String responseJson = ""; - setRequest (strJsonRequest); - - if (strJsonRequest.contains(SBIConstant.MOSIP_POST_VERB) || - strJsonRequest.contains(SBIConstant.MOSIP_GET_VERB) || - strJsonRequest.contains(SBIConstant.MOSIP_DISC_VERB)) - { - responseJson = processDeviceDicoveryInfo (mockService); - } - else if (strJsonRequest.contains(SBIConstant.MOSIP_INFO_VERB)) - { - responseJson = processDeviceInfo (mockService); - } - else if (strJsonRequest.contains(SBIConstant.MOSIP_STREAM_VERB)) - { - responseJson = processLiveStreamInfo (mockService, socket); - } - else if (strJsonRequest.contains(SBIConstant.MOSIP_RCAPTURE_VERB)) - { - responseJson = processRCaptureInfo (mockService); - } - else if (strJsonRequest.contains(SBIConstant.MOSIP_CAPTURE_VERB)) - { - responseJson = processCaptureInfo (mockService); - } - else if (strJsonRequest.contains(SBIConstant.MOSIP_ADMIN_API_STATUS)) - { - responseJson = processSetStatus (mockService); - } - else if (strJsonRequest.contains(SBIConstant.MOSIP_ADMIN_API_SCORE)) - { - responseJson = processSetQualityScore (mockService); - } - else if (strJsonRequest.contains(SBIConstant.MOSIP_ADMIN_API_DELAY)) - { - responseJson = processSetDelay (mockService); - } - else if (strJsonRequest.contains(SBIConstant.MOSIP_ADMIN_API_PROFILE)) - { - responseJson = processSetProfileInfo (mockService); - } - else - { - responseJson = SBIResponseInfo.generateErrorResponse ("en", getPort (), "500", ""); - } - return responseJson; - } - - public String processDeviceDicoveryInfo (SBIMockService mockService) - { - String response = null; - String lang = "en"; - try - { - ObjectMapper objectMapper = new ObjectMapper(); - DeviceDiscoveryRequestDetail requestObject = (DeviceDiscoveryRequestDetail) getRequestJson (SBIConstant.MOSIP_DISC_VERB); - String type = null; - if (requestObject != null && requestObject.getType() != null && requestObject.getType().length() > 0) - type = requestObject.getType().toString ().trim().toLowerCase(); - - LOGGER.info("processDeviceDicoveryInfo :: type :: "+ type); - - List infoList = new ArrayList (); - if (type == null || type.trim().length() == 0) - { - return SBIJsonInfo.getErrorJson (lang, "502", ""); - } - else if (!type.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_BIOMTRIC_DEVICE)) - && !type.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_FINGER)) - && !type.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_FACE)) - && !type.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_IRIS))) - { - return SBIJsonInfo.getErrorJson (lang, "502", ""); - } - else - { - long delay = 0; - if (type.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_BIOMTRIC_DEVICE)) - || type.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_FINGER))) - { - if (mockService.getPurpose().equalsIgnoreCase(SBIConstant.PURPOSE_REGISTRATION)) - { - SBIFingerSlapHelper deviceHelper = (SBIFingerSlapHelper) mockService.getDeviceHelper(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_FINGER) + "_" + ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_FINGER_SLAP)); - if (deviceHelper != null) - { - delay = deviceHelper.getDelayForMethod(SBIConstant.MOSIP_METHOD_MOSIPDISC); - delay(delay); - - deviceHelper.initDeviceDetails(); - DiscoverDto discoverInfo = deviceHelper.getDiscoverDto(); - if (discoverInfo != null) - infoList.add(discoverInfo); - } - } - else if (mockService.getPurpose().equalsIgnoreCase(SBIConstant.PURPOSE_AUTH)) - { - SBIFingerSingleHelper deviceHelper = (SBIFingerSingleHelper) mockService.getDeviceHelper(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_FINGER) + "_" + ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_FINGER_SINGLE)); - if (deviceHelper != null) - { - delay = deviceHelper.getDelayForMethod(SBIConstant.MOSIP_METHOD_MOSIPDISC); - delay(delay); - - deviceHelper.initDeviceDetails(); - DiscoverDto discoverInfo = deviceHelper.getDiscoverDto(); - if (discoverInfo != null) - infoList.add(discoverInfo); - } - } - } - - if (type.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_BIOMTRIC_DEVICE)) - || type.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_FACE))) - { - SBIFaceHelper deviceHelper = (SBIFaceHelper) mockService.getDeviceHelper(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_FACE) + "_" + ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_FACE)); - if (deviceHelper != null) - { - delay = deviceHelper.getDelayForMethod(SBIConstant.MOSIP_METHOD_MOSIPDISC); - delay(delay); - deviceHelper.initDeviceDetails(); - DiscoverDto discoverInfo = deviceHelper.getDiscoverDto(); - if (discoverInfo != null) - infoList.add(discoverInfo); - } - } - - if (type.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_BIOMTRIC_DEVICE)) - || type.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_IRIS))) - { - if (mockService.getPurpose().equalsIgnoreCase(SBIConstant.PURPOSE_REGISTRATION)) - { - SBIIrisDoubleHelper deviceHelper = (SBIIrisDoubleHelper) mockService.getDeviceHelper(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_IRIS) + "_" + ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_IRIS_DOUBLE)); - if (deviceHelper != null) - { - delay = deviceHelper.getDelayForMethod(SBIConstant.MOSIP_METHOD_MOSIPDISC); - delay(delay); - - deviceHelper.initDeviceDetails(); - DiscoverDto discoverInfo = deviceHelper.getDiscoverDto(); - if (discoverInfo != null) - infoList.add(discoverInfo); - } - } - else if (mockService.getPurpose().equalsIgnoreCase(SBIConstant.PURPOSE_AUTH)) - { - SBIIrisSingleHelper deviceHelper = (SBIIrisSingleHelper) mockService.getDeviceHelper(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_IRIS) + "_" + ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_IRIS_SINGLE)); - if (deviceHelper != null) - { - delay = deviceHelper.getDelayForMethod(SBIConstant.MOSIP_METHOD_MOSIPDISC); - delay(delay); - - deviceHelper.initDeviceDetails(); - DiscoverDto discoverInfo = deviceHelper.getDiscoverDto(); - if (discoverInfo != null) - infoList.add(discoverInfo); - } - } - } - - if (infoList != null && infoList.size() > 0) - { - return objectMapper.writeValueAsString(infoList); - } - else - { - return SBIJsonInfo.getErrorJson (lang, "503", ""); - } - } - } - catch (Exception ex) - { - response = SBIResponseInfo.generateErrorResponse (lang, getPort (), SBIConstant.Error_Code_999 + "", ""); - LOGGER.error("processDeviceDicoveryInfo", ex); - } - finally - { - } - return response; - } - - public String processDeviceInfo (SBIMockService mockService) - { - String response = null; - String lang = "en"; - try - { - long delay = 0; - ObjectMapper objectMapper = new ObjectMapper(); - - List infoList = new ArrayList (); - DeviceInfoDto deviceInfoDto = null; - SBIDeviceHelper deviceHelper = null; - if (mockService.getPurpose().equalsIgnoreCase(SBIConstant.PURPOSE_REGISTRATION)) - { - deviceHelper = (SBIFingerSlapHelper) mockService.getDeviceHelper(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_FINGER) + "_" + ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_FINGER_SLAP)); - if (deviceHelper != null) - { - delay = deviceHelper.getDelayForMethod(SBIConstant.MOSIP_METHOD_MOSIPDINFO); - delay(delay); - - deviceHelper.initDeviceDetails(); - deviceInfoDto = deviceHelper.getDeviceInfoDto(); - if (deviceInfoDto != null) - infoList.add(deviceInfoDto); - } - } - else if (mockService.getPurpose().equalsIgnoreCase(SBIConstant.PURPOSE_AUTH)) - { - deviceHelper = (SBIFingerSingleHelper) mockService.getDeviceHelper(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_FINGER) + "_" + ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_FINGER_SINGLE)); - if (deviceHelper != null) - { - delay = deviceHelper.getDelayForMethod(SBIConstant.MOSIP_METHOD_MOSIPDINFO); - delay(delay); - - deviceHelper.initDeviceDetails(); - deviceInfoDto = deviceHelper.getDeviceInfoDto(); - if (deviceInfoDto != null) - infoList.add(deviceInfoDto); - } - } - - deviceHelper = (SBIFaceHelper) mockService.getDeviceHelper(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_FACE) + "_" + ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_FACE)); - if (deviceHelper != null) - { - delay = deviceHelper.getDelayForMethod(SBIConstant.MOSIP_METHOD_MOSIPDINFO); - delay(delay); - - deviceHelper.initDeviceDetails(); - deviceInfoDto = deviceHelper.getDeviceInfoDto(); - if (deviceInfoDto != null) - infoList.add(deviceInfoDto); - } - - if (mockService.getPurpose().equalsIgnoreCase(SBIConstant.PURPOSE_REGISTRATION)) - { - deviceHelper = (SBIIrisDoubleHelper) mockService.getDeviceHelper(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_IRIS) + "_" + ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_IRIS_DOUBLE)); - if (deviceHelper != null) - { - delay = deviceHelper.getDelayForMethod(SBIConstant.MOSIP_METHOD_MOSIPDINFO); - delay(delay); - - deviceHelper.initDeviceDetails(); - deviceInfoDto = deviceHelper.getDeviceInfoDto(); - if (deviceInfoDto != null) - infoList.add(deviceInfoDto); - } - } - else if (mockService.getPurpose().equalsIgnoreCase(SBIConstant.PURPOSE_AUTH)) - { - deviceHelper = (SBIIrisSingleHelper) mockService.getDeviceHelper(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_IRIS) + "_" + ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_IRIS_SINGLE)); - if (deviceHelper != null) - { - delay = deviceHelper.getDelayForMethod(SBIConstant.MOSIP_METHOD_MOSIPDINFO); - delay(delay); - - deviceHelper.initDeviceDetails(); - deviceInfoDto = deviceHelper.getDeviceInfoDto(); - if (deviceInfoDto != null) - infoList.add(deviceInfoDto); - } - } - - if (infoList != null && infoList.size() > 0) - { - return objectMapper.writeValueAsString(infoList); - } - else - { - return SBIJsonInfo.getErrorJson (lang, "106", ""); - } - } - catch (Exception ex) - { - response = SBIResponseInfo.generateErrorResponse (lang, getPort (), SBIConstant.Error_Code_999 + "", ""); - LOGGER.error("processDeviceDicoveryInfo", ex); - } - finally - { - } - return response; - } - - public String processSetStatus (SBIMockService mockService) - { - String response = null; - String lang = "en"; - try - { - StatusRequest requestObject = (StatusRequest) getRequestJson (SBIConstant.MOSIP_ADMIN_API_STATUS); - String type = null, status = null; - if (requestObject != null && requestObject.getType() != null && requestObject.getType().length() > 0) - type = requestObject.getType().toString ().trim().toLowerCase(); - - if (requestObject != null && requestObject.getDeviceStatus() != null && requestObject.getDeviceStatus().length() > 0) - status = requestObject.getDeviceStatus().toString ().trim().toLowerCase(); - - LOGGER.info("processSetStatus :: Type :: " + type + " :: Status :: " + status); - - if (type == null || type.trim().length() == 0) - { - return SBIJsonInfo.getAdminApiErrorJson (lang, "502", ""); - } - else if (!type.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_BIOMTRIC_DEVICE)) - && !type.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_FINGER)) - && !type.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_FACE)) - && !type.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_IRIS))) - { - return SBIJsonInfo.getAdminApiErrorJson (lang, "502", ""); - } - else if (!status.equalsIgnoreCase(SBIConstant.DEVICE_STATUS_ISREADY) - && !status.equalsIgnoreCase(SBIConstant.DEVICE_STATUS_ISBUSY) - && !status.equalsIgnoreCase(SBIConstant.DEVICE_STATUS_NOTREADY) - && !status.equalsIgnoreCase(SBIConstant.DEVICE_STATUS_NOTREGISTERED)) - { - return SBIJsonInfo.getAdminApiErrorJson (lang, "504", ""); - } - else - { - SBIDeviceHelper deviceHelper = null; - if (mockService.getPurpose().equalsIgnoreCase(SBIConstant.PURPOSE_REGISTRATION)) - { - deviceHelper = (SBIFingerSlapHelper) mockService.getDeviceHelper(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_FINGER) + "_" + ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_FINGER_SLAP)); - if (deviceHelper != null) - { - deviceHelper.setDeviceStatus((type.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_BIOMTRIC_DEVICE)) || type.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_FINGER)) ? status : SBIConstant.DEVICE_STATUS_ISREADY)); - } - } - else if (mockService.getPurpose().equalsIgnoreCase(SBIConstant.PURPOSE_AUTH)) - { - deviceHelper = (SBIFingerSingleHelper) mockService.getDeviceHelper(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_FINGER) + "_" + ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_FINGER_SINGLE)); - if (deviceHelper != null) - { - deviceHelper.setDeviceStatus((type.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_BIOMTRIC_DEVICE)) || type.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_FINGER)) ? status : SBIConstant.DEVICE_STATUS_ISREADY)); - } - } - - deviceHelper = (SBIFaceHelper) mockService.getDeviceHelper(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_FACE) + "_" + ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_FACE)); - if (deviceHelper != null) - { - deviceHelper.setDeviceStatus((type.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_BIOMTRIC_DEVICE)) || type.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_FACE)) ? status : SBIConstant.DEVICE_STATUS_ISREADY)); - } - - if (mockService.getPurpose().equalsIgnoreCase(SBIConstant.PURPOSE_REGISTRATION)) - { - deviceHelper = (SBIIrisDoubleHelper) mockService.getDeviceHelper(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_IRIS) + "_" + ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_IRIS_DOUBLE)); - if (deviceHelper != null) - { - deviceHelper.setDeviceStatus((type.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_BIOMTRIC_DEVICE)) || type.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_IRIS)) ? status : SBIConstant.DEVICE_STATUS_ISREADY)); - } - } - else if (mockService.getPurpose().equalsIgnoreCase(SBIConstant.PURPOSE_AUTH)) - { - deviceHelper = (SBIIrisSingleHelper) mockService.getDeviceHelper(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_IRIS) + "_" + ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_IRIS_SINGLE)); - if (deviceHelper != null) - { - deviceHelper.setDeviceStatus((type.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_BIOMTRIC_DEVICE)) || type.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_IRIS)) ? status : SBIConstant.DEVICE_STATUS_ISREADY)); - } - } - } - - response = SBIJsonInfo.getAdminApiErrorJson (lang, "0", ""); - } - catch (Exception ex) - { - response = SBIJsonInfo.getAdminApiErrorJson (lang, "999", ex.getLocalizedMessage() + ""); - LOGGER.error("processSetStatus", ex); - } - finally - { - } - return response; - } - - public String processSetQualityScore (SBIMockService mockService) - { - String response = null; - String lang = "en"; - try - { - ScoreRequest requestObject = (ScoreRequest) getRequestJson (SBIConstant.MOSIP_ADMIN_API_SCORE); - String type = null, qualityScore = null; - boolean scoreFromIso = false; - if (requestObject != null && requestObject.getType() != null && requestObject.getType().length() > 0) - type = requestObject.getType().toString ().trim().toLowerCase(); - - if (requestObject != null && requestObject.getQualityScore() != null && requestObject.getQualityScore().length() > 0) - qualityScore = requestObject.getQualityScore().toString ().trim(); - - if (requestObject != null) - scoreFromIso = requestObject.isFromIso(); - - LOGGER.info("processSetQualityScore :: Type :: " + type + " :: qualityScore :: " + qualityScore + " :: fromIso :: " + scoreFromIso); - - if (type == null || type.trim().length() == 0) - { - response = SBIJsonInfo.getAdminApiErrorJson (lang, "502", ""); - } - else if (!type.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_BIOMTRIC_DEVICE)) - && !type.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_FINGER)) - && !type.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_FACE)) - && !type.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_IRIS))) - { - response = SBIJsonInfo.getAdminApiErrorJson (lang, "502", ""); - } - else if (qualityScore == null || qualityScore.trim().length() == 0) - { - response = SBIJsonInfo.getAdminApiErrorJson (lang, "505", ""); - } - else if (qualityScore != null && (Integer.parseInt(qualityScore) < 0 || Integer.parseInt(qualityScore) > 100)) - { - response = SBIJsonInfo.getAdminApiErrorJson (lang, "505", ""); - } - else - { - int defaultQualityScore = Integer.parseInt(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_MOCK_SBI_QUALITY_SCORE)); - - SBIDeviceHelper deviceHelper = null; - if (mockService.getPurpose().equalsIgnoreCase(SBIConstant.PURPOSE_REGISTRATION)) - { - deviceHelper = (SBIFingerSlapHelper) mockService.getDeviceHelper(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_FINGER) + "_" + ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_FINGER_SLAP)); - if (deviceHelper != null) - { - deviceHelper.setScoreFromIso ((type.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_BIOMTRIC_DEVICE)) || type.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_FINGER))) ? scoreFromIso : false); - deviceHelper.setQualityScore((type.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_BIOMTRIC_DEVICE)) || type.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_FINGER))) ? Integer.parseInt(qualityScore) : defaultQualityScore); - deviceHelper.setQualityScoreSet((type.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_BIOMTRIC_DEVICE)) || type.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_FINGER))) ? true : false); - } - } - else if (mockService.getPurpose().equalsIgnoreCase(SBIConstant.PURPOSE_AUTH)) - { - deviceHelper = (SBIFingerSingleHelper) mockService.getDeviceHelper(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_FINGER) + "_" + ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_FINGER_SINGLE)); - if (deviceHelper != null) - { - deviceHelper.setScoreFromIso ((type.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_BIOMTRIC_DEVICE)) || type.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_FINGER))) ? scoreFromIso : false); - deviceHelper.setQualityScore((type.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_BIOMTRIC_DEVICE)) || type.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_FINGER))) ? Integer.parseInt(qualityScore) : defaultQualityScore); - deviceHelper.setQualityScoreSet((type.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_BIOMTRIC_DEVICE)) || type.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_FINGER))) ? true : false); - } - } - - deviceHelper = (SBIFaceHelper) mockService.getDeviceHelper(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_FACE) + "_" + ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_FACE)); - if (deviceHelper != null) - { - deviceHelper.setScoreFromIso((type.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_BIOMTRIC_DEVICE)) || type.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_FACE))) ? scoreFromIso : false); - deviceHelper.setQualityScore((type.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_BIOMTRIC_DEVICE)) || type.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_FACE))) ? Integer.parseInt(qualityScore) : defaultQualityScore); - deviceHelper.setQualityScoreSet((type.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_BIOMTRIC_DEVICE)) || type.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_FINGER))) ? true : false); - } - - if (mockService.getPurpose().equalsIgnoreCase(SBIConstant.PURPOSE_REGISTRATION)) - { - deviceHelper = (SBIIrisDoubleHelper) mockService.getDeviceHelper(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_IRIS) + "_" + ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_IRIS_DOUBLE)); - if (deviceHelper != null) - { - deviceHelper.setScoreFromIso((type.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_BIOMTRIC_DEVICE)) || type.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_IRIS))) ? scoreFromIso : false); - deviceHelper.setQualityScore((type.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_BIOMTRIC_DEVICE)) || type.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_IRIS))) ? Integer.parseInt(qualityScore) : defaultQualityScore); - deviceHelper.setQualityScoreSet((type.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_BIOMTRIC_DEVICE)) || type.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_FINGER))) ? true : false); - } - } - else if (mockService.getPurpose().equalsIgnoreCase(SBIConstant.PURPOSE_AUTH)) - { - deviceHelper = (SBIIrisSingleHelper) mockService.getDeviceHelper(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_IRIS) + "_" + ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_IRIS_SINGLE)); - if (deviceHelper != null) - { - deviceHelper.setScoreFromIso((type.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_BIOMTRIC_DEVICE)) || type.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_IRIS))) ? scoreFromIso : false); - deviceHelper.setQualityScore((type.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_BIOMTRIC_DEVICE)) || type.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_IRIS))) ? Integer.parseInt(qualityScore) : defaultQualityScore); - deviceHelper.setQualityScoreSet((type.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_BIOMTRIC_DEVICE)) || type.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_FINGER))) ? true : false); - } - } - - response = SBIJsonInfo.getAdminApiErrorJson (lang, "0", ""); - } - } - catch (Exception ex) - { - response = SBIJsonInfo.getAdminApiErrorJson (lang, "999", ex.getLocalizedMessage() + ""); - LOGGER.error("processSetQualityScore", ex); - } - finally - { - } - return response; - } - - public String processSetDelay (SBIMockService mockService) - { - String response = null; - String lang = "en"; - try - { - DelayRequest requestObject = (DelayRequest) getRequestJson (SBIConstant.MOSIP_ADMIN_API_DELAY); - String type = null, delay = null, method[] = null; - if (requestObject != null && requestObject.getType() != null && requestObject.getType().length() > 0) - type = requestObject.getType().toString ().trim().toLowerCase(); - - if (requestObject != null && requestObject.getDelay() != null && requestObject.getDelay().length() > 0) - delay = requestObject.getDelay().toString ().trim(); - - if (requestObject != null && requestObject.getMethod() != null && requestObject.getMethod().length > 0) - method = requestObject.getMethod(); - - LOGGER.info("processSetDelay :: Type :: " + type + " :: Delay :: " + delay); - - if (type == null || type.trim().length() == 0) - { - response = SBIJsonInfo.getAdminApiErrorJson (lang, "502", ""); - } - else if (!type.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_BIOMTRIC_DEVICE)) - && !type.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_FINGER)) - && !type.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_FACE)) - && !type.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_IRIS))) - { - response = SBIJsonInfo.getAdminApiErrorJson (lang, "502", ""); - } - else if (delay == null || delay.trim().length() == 0) - { - response = SBIJsonInfo.getAdminApiErrorJson (lang, "506", ""); - } - else if (delay != null && Long.parseLong(delay) < 0) - { - response = SBIJsonInfo.getAdminApiErrorJson (lang, "506", ""); - } - else - { - boolean isValidMethod = true; - String corsHeaderMethodsFor = ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.CORS_HEADER_METHODS); - if (method == null || method.length == 0) - { - method = corsHeaderMethodsFor.split(","); - } - if (method != null || method.length > 0) - { - for(int index = 0; index < method.length; index++) - { - if (!corsHeaderMethodsFor.contains(method[index].trim())) - { - response = SBIJsonInfo.getAdminApiErrorJson (lang, "507", ""); - isValidMethod = false; - break; - } - } - } - if (isValidMethod) - { - SBIDeviceHelper deviceHelper = null; - if (mockService.getPurpose().equalsIgnoreCase(SBIConstant.PURPOSE_REGISTRATION)) - { - deviceHelper = (SBIFingerSlapHelper) mockService.getDeviceHelper(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_FINGER) + "_" + ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_FINGER_SLAP)); - if (deviceHelper != null) - { - deviceHelper.resetDelayForMethod(); - deviceHelper.setDelayForMethod((type.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_BIOMTRIC_DEVICE)) || type.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_FINGER))) ? method : null, Long.parseLong (delay)); - } - } - else if (mockService.getPurpose().equalsIgnoreCase(SBIConstant.PURPOSE_AUTH)) - { - deviceHelper = (SBIFingerSingleHelper) mockService.getDeviceHelper(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_FINGER) + "_" + ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_FINGER_SINGLE)); - if (deviceHelper != null) - { - deviceHelper.resetDelayForMethod(); - deviceHelper.setDelayForMethod((type.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_BIOMTRIC_DEVICE)) || type.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_FINGER))) ? method : null, Long.parseLong (delay)); - } - } - - deviceHelper = (SBIFaceHelper) mockService.getDeviceHelper(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_FACE) + "_" + ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_FACE)); - if (deviceHelper != null) - { - deviceHelper.resetDelayForMethod(); - deviceHelper.setDelayForMethod((type.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_BIOMTRIC_DEVICE)) || type.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_FACE))) ? method : null, Long.parseLong (delay)); - } - - if (mockService.getPurpose().equalsIgnoreCase(SBIConstant.PURPOSE_REGISTRATION)) - { - deviceHelper = (SBIIrisDoubleHelper) mockService.getDeviceHelper(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_IRIS) + "_" + ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_IRIS_DOUBLE)); - if (deviceHelper != null) - { - deviceHelper.resetDelayForMethod(); - deviceHelper.setDelayForMethod((type.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_BIOMTRIC_DEVICE)) || type.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_IRIS))) ? method : null, Long.parseLong (delay)); - } - } - else if (mockService.getPurpose().equalsIgnoreCase(SBIConstant.PURPOSE_AUTH)) - { - deviceHelper = (SBIIrisSingleHelper) mockService.getDeviceHelper(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_IRIS) + "_" + ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_IRIS_SINGLE)); - if (deviceHelper != null) - { - deviceHelper.resetDelayForMethod(); - deviceHelper.setDelayForMethod((type.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_BIOMTRIC_DEVICE)) || type.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_IRIS))) ? method : null, Long.parseLong (delay)); - } - } - response = SBIJsonInfo.getAdminApiErrorJson (lang, "0", ""); - } - } - } - catch (Exception ex) - { - response = SBIJsonInfo.getAdminApiErrorJson (lang, "999", ex.getLocalizedMessage() + ""); - LOGGER.error("processSetDelay", ex); - } - finally - { - } - return response; - } - - public String processSetProfileInfo (SBIMockService mockService) - { - String response = null; - String lang = "en"; - try - { - ProfileRequest requestObject = (ProfileRequest) getRequestJson (SBIConstant.MOSIP_ADMIN_API_PROFILE); - if (requestObject != null && requestObject.getProfileId() != null && requestObject.getProfileId().length() > 0) - { - mockService.setProfileId(requestObject.getProfileId()); - response = SBIJsonInfo.getAdminApiErrorJson (lang, "0", ""); - } - else - { - LOGGER.info("processSetProfileInfo :: ProfileId :: Was Not SET Check the JSON request :: " ); - mockService.setProfileId(SBIConstant.PROFILE_DEFAULT); - response = SBIJsonInfo.getAdminApiErrorJson (lang, "0", ""); - } - - LOGGER.info("processSetProfileInfo :: ProfileId :: "+ mockService.getProfileId ()); - } - catch (Exception ex) - { - response = SBIJsonInfo.getAdminApiErrorJson (lang, "999", ex.getLocalizedMessage() + ""); - LOGGER.error("processSetProfileInfo", ex); - } - finally - { - } - return response; - } - - private String processLiveStreamInfo(SBIMockService mockService, Socket socket) { - String response = null; - String lang = "en"; - SBIDeviceHelper deviceHelper = null; - try - { - if (mockService.getPurpose().equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_PURPOSE_AUTH))) - { - return SBIJsonInfo.getStreamErrorJson (lang, "601", ""); - } - - StreamingRequestDetail requestObject = (StreamingRequestDetail) getRequestJson (SBIConstant.MOSIP_STREAM_VERB); - String deviceId = requestObject.getDeviceId(); - int deviceSubId = Integer.parseInt(requestObject.getDeviceSubId()); - boolean isStreamTimeoutSet = false; - long timeout = 0; - if (requestObject.getTimeout() != null && requestObject.getTimeout().trim().length() != 0 && Long.parseLong(requestObject.getTimeout().trim()) > 0) - { - timeout = Long.parseLong(requestObject.getTimeout().trim()); - isStreamTimeoutSet = true; - } - - LOGGER.info("processLiveStreamInfo :: deviceId :: "+ deviceId + " :: deviceSubId ::" + deviceSubId); - - if (deviceId != null && deviceId.trim().length() == 0) - { - return SBIJsonInfo.getStreamErrorJson (lang, "604", ""); - } - - deviceHelper = getDeviceHelperForDeviceId (mockService, deviceId); - if (deviceHelper == null || deviceHelper.getDeviceInfo() == null) - { - return SBIJsonInfo.getStreamErrorJson (lang, "605", ""); - } - if (deviceHelper.getDeviceInfo() != null && !deviceHelper.getDeviceInfo().getPurpose().trim().equalsIgnoreCase(SBIConstant.PURPOSE_REGISTRATION)) - { - return SBIJsonInfo.getStreamErrorJson (lang, "606", ""); - } - if (deviceHelper.getDeviceInfo() != null && deviceHelper.getDeviceInfo().getDeviceStatus().trim().equalsIgnoreCase(SBIConstant.DEVICE_STATUS_NOTREGISTERED)) - { - return SBIJsonInfo.getStreamErrorJson (lang, "100", ""); - } - if (deviceHelper.getDeviceInfo() != null && deviceHelper.getDeviceInfo().getDeviceStatus().trim().equalsIgnoreCase(SBIConstant.DEVICE_STATUS_NOTREADY)) - { - return SBIJsonInfo.getStreamErrorJson (lang, "110", ""); - } - if (deviceHelper.getDeviceInfo() != null && deviceHelper.getDeviceInfo().getDeviceStatus().trim().equalsIgnoreCase(SBIConstant.DEVICE_STATUS_ISBUSY)) - { - return SBIJsonInfo.getStreamErrorJson (lang, "111", ""); - } - if (deviceHelper.getDeviceInfo() != null && !deviceHelper.getDeviceInfo().getDeviceStatus().trim().equalsIgnoreCase(SBIConstant.DEVICE_STATUS_ISREADY)) - { - return SBIJsonInfo.getStreamErrorJson (lang, "607", ""); - } - - deviceHelper.setDeviceStatus(SBIConstant.DEVICE_STATUS_ISBUSY); - deviceHelper.initDevice(); - deviceHelper.setDeviceId(deviceId); - deviceHelper.setDeviceSubId(deviceSubId); - deviceHelper.getCaptureInfo().setLiveStreamStarted(true); - renderMainHeaderData (socket); - int returnCode = -1; - - long startTime = System.currentTimeMillis(); - long endTime = startTime + timeout; - boolean streamTimeOut = false; - - long delay = deviceHelper.getDelayForMethod(SBIConstant.MOSIP_METHOD_STREAM); - while (true) - { - delay(delay); - if (isStreamTimeoutSet && System.currentTimeMillis () > endTime) - { - streamTimeOut = true; - break; - } - - if (deviceHelper.getCaptureInfo () == null) - { - response = "ok"; - break; - } - - try - { - // acquiring the lock - if (semaphore != null) - semaphore.acquire(); - - returnCode = deviceHelper.getLiveStream(); - - if (returnCode < 0) - break; - if (returnCode != 0) - continue; - } - catch (Exception ex) - { } - finally - { - try - { - if (semaphore != null) - semaphore.release(); - } - catch (Exception ex) - { } - } - - if (deviceHelper.getCaptureInfo() != null && deviceHelper.getCaptureInfo().getImage() != null) - { - try - { - renderJPGImageData (socket, deviceHelper.getCaptureInfo().getImage()); - } - catch (Exception ex) - { - LOGGER.error ("processLiveStreamInfo :: Exception ::", ex); - break; - } - } - - Thread.sleep (30); - } - if (deviceHelper.getCaptureInfo() != null) - { - deviceHelper.deInitDevice(); - deviceHelper.setDeviceStatus(SBIConstant.DEVICE_STATUS_ISREADY); - } - if (streamTimeOut) - response = SBIJsonInfo.getStreamErrorJson (lang, "609", ""); - else - response = SBIJsonInfo.getStreamErrorJson (lang, "0", ""); - } - catch (Exception ex) - { - response = SBIJsonInfo.getStreamErrorJson (lang, "610", ex.getLocalizedMessage()); - LOGGER.error("processLiveStreamInfo", ex); - } - finally - { - try - { - if (semaphore != null) - semaphore.release (); - } - catch (Exception ex) - { - } - } - return response; - } - - private String processRCaptureInfo(SBIMockService mockService) { - String response = null; - String lang = "en"; - String specVersion = ""; - SBIDeviceHelper deviceHelper = null; - try - { - if (!mockService.getPurpose().equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_PURPOSE_REGISTRATION))) - { - return SBIJsonInfo.getCaptureErrorJson (specVersion, lang, "709", "", true); - } - - String deviceId = "", deviceType = "", env = ""; - int deviceSubId = 0; - CaptureRequestDto requestObject = (CaptureRequestDto) getRequestJson (SBIConstant.MOSIP_RCAPTURE_VERB); - List mosipBioRequest = null; - // if Null Throw Errors here - if (requestObject != null) - { - mosipBioRequest = requestObject.getBio(); - if (mosipBioRequest != null && mosipBioRequest.size() > 0) - { - deviceId = requestObject.getBio().get(0).getDeviceId(); - deviceSubId = Integer.parseInt(requestObject.getBio().get(0).getDeviceSubId()); - deviceType = requestObject.getBio().get(0).getType(); - env = requestObject.getEnv(); - } - } - - LOGGER.info("processRCaptureInfo :: deviceId :: "+ deviceId + " :: deviceSubId ::" + deviceSubId); - if (env == null || env.trim().length() == 0) - { - return SBIJsonInfo.getCaptureErrorJson (specVersion, lang, "115", "", false); - } - else if (env != null && env.trim().length() > 0 && !(env.trim().equalsIgnoreCase(SBIConstant.ENVIRONMENT_STAGING) || env.trim().equalsIgnoreCase(SBIConstant.ENVIRONMENT_DEVELOPER) || env.trim().equalsIgnoreCase(SBIConstant.ENVIRONMENT_PRE_PRODUCTION) || env.trim().equalsIgnoreCase(SBIConstant.ENVIRONMENT_PRODUCTION))) - { - return SBIJsonInfo.getCaptureErrorJson (specVersion, lang, "115", "", false); - } - - if (deviceId != null && deviceId.trim().length() == 0) - { - //return SBIJsonInfo.getErrorJson (lang, "704", ""); - return SBIJsonInfo.getCaptureErrorJson (specVersion, lang, "704", "", true); - } - if (deviceType == null || deviceType.trim().length() == 0) - { - return SBIJsonInfo.getCaptureErrorJson (specVersion, lang, "114", "", false); - } - - if (deviceType != null && deviceType.trim().length() > 0 && - !( - deviceType.trim().equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_FINGER)) || - deviceType.trim().equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_IRIS)) || - deviceType.trim().equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_FACE))) - ) - { - return SBIJsonInfo.getCaptureErrorJson (specVersion, lang, "114", "", false); - } - - deviceHelper = getDeviceHelperForDeviceId (mockService, deviceId); - if (deviceHelper == null || deviceHelper.getDeviceInfo() == null) - { - return SBIJsonInfo.getCaptureErrorJson (specVersion, lang, "705", "", true); - } - if (deviceType != null && deviceHelper.getDeviceType().equalsIgnoreCase(deviceType.trim()) == false) - { - return SBIJsonInfo.getCaptureErrorJson (specVersion, lang, "112", "", false); - } - - if (deviceHelper.getDeviceInfo() != null && !deviceHelper.getDeviceInfo().getPurpose().trim().equalsIgnoreCase(SBIConstant.PURPOSE_REGISTRATION)) - { - return SBIJsonInfo.getCaptureErrorJson (specVersion, lang, "706", "", true); - } - if (deviceHelper.getCaptureInfo() != null && - (!deviceHelper.getDeviceId().trim().equalsIgnoreCase(deviceId) && - deviceHelper.getDeviceSubId() != deviceSubId)) - { - return SBIJsonInfo.getCaptureErrorJson (specVersion, lang, "702", "", true); - } - - if (deviceHelper.getDeviceInfo() != null && deviceHelper.getDeviceInfo().getDeviceStatus().trim().equalsIgnoreCase(SBIConstant.DEVICE_STATUS_NOTREGISTERED)) - { - return SBIJsonInfo.getCaptureErrorJson (specVersion, lang, "100", "", true); - } - if (deviceHelper.getDeviceInfo() != null && deviceHelper.getDeviceInfo().getDeviceStatus().trim().equalsIgnoreCase(SBIConstant.DEVICE_STATUS_NOTREADY)) - { - return SBIJsonInfo.getCaptureErrorJson (specVersion, lang, "110", "", true); - } - - String bioType = mosipBioRequest.get(0).getType(); - String [] bioException = mosipBioRequest.get(0).getException();// Bio exceptions - String [] bioSubtype = mosipBioRequest.get(0).getBioSubType();// Bio subtype - int count = mosipBioRequest.get(0).getCount(); - int exceptionCount = (bioException != null ? bioException.length : 0); - int bioSubtypeCount = (bioSubtype != null ? bioSubtype.length : 0); - - /* - if (count <= 0) - return SBIJsonInfo.getCaptureErrorJson (specVersion, lang, "116", "", true); - - if (bioException != null && !isValidBioExceptionValues(bioException)) - return SBIJsonInfo.getCaptureErrorJson (specVersion, lang, "117", "", true); - - if (bioSubtype != null && !isValidBioSubtypeValues(bioSubtype)) - return SBIJsonInfo.getCaptureErrorJson (specVersion, lang, "119", "", true); - - if (bioType.equals(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_FACE))) - { - if (count != 1)// Max Face Count = 1 - return SBIJsonInfo.getCaptureErrorJson (specVersion, lang, "116", "", true); - } - else if (bioType.equals(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_IRIS))) - { - //here max count can be 2 for deviceSubId = 3 - if (deviceSubId == SBIConstant.DEVICE_IRIS_SUB_TYPE_ID_LEFT && count != 1) - return SBIJsonInfo.getCaptureErrorJson (specVersion, lang, "116", "", true); - else if (deviceSubId == SBIConstant.DEVICE_IRIS_SUB_TYPE_ID_RIGHT && count != 1) - return SBIJsonInfo.getCaptureErrorJson (specVersion, lang, "116", "", true); - else if (deviceSubId == SBIConstant.DEVICE_IRIS_SUB_TYPE_ID_BOTH) - { - if (exceptionCount == 0 && count != 2) - return SBIJsonInfo.getCaptureErrorJson (specVersion, lang, "116", "", true); - else if (exceptionCount == 1 && count != 1) - return SBIJsonInfo.getCaptureErrorJson (specVersion, lang, "116", "", true); - else if (exceptionCount >= 2) - return SBIJsonInfo.getCaptureErrorJson (specVersion, lang, "116", "", true); - } - } - else if (bioType.equals(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_FINGER))) - { - if (!(finalCount <= 4) && deviceSubId == SBIConstant.DEVICE_FINGER_SLAP_SUB_TYPE_ID_LEFT) - return SBIJsonInfo.getCaptureErrorJson (specVersion, lang, "116", "", true); - else if (!(finalCount <= 4) && deviceSubId == SBIConstant.DEVICE_FINGER_SLAP_SUB_TYPE_ID_RIGHT) - return SBIJsonInfo.getCaptureErrorJson (specVersion, lang, "116", "", true); - else if (!(finalCount <= 2) && deviceSubId == SBIConstant.DEVICE_FINGER_SLAP_SUB_TYPE_ID_THUMB) - return SBIJsonInfo.getCaptureErrorJson (specVersion, lang, "116", "", true); - } - */ - if (deviceHelper.getDeviceInfo() != null && deviceHelper.getDeviceInfo().getDeviceStatus().trim().equalsIgnoreCase(SBIConstant.DEVICE_STATUS_ISREADY)) - { - deviceHelper.initDevice(); - deviceHelper.setDeviceId(deviceId); - deviceHelper.setDeviceSubId(deviceSubId); - deviceHelper.setDeviceStatus(SBIConstant.DEVICE_STATUS_ISBUSY); - } - else if (deviceHelper.getDeviceInfo() != null && deviceHelper.getDeviceInfo().getDeviceStatus().trim().equalsIgnoreCase(SBIConstant.DEVICE_STATUS_ISBUSY)) - { - if (deviceHelper.getCaptureInfo().isCaptureStarted()) - return SBIJsonInfo.getCaptureErrorJson (specVersion, lang, "703", "", true); - } - - int timeout = Integer.parseInt(requestObject.getTimeout()+ ""); - int requestScore = Integer.parseInt(mosipBioRequest.get(0).getRequestedScore() + ""); - - specVersion = requestObject.getSpecVersion(); - int returnCode = -1; - long startTime = System.currentTimeMillis(); - long endTime = startTime + timeout; - boolean captureStarted = false; - boolean captureTimeOut = false; - boolean captureLiveStreamEnded = false; - long delay = deviceHelper.getDelayForMethod(SBIConstant.MOSIP_METHOD_RCAPTURE); - while (true) - { - if (!captureStarted) - { - deviceHelper.setProfileId(mockService.getProfileId()); - - if (bioException != null && !bioType.equals(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_FACE))) - deviceHelper.getCaptureInfo().getBioExceptionInfo().initBioException(bioException); - - deviceHelper.getCaptureInfo().setRequestScore(requestScore); - deviceHelper.getCaptureInfo().setCaptureStarted(true); - captureStarted = true; - } - delay(delay); - try - { - if (System.currentTimeMillis () > endTime) - { - captureTimeOut = true; - break; - } - // acquiring the lock - if (semaphore != null) - semaphore.acquire(); - - if (deviceHelper.getCaptureInfo() == null) - { - captureLiveStreamEnded = true; - break; - } - - returnCode = deviceHelper.getBioCapture(false); - - if (deviceHelper.getCaptureInfo() != null && deviceHelper.getCaptureInfo().isCaptureCompleted()) - { - break; - } - } - catch (Exception ex) - { } - finally - { - try - { - if (semaphore != null) - semaphore.release(); - } - catch (Exception ex) - { } - } - - Thread.sleep (30); - } - - if (captureLiveStreamEnded) - { - response = SBIJsonInfo.getCaptureErrorJson (specVersion, lang, "700", "", true); - } - else if (captureTimeOut) - { - response = SBIJsonInfo.getCaptureErrorJson (specVersion, lang, "701", "", true); - if (deviceHelper.getCaptureInfo() == null) - deviceHelper.getCaptureInfo().setCaptureCompleted(true); - } - else - { - List biometrics = getBioMetricsDtoList (lang, requestObject, deviceHelper, deviceSubId, false); - if (biometrics != null && biometrics.size() > 0) - { - RCaptureResponse captureResponse = new RCaptureResponse (); - captureResponse.setBiometrics(biometrics); - - ObjectMapper mapper = new ObjectMapper (); - SerializationConfig config = mapper.getSerializationConfig(); - config.setSerializationInclusion(Inclusion.NON_NULL); - mapper.setSerializationConfig(config); - - response = mapper.writeValueAsString(captureResponse); - } - else - { - response = SBIJsonInfo.getCaptureErrorJson (specVersion, lang, "708", "", true); - } - - deviceHelper.deInitDevice(); - deviceHelper.setDeviceStatus(SBIConstant.DEVICE_STATUS_ISREADY); - } - - if (deviceHelper.getCaptureInfo() != null) - { - deviceHelper.getCaptureInfo().getBioExceptionInfo().deInitBioException(); - // When Capture is called After LiveStreaming is called - // DeInit is called in Livestream method - if (deviceHelper.getCaptureInfo().isLiveStreamStarted()) - { - deviceHelper.getCaptureInfo().setCaptureStarted(false); - deviceHelper.getCaptureInfo().setCaptureCompleted(true); - } - // DeInit When Capture is called Directly - else - { - deviceHelper.deInitDevice(); - deviceHelper.setDeviceStatus(SBIConstant.DEVICE_STATUS_ISREADY); - } - } - } - catch (Exception ex) - { - response = SBIJsonInfo.getCaptureErrorJson (specVersion, lang, "710", "", true); - LOGGER.error("processRCaptureInfo", ex); - } - finally - { - try - { - if (semaphore != null) - semaphore.release (); - } - catch (Exception ex) - { - } - } - return response; - } - - private String processCaptureInfo(SBIMockService mockService) { - String response = null; - String lang = "en"; - String specVersion = ""; - SBIDeviceHelper deviceHelper = null; - try - { - if (!mockService.getPurpose().equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_PURPOSE_AUTH))) - { - return SBIJsonInfo.getCaptureErrorJson (specVersion, lang, "809", "", false); - } - - String deviceId = "", deviceType = "", env = ""; - int deviceSubId = 0; - CaptureRequestDto requestObject = (CaptureRequestDto) getRequestJson (SBIConstant.MOSIP_RCAPTURE_VERB); - List mosipBioRequest = null; - // if Null Throw Errors here - if (requestObject != null) - { - mosipBioRequest = requestObject.getBio(); - if (mosipBioRequest != null && mosipBioRequest.size() > 0) - { - deviceId = requestObject.getBio().get(0).getDeviceId(); - deviceSubId = Integer.parseInt(requestObject.getBio().get(0).getDeviceSubId()); - deviceType = requestObject.getBio().get(0).getType(); - env = requestObject.getEnv(); - } - } - - LOGGER.info("processCaptureInfo :: deviceId :: "+ deviceId + " :: deviceSubId ::" + deviceSubId); - - if (env == null || env.trim().length() == 0) - { - return SBIJsonInfo.getCaptureErrorJson (specVersion, lang, "115", "", false); - } - else if (env != null && env.trim().length() > 0 && !(env.trim().equalsIgnoreCase(SBIConstant.ENVIRONMENT_STAGING) || env.trim().equalsIgnoreCase(SBIConstant.ENVIRONMENT_DEVELOPER) || env.trim().equalsIgnoreCase(SBIConstant.ENVIRONMENT_PRE_PRODUCTION) || env.trim().equalsIgnoreCase(SBIConstant.ENVIRONMENT_PRODUCTION))) - { - return SBIJsonInfo.getCaptureErrorJson (specVersion, lang, "115", "", false); - } - - if (deviceId == null || deviceId.trim().length() == 0) - { - return SBIJsonInfo.getCaptureErrorJson (specVersion, lang, "804", "", false); - } - if (deviceType == null || deviceType.trim().length() == 0) - { - return SBIJsonInfo.getCaptureErrorJson (specVersion, lang, "114", "", false); - } - - if (deviceType != null && deviceType.trim().length() > 0 && - !( - deviceType.trim().equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_FINGER)) || - deviceType.trim().equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_IRIS)) || - deviceType.trim().equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_FACE))) - ) - { - return SBIJsonInfo.getCaptureErrorJson (specVersion, lang, "114", "", false); - } - - deviceHelper = getDeviceHelperForDeviceId (mockService, deviceId); - if (deviceHelper == null || deviceHelper.getDeviceInfo() == null) - { - return SBIJsonInfo.getCaptureErrorJson (specVersion, lang, "805", "", false); - } - if (deviceType != null && deviceHelper.getDeviceType().equalsIgnoreCase(deviceType.trim()) == false) - { - return SBIJsonInfo.getCaptureErrorJson (specVersion, lang, "112", "", false); - } - - if (deviceHelper.getDeviceInfo() != null && !deviceHelper.getDeviceInfo().getPurpose().trim().equalsIgnoreCase(SBIConstant.PURPOSE_AUTH)) - { - return SBIJsonInfo.getCaptureErrorJson (specVersion, lang, "806", "", false); - } - if (deviceHelper.getDeviceInfo() != null && deviceHelper.getDeviceInfo().getDeviceStatus().trim().equalsIgnoreCase(SBIConstant.DEVICE_STATUS_NOTREGISTERED)) - { - return SBIJsonInfo.getCaptureErrorJson (specVersion, lang, "100", "", false); - } - if (deviceHelper.getDeviceInfo() != null && deviceHelper.getDeviceInfo().getDeviceStatus().trim().equalsIgnoreCase(SBIConstant.DEVICE_STATUS_NOTREADY)) - { - return SBIJsonInfo.getCaptureErrorJson (specVersion, lang, "110", "", false); - } - if (deviceHelper.getDeviceInfo() != null && deviceHelper.getDeviceInfo().getDeviceStatus().trim().equalsIgnoreCase(SBIConstant.DEVICE_STATUS_ISBUSY)) - { - return SBIJsonInfo.getCaptureErrorJson (specVersion, lang, "111", "", false); - } - - String bioType = mosipBioRequest.get(0).getType(); - String [] bioSubType = mosipBioRequest.get(0).getBioSubType();// Bio Subtype - int timeout = Integer.parseInt(requestObject.getTimeout()+ ""); - int requestScore = Integer.parseInt(mosipBioRequest.get(0).getRequestedScore() + ""); - int bioCount = Integer.parseInt(mosipBioRequest.get(0).getCount() + ""); - - if (deviceType != null) - { - if ((bioCount < 0 || bioCount > 10) && deviceType.trim().equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_FINGER))) - return SBIJsonInfo.getCaptureErrorJson (specVersion, lang, "113", "", false); - if ((bioCount < 0 || bioCount > 2) && deviceType.trim().equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_IRIS))) - return SBIJsonInfo.getCaptureErrorJson (specVersion, lang, "113", "", false); - if ((bioCount < 0 || bioCount > 1) && deviceType.trim().equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_FACE))) - return SBIJsonInfo.getCaptureErrorJson (specVersion, lang, "113", "", false); - } - - if (deviceHelper.getDeviceInfo() != null && deviceHelper.getDeviceInfo().getDeviceStatus().trim().equalsIgnoreCase(SBIConstant.DEVICE_STATUS_ISREADY)) - { - deviceHelper.initDevice(); - deviceHelper.setDeviceId(deviceId); - deviceHelper.setDeviceSubId(deviceSubId); - deviceHelper.setDeviceStatus(SBIConstant.DEVICE_STATUS_ISBUSY); - } - else if (deviceHelper.getDeviceInfo() != null && deviceHelper.getDeviceInfo().getDeviceStatus().trim().equalsIgnoreCase(SBIConstant.DEVICE_STATUS_ISBUSY)) - { - if (deviceHelper.getCaptureInfo().isCaptureStarted()) - return SBIJsonInfo.getCaptureErrorJson (specVersion, lang, "803", "", false); - } - - specVersion = requestObject.getSpecVersion(); - int returnCode = -1; - long startTime = System.currentTimeMillis(); - long endTime = startTime + timeout; - boolean captureStarted = false; - boolean captureTimeOut = false; - boolean captureLiveStreamEnded = false; - long delay = deviceHelper.getDelayForMethod(SBIConstant.MOSIP_METHOD_CAPTURE); - - while (true) - { - if (!captureStarted) - { - deviceHelper.setProfileId(mockService.getProfileId()); - - deviceHelper.getCaptureInfo().setBioCount(bioCount); - deviceHelper.getCaptureInfo().setBioSubType(bioSubType); - deviceHelper.getCaptureInfo().setRequestScore(requestScore); - deviceHelper.getCaptureInfo().setCaptureStarted(true); - captureStarted = true; - } - delay(delay); - try - { - if (System.currentTimeMillis () > endTime) - { - captureTimeOut = true; - break; - } - // acquiring the lock - if (semaphore != null) - semaphore.acquire(); - - if (deviceHelper.getCaptureInfo() == null) - { - captureLiveStreamEnded = true; - break; - } - - returnCode = deviceHelper.getBioCapture(true); - - if (deviceHelper.getCaptureInfo() != null && deviceHelper.getCaptureInfo().isCaptureCompleted()) - { - break; - } - } - catch (Exception ex) - { } - finally - { - try - { - if (semaphore != null) - semaphore.release(); - } - catch (Exception ex) - { } - } - - Thread.sleep (30); - } - - if (captureLiveStreamEnded) - { - response = SBIJsonInfo.getCaptureErrorJson (specVersion, lang, "800", "", false); - } - else if (captureTimeOut) - { - response = SBIJsonInfo.getCaptureErrorJson (specVersion, lang, "801", "", false); - if (deviceHelper.getCaptureInfo() == null) - deviceHelper.getCaptureInfo().setCaptureCompleted(true); - } - else - { - List biometrics = getBioMetricsDtoList (lang, requestObject, deviceHelper, deviceSubId, true); - if (biometrics != null && biometrics.size() > 0) - { - RCaptureResponse captureResponse = new RCaptureResponse (); - captureResponse.setBiometrics(biometrics); - - ObjectMapper mapper = new ObjectMapper (); - SerializationConfig config = mapper.getSerializationConfig(); - config.setSerializationInclusion(Inclusion.NON_NULL); - mapper.setSerializationConfig(config); - - response = mapper.writeValueAsString(captureResponse); - } - else - { - response = SBIJsonInfo.getCaptureErrorJson (specVersion, lang, "708", "", false); - } - - deviceHelper.deInitDevice(); - deviceHelper.setDeviceStatus(SBIConstant.DEVICE_STATUS_ISREADY); - } - - if (deviceHelper.getCaptureInfo() != null) - { - deviceHelper.getCaptureInfo().getBioExceptionInfo().deInitBioException(); - // When Capture is called After LiveStreaming is called - // DeInit is called in Livestream method - if (deviceHelper.getCaptureInfo().isLiveStreamStarted()) - { - deviceHelper.getCaptureInfo().setCaptureStarted(false); - deviceHelper.getCaptureInfo().setCaptureCompleted(true); - } - // DeInit When Capture is called Directly - else - { - deviceHelper.deInitDevice(); - deviceHelper.setDeviceStatus(SBIConstant.DEVICE_STATUS_ISREADY); - } - } - } - catch (Exception ex) - { - response = SBIJsonInfo.getCaptureErrorJson (specVersion, lang, "810", "", false); - LOGGER.error("processCaptureInfo", ex); - } - finally - { - try - { - if (semaphore != null) - semaphore.release (); - } - catch (Exception ex) - { - } - } - return response; - } - - private List getBioMetricsDtoList (String lang, CaptureRequestDto requestObject, SBIDeviceHelper deviceHelper, int deviceSubId, boolean isForAuthenication) throws JsonGenerationException, JsonMappingException, IOException, NoSuchAlgorithmException, DecoderException - { - List biometrics = new ArrayList (); - String specVersion = requestObject.getSpecVersion(); - String transactionId = requestObject.getTransactionId(); - int captureScore = deviceHelper.getQualityScore(); // SET MANUALLY - int requestScore = requestObject.getBio().get(0).getRequestedScore(); - int bioCount = requestObject.getBio().get(0).getCount(); - String bioType = requestObject.getBio().get(0).getType(); - String [] bioExceptions = requestObject.getBio().get(0).getException();// Bio exceptions - String [] bioSubType = requestObject.getBio().get(0).getBioSubType();// Bio SubTypes - - String previousHash = requestObject.getBio().get(0).getPreviousHash(); - if (!isForAuthenication) - { - // For Finger Slap - if (deviceHelper.getDigitalId().getType().equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue (SBIConstant.MOSIP_BIOMETRIC_TYPE_FINGER)) && - deviceHelper.getDigitalId().getDeviceSubType().equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue (SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_FINGER_SLAP))) - { - SBIFingerSlapCaptureInfo captureInfo = (SBIFingerSlapCaptureInfo)deviceHelper.getCaptureInfo(); - SBIFingerSlapBioExceptionInfo bioExceptionInfo = (SBIFingerSlapBioExceptionInfo)deviceHelper.getCaptureInfo().getBioExceptionInfo(); - if (deviceSubId == SBIConstant.DEVICE_FINGER_SLAP_SUB_TYPE_ID_LEFT) - { - if (bioExceptionInfo.getChkMissingLeftIndex() == SBICheckState.Unchecked) - { - if (captureInfo.getBioValueLI() != null && captureInfo.getBioValueLI().length() > 0) - { - BioMetricsDto bioDto = getBiometricData (transactionId, requestObject, deviceHelper, previousHash, bioType, SBIConstant.BIO_NAME_LEFT_INDEX, - captureInfo.getBioValueLI(), captureInfo.getCaptureScoreLI(), requestScore, "", "0", isForAuthenication); - if (bioDto != null) - { - biometrics.add(bioDto); - previousHash = bioDto.getHash(); - } - } - else - { - BioMetricsDto bioDto = getBiometricErrorData (lang, specVersion, isForAuthenication); - if (bioDto != null) - { - biometrics.add (bioDto); - previousHash = bioDto.getHash(); - } - } - } - if (bioExceptionInfo.getChkMissingLeftMiddle() == SBICheckState.Unchecked) - { - if (captureInfo.getBioValueLM() != null && captureInfo.getBioValueLM().length() > 0) - { - BioMetricsDto bioDto = getBiometricData (transactionId, requestObject, deviceHelper, previousHash, bioType, SBIConstant.BIO_NAME_LEFT_MIDDLE, - captureInfo.getBioValueLM(), captureInfo.getCaptureScoreLM(), requestScore, "", "0", isForAuthenication); - if (bioDto != null) - { - biometrics.add(bioDto); - previousHash = bioDto.getHash(); - } - } - else - { - BioMetricsDto bioDto = getBiometricErrorData (lang, specVersion, isForAuthenication); - if (bioDto != null) - { - biometrics.add (bioDto); - previousHash = bioDto.getHash(); - } - } - } - if (bioExceptionInfo.getChkMissingLeftRing() == SBICheckState.Unchecked) - { - if (captureInfo.getBioValueLR() != null && captureInfo.getBioValueLR().length() > 0) - { - BioMetricsDto bioDto = getBiometricData (transactionId, requestObject, deviceHelper, previousHash, bioType, SBIConstant.BIO_NAME_LEFT_RING, - captureInfo.getBioValueLR(), captureInfo.getCaptureScoreLR(), requestScore, "", "0", isForAuthenication); - if (bioDto != null) - { - biometrics.add(bioDto); - previousHash = bioDto.getHash(); - } - } - else - { - BioMetricsDto bioDto = getBiometricErrorData (lang, specVersion, isForAuthenication); - if (bioDto != null) - { - biometrics.add (bioDto); - previousHash = bioDto.getHash(); - } - } - } - if (bioExceptionInfo.getChkMissingLeftLittle() == SBICheckState.Unchecked) - { - if (captureInfo.getBioValueLL() != null && captureInfo.getBioValueLL().length() > 0) - { - BioMetricsDto bioDto = getBiometricData (transactionId, requestObject, deviceHelper, previousHash, bioType, SBIConstant.BIO_NAME_LEFT_LITTLE, - captureInfo.getBioValueLL(), captureInfo.getCaptureScoreLL(), requestScore, "", "0", isForAuthenication); - if (bioDto != null) - { - biometrics.add(bioDto); - previousHash = bioDto.getHash(); - } - } - else - { - BioMetricsDto bioDto = getBiometricErrorData (lang, specVersion, isForAuthenication); - if (bioDto != null) - { - biometrics.add (bioDto); - previousHash = bioDto.getHash(); - } - } - } - } - else if (deviceSubId == SBIConstant.DEVICE_FINGER_SLAP_SUB_TYPE_ID_RIGHT) - { - if (bioExceptionInfo.getChkMissingRightIndex() == SBICheckState.Unchecked) - { - if (captureInfo.getBioValueRI() != null && captureInfo.getBioValueRI().length() > 0) - { - BioMetricsDto bioDto = getBiometricData (transactionId, requestObject, deviceHelper, previousHash, bioType, SBIConstant.BIO_NAME_RIGHT_INDEX, - captureInfo.getBioValueRI(), captureInfo.getCaptureScoreRI(), requestScore, "", "0", isForAuthenication); - if (bioDto != null) - { - biometrics.add(bioDto); - previousHash = bioDto.getHash(); - } - } - else - { - BioMetricsDto bioDto = getBiometricErrorData (lang, specVersion, isForAuthenication); - if (bioDto != null) - { - biometrics.add (bioDto); - previousHash = bioDto.getHash(); - } - } - } - if (bioExceptionInfo.getChkMissingRightMiddle() == SBICheckState.Unchecked) - { - if (captureInfo.getBioValueRM() != null && captureInfo.getBioValueRM().length() > 0) - { - BioMetricsDto bioDto = getBiometricData (transactionId, requestObject, deviceHelper, previousHash, bioType, SBIConstant.BIO_NAME_RIGHT_MIDDLE, - captureInfo.getBioValueRM(), captureInfo.getCaptureScoreRM(), requestScore, "", "0", isForAuthenication); - if (bioDto != null) - { - biometrics.add(bioDto); - previousHash = bioDto.getHash(); - } - } - else - { - BioMetricsDto bioDto = getBiometricErrorData (lang, specVersion, isForAuthenication); - if (bioDto != null) - { - biometrics.add (bioDto); - previousHash = bioDto.getHash(); - } - } - } - if (bioExceptionInfo.getChkMissingRightRing() == SBICheckState.Unchecked) - { - if (captureInfo.getBioValueRR() != null && captureInfo.getBioValueRR().length() > 0) - { - BioMetricsDto bioDto = getBiometricData (transactionId, requestObject, deviceHelper, previousHash, bioType, SBIConstant.BIO_NAME_RIGHT_RING, - captureInfo.getBioValueRR(), captureInfo.getCaptureScoreRR(), requestScore, "", "0", isForAuthenication); - if (bioDto != null) - { - biometrics.add(bioDto); - previousHash = bioDto.getHash(); - } - } - else - { - BioMetricsDto bioDto = getBiometricErrorData (lang, specVersion, isForAuthenication); - if (bioDto != null) - { - biometrics.add (bioDto); - previousHash = bioDto.getHash(); - } - } - } - if (bioExceptionInfo.getChkMissingRightLittle() == SBICheckState.Unchecked) - { - if (captureInfo.getBioValueRL() != null && captureInfo.getBioValueRL().length() > 0) - { - BioMetricsDto bioDto = getBiometricData (transactionId, requestObject, deviceHelper, previousHash, bioType, SBIConstant.BIO_NAME_RIGHT_LITTLE, - captureInfo.getBioValueRL(), captureInfo.getCaptureScoreRL(), requestScore, "", "0", isForAuthenication); - if (bioDto != null) - { - biometrics.add(bioDto); - previousHash = bioDto.getHash(); - } - } - else - { - BioMetricsDto bioDto = getBiometricErrorData (lang, specVersion, isForAuthenication); - if (bioDto != null) - { - biometrics.add (bioDto); - previousHash = bioDto.getHash(); - } - } - } - } - else if (deviceSubId == SBIConstant.DEVICE_FINGER_SLAP_SUB_TYPE_ID_THUMB) - { - if (bioExceptionInfo.getChkMissingLeftThumb() == SBICheckState.Unchecked) - { - if (captureInfo.getBioValueLT() != null && captureInfo.getBioValueLT().length() > 0) - { - BioMetricsDto bioDto = getBiometricData (transactionId, requestObject, deviceHelper, previousHash, bioType, SBIConstant.BIO_NAME_LEFT_THUMB, - captureInfo.getBioValueLT(), captureInfo.getCaptureScoreLT(), requestScore, "", "0", isForAuthenication); - if (bioDto != null) - { - biometrics.add(bioDto); - previousHash = bioDto.getHash(); - } - } - else - { - BioMetricsDto bioDto = getBiometricErrorData (lang, specVersion, isForAuthenication); - if (bioDto != null) - { - biometrics.add (bioDto); - previousHash = bioDto.getHash(); - } - } - } - if (bioExceptionInfo.getChkMissingRightThumb() == SBICheckState.Unchecked) - { - if (captureInfo.getBioValueRT() != null && captureInfo.getBioValueRT().length() > 0) - { - BioMetricsDto bioDto = getBiometricData (transactionId, requestObject, deviceHelper, previousHash, bioType, SBIConstant.BIO_NAME_RIGHT_THUMB, - captureInfo.getBioValueRT(), captureInfo.getCaptureScoreRT(), requestScore, "", "0", isForAuthenication); - if (bioDto != null) - { - biometrics.add(bioDto); - previousHash = bioDto.getHash(); - } - } - else - { - BioMetricsDto bioDto = getBiometricErrorData (lang, specVersion, isForAuthenication); - if (bioDto != null) - { - biometrics.add (bioDto); - previousHash = bioDto.getHash(); - } - } - } - } - } - // For IRIS DOUBLE - else if (deviceHelper.getDigitalId().getType().equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue (SBIConstant.MOSIP_BIOMETRIC_TYPE_IRIS)) && - deviceHelper.getDigitalId().getDeviceSubType().equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue (SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_IRIS_DOUBLE))) - { - SBIIrisDoubleCaptureInfo captureInfo = (SBIIrisDoubleCaptureInfo)deviceHelper.getCaptureInfo(); - SBIIrisDoubleBioExceptionInfo bioExceptionInfo = (SBIIrisDoubleBioExceptionInfo)deviceHelper.getCaptureInfo().getBioExceptionInfo(); - - if (deviceSubId == SBIConstant.DEVICE_IRIS_DOUBLE_SUB_TYPE_ID_LEFT) - { - if (bioExceptionInfo.getChkMissingLeftIris() == SBICheckState.Unchecked) - { - if (captureInfo.getBioValueLI() != null && captureInfo.getBioValueLI().length() > 0) - { - BioMetricsDto bioDto = getBiometricData (transactionId, requestObject, deviceHelper, previousHash, bioType, SBIConstant.BIO_NAME_LEFT_IRIS, - captureInfo.getBioValueLI(), captureInfo.getCaptureScoreLI(), requestScore, "", "0", isForAuthenication); - if (bioDto != null) - { - biometrics.add(bioDto); - previousHash = bioDto.getHash(); - } - } - else - { - BioMetricsDto bioDto = getBiometricErrorData (lang, specVersion, isForAuthenication); - if (bioDto != null) - { - biometrics.add (bioDto); - previousHash = bioDto.getHash(); - } - } - } - } - else if (deviceSubId == SBIConstant.DEVICE_IRIS_DOUBLE_SUB_TYPE_ID_RIGHT) - { - if (bioExceptionInfo.getChkMissingRightIris() == SBICheckState.Unchecked) - { - if (captureInfo.getBioValueRI() != null && captureInfo.getBioValueRI().length() > 0) - { - BioMetricsDto bioDto = getBiometricData (transactionId, requestObject, deviceHelper, previousHash, bioType, SBIConstant.BIO_NAME_RIGHT_IRIS, - captureInfo.getBioValueRI(), captureInfo.getCaptureScoreRI(), requestScore, "", "0", isForAuthenication); - if (bioDto != null) - { - biometrics.add(bioDto); - previousHash = bioDto.getHash(); - } - } - else - { - BioMetricsDto bioDto = getBiometricErrorData (lang, specVersion, isForAuthenication); - if (bioDto != null) - { - biometrics.add (bioDto); - previousHash = bioDto.getHash(); - } - } - } - } - else if (deviceSubId == SBIConstant.DEVICE_IRIS_DOUBLE_SUB_TYPE_ID_BOTH) - { - if (bioExceptionInfo.getChkMissingLeftIris() == SBICheckState.Unchecked) - { - if (captureInfo.getBioValueLI() != null && captureInfo.getBioValueLI().length() > 0) - { - BioMetricsDto bioDto = getBiometricData (transactionId, requestObject, deviceHelper, previousHash, bioType, SBIConstant.BIO_NAME_LEFT_IRIS, - captureInfo.getBioValueLI(), captureInfo.getCaptureScoreLI(), requestScore, "", "0", isForAuthenication); - if (bioDto != null) - { - biometrics.add(bioDto); - previousHash = bioDto.getHash(); - } - } - else - { - BioMetricsDto bioDto = getBiometricErrorData (lang, specVersion, isForAuthenication); - if (bioDto != null) - { - biometrics.add (bioDto); - previousHash = bioDto.getHash(); - } - } - } - if (bioExceptionInfo.getChkMissingRightIris() == SBICheckState.Unchecked) - { - if (captureInfo.getBioValueRI() != null && captureInfo.getBioValueRI().length() > 0) - { - BioMetricsDto bioDto = getBiometricData (transactionId, requestObject, deviceHelper, previousHash, bioType, SBIConstant.BIO_NAME_RIGHT_IRIS, - captureInfo.getBioValueRI(), captureInfo.getCaptureScoreRI(), requestScore, "", "0", isForAuthenication); - if (bioDto != null) - { - biometrics.add(bioDto); - previousHash = bioDto.getHash(); - } - } - else - { - BioMetricsDto bioDto = getBiometricErrorData (lang, specVersion, isForAuthenication); - if (bioDto != null) - { - biometrics.add (bioDto); - previousHash = bioDto.getHash(); - } - } - } - } - } - // For Face - else if (deviceHelper.getDigitalId().getType().equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue (SBIConstant.MOSIP_BIOMETRIC_TYPE_FACE)) && - deviceHelper.getDigitalId().getDeviceSubType().equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue (SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_FACE))) - { - SBIFaceCaptureInfo captureInfo = (SBIFaceCaptureInfo)deviceHelper.getCaptureInfo(); - - boolean isExceptionPhoto = false; - if (bioExceptions != null && bioExceptions.length > 0) - isExceptionPhoto = true; - - if (!isExceptionPhoto) - { - if (captureInfo.getBioValueFace() != null && captureInfo.getBioValueFace().length() > 0) - { - BioMetricsDto bioDto = getBiometricData (transactionId, requestObject, deviceHelper, previousHash, bioType, null, - captureInfo.getBioValueFace(), captureInfo.getCaptureScoreFace(), requestScore, "", "0", isForAuthenication); - if (bioDto != null) - { - biometrics.add(bioDto); - previousHash = bioDto.getHash(); - } - } - else - { - BioMetricsDto bioDto = getBiometricErrorData (lang, specVersion, isForAuthenication); - if (bioDto != null) - { - biometrics.add (bioDto); - previousHash = bioDto.getHash(); - } - } - } - else - { - if (captureInfo.getBioValueExceptionPhoto() != null && captureInfo.getBioValueExceptionPhoto().length() > 0) - { - BioMetricsDto bioDto = getBiometricData (transactionId, requestObject, deviceHelper, previousHash, bioType, null, - captureInfo.getBioValueExceptionPhoto(), captureInfo.getCaptureScoreFace(), requestScore, "", "0", isForAuthenication); - if (bioDto != null) - { - biometrics.add(bioDto); - previousHash = bioDto.getHash(); - } - } - else - { - BioMetricsDto bioDto = getBiometricErrorData (lang, specVersion, isForAuthenication); - if (bioDto != null) - { - biometrics.add (bioDto); - previousHash = bioDto.getHash(); - } - } - } - } - } - else if (isForAuthenication) - { - SBIBioSubTypeInfo bioSubTypeInfo = new SBIBioSubTypeInfo (); - bioSubTypeInfo.initBioSubType(bioSubType); - - // For Finger Single - if (deviceHelper.getDigitalId().getType().equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue (SBIConstant.MOSIP_BIOMETRIC_TYPE_FINGER)) && - deviceHelper.getDigitalId().getDeviceSubType().equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue (SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_FINGER_SINGLE))) - { - SBIFingerSingleCaptureInfo captureInfo = (SBIFingerSingleCaptureInfo)deviceHelper.getCaptureInfo(); - if (deviceSubId == SBIConstant.DEVICE_FINGER_SINGLE_SUB_TYPE_ID) - { - HashMap biometricData = captureInfo.getBiometricData(); - if (biometricData != null && biometricData.size() > 0) - { - int bioCounter = 0; - for (Map.Entry pair: biometricData.entrySet()) { - if (bioCounter > bioCount) - break; - - if ((bioCounter < bioCount) && (bioSubTypeInfo.getChkUnknown() == SBICheckState.Checked || bioSubTypeInfo.getChkLeftIndex() == SBICheckState.Checked) - && pair.getKey().equalsIgnoreCase(SBIConstant.BIO_NAME_LEFT_INDEX)) - { - String bioData = pair.getValue(); - if (bioData != null && bioData.length() > 0) - { - BioMetricsDto bioDto = getBiometricData (transactionId, requestObject, deviceHelper, previousHash, bioType, (bioSubTypeInfo.getChkLeftIndex() == SBICheckState.Checked ? SBIConstant.BIO_NAME_LEFT_INDEX : SBIConstant.BIO_NAME_UNKNOWN), - bioData, captureInfo.getCaptureScoreLI(), requestScore, "", "0", isForAuthenication); - if (bioDto != null) - { - biometrics.add(bioDto); - previousHash = bioDto.getHash(); - } - } - else - { - BioMetricsDto bioDto = getBiometricErrorData (lang, specVersion, isForAuthenication); - if (bioDto != null) - { - biometrics.add (bioDto); - previousHash = bioDto.getHash(); - } - } - bioCounter ++; - } - - if ((bioCounter < bioCount) && (bioSubTypeInfo.getChkUnknown() == SBICheckState.Checked || bioSubTypeInfo.getChkLeftMiddle() == SBICheckState.Checked) - && pair.getKey().equalsIgnoreCase(SBIConstant.BIO_NAME_LEFT_MIDDLE)) - { - String bioData = pair.getValue(); - if (bioData != null && bioData.length() > 0) - { - BioMetricsDto bioDto = getBiometricData (transactionId, requestObject, deviceHelper, previousHash, bioType, (bioSubTypeInfo.getChkLeftIndex() == SBICheckState.Checked ? SBIConstant.BIO_NAME_LEFT_MIDDLE : SBIConstant.BIO_NAME_UNKNOWN), - bioData, captureInfo.getCaptureScoreLM(), requestScore, "", "0", isForAuthenication); - if (bioDto != null) - { - biometrics.add(bioDto); - previousHash = bioDto.getHash(); - } - } - else - { - BioMetricsDto bioDto = getBiometricErrorData (lang, specVersion, isForAuthenication); - if (bioDto != null) - { - biometrics.add (bioDto); - previousHash = bioDto.getHash(); - } - } - bioCounter ++; - } - - if ((bioCounter < bioCount) && (bioSubTypeInfo.getChkUnknown() == SBICheckState.Checked || bioSubTypeInfo.getChkLeftRing() == SBICheckState.Checked) - && pair.getKey().equalsIgnoreCase(SBIConstant.BIO_NAME_LEFT_RING)) - { - String bioData = pair.getValue(); - if (bioData != null && bioData.length() > 0) - { - BioMetricsDto bioDto = getBiometricData (transactionId, requestObject, deviceHelper, previousHash, bioType, (bioSubTypeInfo.getChkLeftRing() == SBICheckState.Checked ? SBIConstant.BIO_NAME_LEFT_RING : SBIConstant.BIO_NAME_UNKNOWN), - bioData, captureInfo.getCaptureScoreLR(), requestScore, "", "0", isForAuthenication); - if (bioDto != null) - { - biometrics.add(bioDto); - previousHash = bioDto.getHash(); - } - } - else - { - BioMetricsDto bioDto = getBiometricErrorData (lang, specVersion, isForAuthenication); - if (bioDto != null) - { - biometrics.add (bioDto); - previousHash = bioDto.getHash(); - } - } - bioCounter ++; - } - - if ((bioCounter < bioCount) && (bioSubTypeInfo.getChkUnknown() == SBICheckState.Checked || bioSubTypeInfo.getChkLeftLittle() == SBICheckState.Checked) - && pair.getKey().equalsIgnoreCase(SBIConstant.BIO_NAME_LEFT_LITTLE)) - { - String bioData = pair.getValue(); - if (bioData != null && bioData.length() > 0) - { - BioMetricsDto bioDto = getBiometricData (transactionId, requestObject, deviceHelper, previousHash, bioType, (bioSubTypeInfo.getChkLeftLittle() == SBICheckState.Checked ? SBIConstant.BIO_NAME_LEFT_LITTLE: SBIConstant.BIO_NAME_UNKNOWN), - bioData, captureInfo.getCaptureScoreLL(), requestScore, "", "0", isForAuthenication); - if (bioDto != null) - { - biometrics.add(bioDto); - previousHash = bioDto.getHash(); - } - } - else - { - BioMetricsDto bioDto = getBiometricErrorData (lang, specVersion, isForAuthenication); - if (bioDto != null) - { - biometrics.add (bioDto); - previousHash = bioDto.getHash(); - bioCounter ++; - } - } - bioCounter ++; - } - - if ((bioCounter < bioCount) && (bioSubTypeInfo.getChkUnknown() == SBICheckState.Checked || bioSubTypeInfo.getChkRightIndex() == SBICheckState.Checked) - && pair.getKey().equalsIgnoreCase(SBIConstant.BIO_NAME_RIGHT_INDEX)) - { - String bioData = pair.getValue(); - if (bioData != null && bioData.length() > 0) - { - BioMetricsDto bioDto = getBiometricData (transactionId, requestObject, deviceHelper, previousHash, bioType, (bioSubTypeInfo.getChkRightIndex() == SBICheckState.Checked ? SBIConstant.BIO_NAME_RIGHT_INDEX : SBIConstant.BIO_NAME_UNKNOWN), - bioData, captureInfo.getCaptureScoreRI(), requestScore, "", "0", isForAuthenication); - if (bioDto != null) - { - biometrics.add(bioDto); - previousHash = bioDto.getHash(); - } - } - else - { - BioMetricsDto bioDto = getBiometricErrorData (lang, specVersion, isForAuthenication); - if (bioDto != null) - { - biometrics.add (bioDto); - previousHash = bioDto.getHash(); - } - } - bioCounter ++; - } - - if ((bioCounter < bioCount) && (bioSubTypeInfo.getChkUnknown() == SBICheckState.Checked || bioSubTypeInfo.getChkRightMiddle() == SBICheckState.Checked) - && pair.getKey().equalsIgnoreCase(SBIConstant.BIO_NAME_RIGHT_MIDDLE)) - { - String bioData = pair.getValue(); - if (bioData != null && bioData.length() > 0) - { - BioMetricsDto bioDto = getBiometricData (transactionId, requestObject, deviceHelper, previousHash, bioType, (bioSubTypeInfo.getChkRightIndex() == SBICheckState.Checked ? SBIConstant.BIO_NAME_RIGHT_MIDDLE : SBIConstant.BIO_NAME_UNKNOWN), - bioData, captureInfo.getCaptureScoreRM(), requestScore, "", "0", isForAuthenication); - if (bioDto != null) - { - biometrics.add(bioDto); - previousHash = bioDto.getHash(); - } - } - else - { - BioMetricsDto bioDto = getBiometricErrorData (lang, specVersion, isForAuthenication); - if (bioDto != null) - { - biometrics.add (bioDto); - previousHash = bioDto.getHash(); - } - } - bioCounter ++; - } - - if ((bioCounter < bioCount) && (bioSubTypeInfo.getChkUnknown() == SBICheckState.Checked || bioSubTypeInfo.getChkRightRing() == SBICheckState.Checked) - && pair.getKey().equalsIgnoreCase(SBIConstant.BIO_NAME_RIGHT_RING)) - { - String bioData = pair.getValue(); - if (bioData != null && bioData.length() > 0) - { - BioMetricsDto bioDto = getBiometricData (transactionId, requestObject, deviceHelper, previousHash, bioType, (bioSubTypeInfo.getChkRightRing() == SBICheckState.Checked ? SBIConstant.BIO_NAME_RIGHT_RING : SBIConstant.BIO_NAME_UNKNOWN), - bioData, captureInfo.getCaptureScoreRR(), requestScore, "", "0", isForAuthenication); - if (bioDto != null) - { - biometrics.add(bioDto); - previousHash = bioDto.getHash(); - } - } - else - { - BioMetricsDto bioDto = getBiometricErrorData (lang, specVersion, isForAuthenication); - if (bioDto != null) - { - biometrics.add (bioDto); - previousHash = bioDto.getHash(); - } - } - bioCounter ++; - } - - if ((bioCounter < bioCount) && (bioSubTypeInfo.getChkUnknown() == SBICheckState.Checked || bioSubTypeInfo.getChkRightLittle() == SBICheckState.Checked) - && pair.getKey().equalsIgnoreCase(SBIConstant.BIO_NAME_RIGHT_LITTLE)) - { - String bioData = pair.getValue(); - if (bioData != null && bioData.length() > 0) - { - BioMetricsDto bioDto = getBiometricData (transactionId, requestObject, deviceHelper, previousHash, bioType, (bioSubTypeInfo.getChkRightLittle() == SBICheckState.Checked ? SBIConstant.BIO_NAME_RIGHT_LITTLE: SBIConstant.BIO_NAME_UNKNOWN), - bioData, captureInfo.getCaptureScoreRL(), requestScore, "", "0", isForAuthenication); - if (bioDto != null) - { - biometrics.add(bioDto); - previousHash = bioDto.getHash(); - } - } - else - { - BioMetricsDto bioDto = getBiometricErrorData (lang, specVersion, isForAuthenication); - if (bioDto != null) - { - biometrics.add (bioDto); - previousHash = bioDto.getHash(); - } - } - bioCounter ++; - } - - if ((bioCounter < bioCount) && (bioSubTypeInfo.getChkUnknown() == SBICheckState.Checked || bioSubTypeInfo.getChkLeftThumb() == SBICheckState.Checked) - && pair.getKey().equalsIgnoreCase(SBIConstant.BIO_NAME_LEFT_THUMB)) - { - String bioData = pair.getValue(); - if (bioData != null && bioData.length() > 0) - { - BioMetricsDto bioDto = getBiometricData (transactionId, requestObject, deviceHelper, previousHash, bioType, (bioSubTypeInfo.getChkLeftThumb() == SBICheckState.Checked ? SBIConstant.BIO_NAME_LEFT_THUMB : SBIConstant.BIO_NAME_UNKNOWN), - bioData, captureInfo.getCaptureScoreLT(), requestScore, "", "0", isForAuthenication); - if (bioDto != null) - { - biometrics.add(bioDto); - previousHash = bioDto.getHash(); - } - } - else - { - BioMetricsDto bioDto = getBiometricErrorData (lang, specVersion, isForAuthenication); - if (bioDto != null) - { - biometrics.add (bioDto); - previousHash = bioDto.getHash(); - } - } - bioCounter ++; - } - - if ((bioCounter < bioCount) && (bioSubTypeInfo.getChkUnknown() == SBICheckState.Checked || bioSubTypeInfo.getChkRightThumb() == SBICheckState.Checked) - && pair.getKey().equalsIgnoreCase(SBIConstant.BIO_NAME_RIGHT_THUMB)) - { - String bioData = pair.getValue(); - if (bioData != null && bioData.length() > 0) - { - BioMetricsDto bioDto = getBiometricData (transactionId, requestObject, deviceHelper, previousHash, bioType, (bioSubTypeInfo.getChkRightThumb() == SBICheckState.Checked ? SBIConstant.BIO_NAME_RIGHT_THUMB : SBIConstant.BIO_NAME_UNKNOWN), - bioData, captureInfo.getCaptureScoreRT(), requestScore, "", "0", isForAuthenication); - if (bioDto != null) - { - biometrics.add(bioDto); - previousHash = bioDto.getHash(); - } - } - else - { - BioMetricsDto bioDto = getBiometricErrorData (lang, specVersion, isForAuthenication); - if (bioDto != null) - { - biometrics.add (bioDto); - previousHash = bioDto.getHash(); - } - } - bioCounter ++; - } - } - } - else - { - BioMetricsDto bioDto = getBiometricErrorData (lang, specVersion, isForAuthenication); - if (bioDto != null) - { - biometrics.add (bioDto); - previousHash = bioDto.getHash(); - } - } - } - } - // For IRIS SINGLE - else if (deviceHelper.getDigitalId().getType().equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue (SBIConstant.MOSIP_BIOMETRIC_TYPE_IRIS)) && - deviceHelper.getDigitalId().getDeviceSubType().equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue (SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_IRIS_SINGLE))) - { - SBIIrisSingleCaptureInfo captureInfo = (SBIIrisSingleCaptureInfo)deviceHelper.getCaptureInfo(); - SBIIrisSingleBioExceptionInfo bioExceptionInfo = (SBIIrisSingleBioExceptionInfo)deviceHelper.getCaptureInfo().getBioExceptionInfo(); - - if (deviceSubId == SBIConstant.DEVICE_IRIS_SINGLE_SUB_TYPE_ID) - { - HashMap biometricData = captureInfo.getBiometricData(); - if (biometricData != null && biometricData.size() > 0) - { - int bioCounter = 0; - for (Map.Entry pair: biometricData.entrySet()) { - if (bioCounter > bioCount) - break; - - if ((bioCounter < bioCount) && (bioSubTypeInfo.getChkUnknown() == SBICheckState.Checked || bioSubTypeInfo.getChkLeftIris() == SBICheckState.Checked) - && pair.getKey().equalsIgnoreCase(SBIConstant.BIO_NAME_LEFT_IRIS)) - { - String bioData = pair.getValue(); - if (bioData != null && bioData.length() > 0) - { - BioMetricsDto bioDto = getBiometricData (transactionId, requestObject, deviceHelper, previousHash, bioType, (bioSubTypeInfo.getChkLeftIris() == SBICheckState.Checked ? SBIConstant.BIO_NAME_LEFT_IRIS : SBIConstant.BIO_NAME_UNKNOWN), - bioData, captureInfo.getCaptureScoreLI(), requestScore, "", "0", isForAuthenication); - if (bioDto != null) - { - biometrics.add(bioDto); - previousHash = bioDto.getHash(); - } - } - else - { - BioMetricsDto bioDto = getBiometricErrorData (lang, specVersion, isForAuthenication); - if (bioDto != null) - { - biometrics.add (bioDto); - previousHash = bioDto.getHash(); - } - } - bioCounter ++; - } - - if ((bioCounter < bioCount) && (bioSubTypeInfo.getChkUnknown() == SBICheckState.Checked || bioSubTypeInfo.getChkRightIris() == SBICheckState.Checked) - && pair.getKey().equalsIgnoreCase(SBIConstant.BIO_NAME_RIGHT_IRIS)) - { - String bioData = pair.getValue(); - if (bioData != null && bioData.length() > 0) - { - BioMetricsDto bioDto = getBiometricData (transactionId, requestObject, deviceHelper, previousHash, bioType, (bioSubTypeInfo.getChkRightIris() == SBICheckState.Checked ? SBIConstant.BIO_NAME_RIGHT_IRIS : SBIConstant.BIO_NAME_UNKNOWN), - bioData, captureInfo.getCaptureScoreRI(), requestScore, "", "0", isForAuthenication); - if (bioDto != null) - { - biometrics.add(bioDto); - previousHash = bioDto.getHash(); - } - } - else - { - BioMetricsDto bioDto = getBiometricErrorData (lang, specVersion, isForAuthenication); - if (bioDto != null) - { - biometrics.add (bioDto); - previousHash = bioDto.getHash(); - } - } - bioCounter ++; - } - } - } - else - { - BioMetricsDto bioDto = getBiometricErrorData (lang, specVersion, isForAuthenication); - if (bioDto != null) - { - biometrics.add (bioDto); - previousHash = bioDto.getHash(); - } - } - } - } - // For Face - else if (deviceHelper.getDigitalId().getType().equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue (SBIConstant.MOSIP_BIOMETRIC_TYPE_FACE)) && - deviceHelper.getDigitalId().getDeviceSubType().equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue (SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_FACE))) - { - SBIFaceCaptureInfo captureInfo = (SBIFaceCaptureInfo)deviceHelper.getCaptureInfo(); - String bioData = captureInfo.getBiometricForBioSubType(SBIConstant.BIO_NAME_UNKNOWN); - if (bioData != null && bioData.length() > 0) - { - BioMetricsDto bioDto = getBiometricData (transactionId, requestObject, deviceHelper, previousHash, bioType, null, - bioData, captureInfo.getCaptureScoreFace(), requestScore, "", "0", isForAuthenication); - if (bioDto != null) - { - biometrics.add(bioDto); - previousHash = bioDto.getHash(); - } - } - else - { - BioMetricsDto bioDto = getBiometricErrorData (lang, specVersion, isForAuthenication); - if (bioDto != null) - { - biometrics.add (bioDto); - previousHash = bioDto.getHash(); - } - } - } - } - return biometrics; - } - - private BioMetricsDto getBiometricData (String transactionId, CaptureRequestDto requestObject, SBIDeviceHelper deviceHelper, - String previousHash, String bioType, String bioSubType, String bioValue, - int qualityScore, int qualityRequestScore, String lang, String errorCode, boolean isUsedForAuthenication) throws JsonGenerationException, JsonMappingException, IOException, NoSuchAlgorithmException, DecoderException - { - DeviceInfo deviceInfo = deviceHelper.getDeviceInfo(); - - BioMetricsDto biometric = new BioMetricsDto (); - biometric.setSpecVersion(requestObject.getSpecVersion()); - - biometric.setError(new ErrorInfo (errorCode, SBIJsonInfo.getErrorDescription (lang, errorCode))); - - BioMetricsDataDto biometricData = new BioMetricsDataDto (); - biometricData.setDeviceCode(deviceInfo.getDeviceCode()); - biometricData.setDigitalId(deviceInfo.getDigitalId()); - biometricData.setDeviceServiceVersion(deviceInfo.getServiceVersion()); - biometricData.setBioType(bioType); - biometricData.setBioSubType(bioSubType); - - biometricData.setPurpose(requestObject.getPurpose()); - biometricData.setEnv(requestObject.getEnv()); - - if (isUsedForAuthenication) - biometricData.setDomainUri(requestObject.getDomainUri() + ""); - - if (isUsedForAuthenication == false) - { - biometricData.setBioValue(bioValue); - biometricData.setTimestamp(CryptoUtility.getTimestamp()); - } - else - { - try { - X509Certificate certificate = new JwtUtility().getCertificateToEncryptCaptureBioValue(); - PublicKey publicKey = certificate.getPublicKey(); - Map cryptoResult = CryptoUtility.encrypt(publicKey, - java.util.Base64.getUrlDecoder().decode(bioValue), transactionId); - - biometricData.setTimestamp(cryptoResult.get("TIMESTAMP")); - biometricData.setBioValue(cryptoResult.containsKey("ENC_DATA") ? - cryptoResult.get("ENC_DATA") : null); - biometric.setSessionKey(cryptoResult.get("ENC_SESSION_KEY")); - String thumbPrint = toHex (JwtUtility.getCertificateThumbprint(certificate)).replace ("-", "").toUpperCase(); - //System.out.println("ThumbPrint>>" + thumbPrint); - biometric.setThumbprint(thumbPrint); - } catch (Exception ex) { - LOGGER.error("getBiometricData :: encrypt :: ", ex); - // TODO Auto-generated catch block - ex.printStackTrace(); - } - } - - biometricData.setRequestedScore(qualityRequestScore + ""); - biometricData.setQualityScore(qualityScore + ""); - biometricData.setTransactionId(transactionId); - - ObjectMapper mapper = new ObjectMapper (); - SerializationConfig config = mapper.getSerializationConfig(); - config.setSerializationInclusion(Inclusion.NON_NULL); - mapper.setSerializationConfig(config); - - String currentBioData = mapper.writeValueAsString(biometricData); - - //base64 signature of the data block. base64 signature of the hash element - String dataBlockSignBase64 = deviceHelper.getSignBioMetricsDataDto (deviceHelper.getDeviceType(), deviceHelper.getDeviceSubType(), currentBioData); - biometric.setData (dataBlockSignBase64); - - byte[] previousBioDataHash = null; - if (previousHash == null || previousHash.trim().length() == 0) { - byte [] previousDataByteArr = StringHelper.toUtf8ByteArray (""); - previousBioDataHash = generateHash(previousDataByteArr); - } else { - previousBioDataHash = decodeHex(previousHash); - } - //instead of BioData, bioValue (before encrytion in case of Capture response) is used for computing the hash. - byte [] currentDataByteArr = java.util.Base64.getUrlDecoder().decode(bioValue); - // Here Byte Array - byte[] currentBioDataHash = generateHash (currentDataByteArr); - byte[] finalBioDataHash = new byte[currentBioDataHash.length + previousBioDataHash.length]; - System.arraycopy (previousBioDataHash, 0, finalBioDataHash, 0, previousBioDataHash.length); - System.arraycopy (currentBioDataHash, 0, finalBioDataHash, previousBioDataHash.length, currentBioDataHash.length); - - biometric.setHash(toHex (generateHash (finalBioDataHash))); - - return biometric; - } - - public String toHex(byte[] bytes) { - return Hex.encodeHexString(bytes).toUpperCase(); - } - - private final String HASH_ALGORITHM_NAME = "SHA-256"; - public byte[] generateHash(final byte[] bytes) throws NoSuchAlgorithmException{ - MessageDigest messageDigest = MessageDigest.getInstance(HASH_ALGORITHM_NAME); - return messageDigest.digest(bytes); - } - - public byte[] decodeHex(String hexData) throws DecoderException{ - return Hex.decodeHex(hexData); - } - - private BioMetricsDto getBiometricErrorData (String lang, String specVersion, boolean isForAuthenication) - { - String errorCode = "701"; - BioMetricsDto biometric = new BioMetricsDto (); - biometric.setSpecVersion(specVersion); - biometric.setData(""); - biometric.setHash(""); - if (isForAuthenication) - { - errorCode = "801"; - biometric.setSessionKey(""); - biometric.setThumbprint(""); - } - - biometric.setError(new ErrorInfo (errorCode, (SBIJsonInfo.getErrorDescription (lang, errorCode)).trim())); - - return biometric; - } - - private void renderMainHeaderData (Socket socket) throws IOException - { - writeMainHeader (socket); - } - - private void writeMainHeader (Socket socket) throws IOException - { - // prepare main header - byte [] mainHeader = createMainHeader (); - - BufferedOutputStream outputStream = new BufferedOutputStream (socket.getOutputStream()); - outputStream.write (mainHeader, 0, mainHeader.length); - outputStream.flush (); - outputStream.flush (); - } - - private byte [] createMainHeader () - { - String header = - "HTTP/1.0 200 OK\r\n" + - "Server: http://" + ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.SERVER_ADDRESS) + ":" + getPort () + "\r\n" + - "Access-Control-Allow-Origin:*\r\n" + - "Connection: close\r\n" + - "Max-Age: 0\r\n" + - "Expires: 0\r\n" + - "Cache-Control: no-cache, private\r\n" + - "Pragma: no-cache\r\n" + - "Content-Type: multipart/x-mixed-replace; " + - "boundary=--BoundaryString\r\n\r\n"; - - // using ascii encoder is fine since there is no international character used in this string. - return header.getBytes(StandardCharsets.US_ASCII); - } - - private void renderJPGImageData (Socket socket, byte[] image) throws IOException - { - if (image != null && socket != null && !socket.isClosed()) - writeFrame (socket, image); - } - - private void writeFrame (Socket socket, byte[] image) throws IOException - { - // prepare image data - byte[] imageInByte = image; - - // prepare header - byte [] header = createHeader (imageInByte.length); - // prepare footer - byte [] footer = createFooter (); - - BufferedOutputStream outputStream = new BufferedOutputStream (socket.getOutputStream()); - // Start writing data - outputStream.write(header, 0, header.length); - outputStream.write(imageInByte, 0, imageInByte.length); - outputStream.write(footer, 0, footer.length); - outputStream.flush(); - outputStream.flush(); - } - - private byte [] createHeader (int length) - { - String header = - "--BoundaryString\r\n" + - "Access-Control-Allow-Origin:*\r\n" + - "Content-Type:image/jpeg\r\n" + - "Content-Length:" + length + "\r\n\r\n"; // there are always 2 new line character before the actual data - - // using ascii encoder is fine since there is no international character used in this string. - return header.getBytes(StandardCharsets.US_ASCII); - } - - public byte [] createFooter () - { - return "\r\n\r\n".getBytes(StandardCharsets.US_ASCII); - } - - private SBIDeviceHelper getDeviceHelperForDeviceId(SBIMockService mockService, String deviceId) { - - SBIDeviceHelper deviceHelper = null; - if (mockService.getPurpose().equalsIgnoreCase(SBIConstant.PURPOSE_REGISTRATION)) - { - deviceHelper = (SBIFingerSlapHelper) mockService.getDeviceHelper(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_FINGER) + "_" + ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_FINGER_SLAP)); - deviceHelper.initDeviceDetails(); - if (deviceHelper.getDeviceInfo() != null && deviceHelper.getDeviceInfo().getDeviceId().trim().equals(deviceId.trim())) - { - return deviceHelper; - } - } - else if (mockService.getPurpose().equalsIgnoreCase(SBIConstant.PURPOSE_AUTH)) - { - deviceHelper = (SBIFingerSingleHelper) mockService.getDeviceHelper(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_FINGER) + "_" + ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_FINGER_SINGLE)); - deviceHelper.initDeviceDetails(); - if (deviceHelper.getDeviceInfo() != null && deviceHelper.getDeviceInfo().getDeviceId().trim().equals(deviceId.trim())) - { - return deviceHelper; - } - } - - deviceHelper = (SBIFaceHelper) mockService.getDeviceHelper(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_FACE) + "_" + ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_FACE)); - deviceHelper.initDeviceDetails(); - if (deviceHelper.getDeviceInfo() != null && deviceHelper.getDeviceInfo().getDeviceId().trim().equals(deviceId.trim())) - { - return deviceHelper; - } - - if (mockService.getPurpose().equalsIgnoreCase(SBIConstant.PURPOSE_REGISTRATION)) - { - deviceHelper = (SBIIrisDoubleHelper) mockService.getDeviceHelper(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_IRIS) + "_" + ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_IRIS_DOUBLE)); - deviceHelper.initDeviceDetails(); - if (deviceHelper.getDeviceInfo() != null && deviceHelper.getDeviceInfo().getDeviceId().trim().equals(deviceId.trim())) - { - return deviceHelper; - } - } - else if (mockService.getPurpose().equalsIgnoreCase(SBIConstant.PURPOSE_AUTH)) - { - deviceHelper = (SBIIrisSingleHelper) mockService.getDeviceHelper(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_IRIS) + "_" + ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_IRIS_SINGLE)); - deviceHelper.initDeviceDetails(); - if (deviceHelper.getDeviceInfo() != null && deviceHelper.getDeviceInfo().getDeviceId().trim().equals(deviceId.trim())) - { - return deviceHelper; - } - } - - return null; - } - - public Object getRequestJson (String methodVerb) - { - if (getRequest () != null && getRequest().indexOf("{") >= 0) - { - try - { - ObjectMapper mapper = new ObjectMapper(); - if (methodVerb.equalsIgnoreCase(SBIConstant.MOSIP_DISC_VERB)) - return mapper.readValue(getRequest().substring (getRequest().indexOf("{")), DeviceDiscoveryRequestDetail.class); - if (methodVerb.equalsIgnoreCase(SBIConstant.MOSIP_STREAM_VERB)) - return mapper.readValue(getRequest().substring (getRequest().indexOf("{")), StreamingRequestDetail.class); - if (methodVerb.equalsIgnoreCase(SBIConstant.MOSIP_RCAPTURE_VERB)) - return mapper.readValue(getRequest().substring (getRequest().indexOf("{")), CaptureRequestDto.class); - - if (methodVerb.equalsIgnoreCase(SBIConstant.MOSIP_ADMIN_API_STATUS)) - return mapper.readValue(getRequest().substring (getRequest().indexOf("{")), StatusRequest.class); - if (methodVerb.equalsIgnoreCase(SBIConstant.MOSIP_ADMIN_API_SCORE)) - return mapper.readValue(getRequest().substring (getRequest().indexOf("{")), ScoreRequest.class); - if (methodVerb.equalsIgnoreCase(SBIConstant.MOSIP_ADMIN_API_DELAY)) - return mapper.readValue(getRequest().substring (getRequest().indexOf("{")), DelayRequest.class); - if (methodVerb.equalsIgnoreCase(SBIConstant.MOSIP_ADMIN_API_PROFILE)) - return mapper.readValue(getRequest().substring (getRequest().indexOf("{")), ProfileRequest.class); - - return null; - } - catch (Exception ex) - { - LOGGER.error("getRequestJson", ex); - return null; - } - } - else - { - return null; - } - } - - - public PublicKey getPublicKeyToEncryptCaptureBioValue() throws Exception { - String certificate = getPublicKeyFromIDA(); - certificate = trimBeginEnd(certificate); - CertificateFactory cf = CertificateFactory.getInstance("X.509"); - X509Certificate x509Certificate = (X509Certificate) cf.generateCertificate( - new ByteArrayInputStream(Base64.getDecoder().decode(certificate))); - - return x509Certificate.getPublicKey(); - } - - public String getThumbprint() throws Exception { - String certificate = getPublicKeyFromIDA(); - certificate = trimBeginEnd(certificate); - CertificateFactory cf = CertificateFactory.getInstance("X.509"); - X509Certificate x509Certificate = (X509Certificate) cf.generateCertificate( - new ByteArrayInputStream(Base64.getDecoder().decode(certificate))); - String thumbprint = CryptoUtil.computeFingerPrint(x509Certificate.getEncoded(), null); - - return thumbprint; - } - - public String getPublicKeyFromIDA() { - OkHttpClient client = new OkHttpClient(); - String requestBody = String.format(AUTH_REQ_TEMPLATE, - ApplicationPropertyHelper.getPropertyKeyValue("mosip.auth.appid"), - ApplicationPropertyHelper.getPropertyKeyValue("mosip.auth.clientid"), - ApplicationPropertyHelper.getPropertyKeyValue("mosip.auth.secretkey"), - DateUtils.getUTCCurrentDateTime()); - - MediaType mediaType = MediaType.parse("application/json; charset=utf-8"); - RequestBody body = RequestBody.create(mediaType, requestBody); - Request request = new Request.Builder() - .url(ApplicationPropertyHelper.getPropertyKeyValue("mosip.auth.server.url")) - .post(body) - .build(); - try { - Response response = client.newCall(request).execute(); - if(response.isSuccessful()) { - String authToken = response.header("authorization"); - - Request idarequest = new Request.Builder() - .header("cookie", "Authorization="+authToken) - .url(ApplicationPropertyHelper.getPropertyKeyValue("mosip.ida.server.url")) - .get() - .build(); - - Response idaResponse = new OkHttpClient().newCall(idarequest).execute(); - if(idaResponse.isSuccessful()) { - JSONObject jsonObject = new JSONObject(idaResponse.body().string()); - jsonObject = jsonObject.getJSONObject("response"); - return jsonObject.getString("certificate"); - } - } - - } catch (IOException | JSONException e) { - e.printStackTrace(); - } - return null; - } - - private String trimBeginEnd(String pKey) { - pKey = pKey.replaceAll("-*BEGIN([^-]*)-*(\r?\n)?", ""); - pKey = pKey.replaceAll("-*END([^-]*)-*(\r?\n)?", ""); - pKey = pKey.replaceAll("\\s", ""); - return pKey; - } - - public int getPort() { - return port; - } - public void setPort(int port) { - this.port = port; - } - public String getRequest() { - return request; - } - public void setRequest(String request) { - this.request = request; - } - public static Semaphore getSemaphore() { - return semaphore; - } - public static void setSemaphore(Semaphore semaphore) { - SBIServiceResponse.semaphore = semaphore; - } - - private void delay(long millseconds) - { - try { - Thread.sleep(millseconds); - } catch (InterruptedException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - } - - private boolean isValidBioExceptionValues(String[] bioExceptions) { - if (bioExceptions != null) - { - return bioExceptionsList.containsAll(Arrays.asList(bioExceptions)); - } - return false; - } - - private boolean isValidBioSubtypeValues(String[] bioSubtypes) { - if (bioSubtypes != null) - { - return bioSubtypesList.containsAll(Arrays.asList(bioSubtypes)); - } - return false; - } -} +package io.mosip.mock.sbi.service; + +import java.io.BufferedOutputStream; +import java.io.ByteArrayInputStream; +import java.io.IOException; +import java.net.Socket; +import java.nio.charset.StandardCharsets; +import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; +import java.security.PublicKey; +import java.security.cert.CertificateFactory; +import java.security.cert.X509Certificate; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Base64; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.concurrent.Semaphore; + +import org.apache.commons.codec.DecoderException; +import org.apache.commons.codec.binary.Hex; +import org.biometric.provider.CryptoUtility; +import org.biometric.provider.JwtUtility; +import org.codehaus.jackson.JsonGenerationException; +import org.codehaus.jackson.map.JsonMappingException; +import org.codehaus.jackson.map.ObjectMapper; +import org.codehaus.jackson.map.SerializationConfig; +import org.codehaus.jackson.map.annotate.JsonSerialize.Inclusion; +import org.json.JSONException; +import org.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.squareup.okhttp.MediaType; +import com.squareup.okhttp.OkHttpClient; +import com.squareup.okhttp.Request; +import com.squareup.okhttp.RequestBody; +import com.squareup.okhttp.Response; + +import io.mosip.kernel.core.util.CryptoUtil; +import io.mosip.kernel.core.util.DateUtils; +import io.mosip.mock.sbi.SBIConstant; +import io.mosip.mock.sbi.devicehelper.SBIBioSubTypeInfo; +import io.mosip.mock.sbi.devicehelper.SBICheckState; +import io.mosip.mock.sbi.devicehelper.SBIDeviceHelper; +import io.mosip.mock.sbi.devicehelper.face.SBIFaceCaptureInfo; +import io.mosip.mock.sbi.devicehelper.face.SBIFaceHelper; +import io.mosip.mock.sbi.devicehelper.finger.single.SBIFingerSingleCaptureInfo; +import io.mosip.mock.sbi.devicehelper.finger.single.SBIFingerSingleHelper; +import io.mosip.mock.sbi.devicehelper.finger.slap.SBIFingerSlapBioExceptionInfo; +import io.mosip.mock.sbi.devicehelper.finger.slap.SBIFingerSlapCaptureInfo; +import io.mosip.mock.sbi.devicehelper.finger.slap.SBIFingerSlapHelper; +import io.mosip.mock.sbi.devicehelper.iris.binacular.SBIIrisDoubleBioExceptionInfo; +import io.mosip.mock.sbi.devicehelper.iris.binacular.SBIIrisDoubleCaptureInfo; +import io.mosip.mock.sbi.devicehelper.iris.binacular.SBIIrisDoubleHelper; +import io.mosip.mock.sbi.devicehelper.iris.monocular.SBIIrisSingleBioExceptionInfo; +import io.mosip.mock.sbi.devicehelper.iris.monocular.SBIIrisSingleCaptureInfo; +import io.mosip.mock.sbi.devicehelper.iris.monocular.SBIIrisSingleHelper; +import io.mosip.mock.sbi.util.ApplicationPropertyHelper; +import io.mosip.mock.sbi.util.StringHelper; +import io.mosip.registration.mdm.dto.BioMetricsDataDto; +import io.mosip.registration.mdm.dto.BioMetricsDto; +import io.mosip.registration.mdm.dto.CaptureRequestDeviceDetailDto; +import io.mosip.registration.mdm.dto.CaptureRequestDto; +import io.mosip.registration.mdm.dto.DelayRequest; +import io.mosip.registration.mdm.dto.DeviceDiscoveryRequestDetail; +import io.mosip.registration.mdm.dto.DeviceInfo; +import io.mosip.registration.mdm.dto.DeviceInfoDto; +import io.mosip.registration.mdm.dto.DiscoverDto; +import io.mosip.registration.mdm.dto.ErrorInfo; +import io.mosip.registration.mdm.dto.ProfileRequest; +import io.mosip.registration.mdm.dto.RCaptureResponse; +import io.mosip.registration.mdm.dto.ScoreRequest; +import io.mosip.registration.mdm.dto.StatusRequest; +import io.mosip.registration.mdm.dto.StreamingRequestDetail; + +public class SBIServiceResponse { + + private static final Logger LOGGER = LoggerFactory.getLogger(SBIServiceResponse.class); + private static String AUTH_REQ_TEMPLATE = "{ \"id\": \"string\",\"metadata\": {},\"request\": { \"appId\": \"%s\", \"clientId\": \"%s\", \"secretKey\": \"%s\" }, \"requesttime\": \"%s\", \"version\": \"string\"}"; + + protected int port = 0; + protected String request = ""; + static Semaphore semaphore = new Semaphore (1); + + private String[] bioExceptionsArray = {"Left IndexFinger", "Left MiddleFinger", "Left RingFinger", "Left LittleFinger", "Left Thumb", "Right IndexFinger", "Right MiddleFinger", "Right RingFinger", "Right LittleFinger", "Right Thumb", "Left", "Right"}; + private List bioExceptionsList = Arrays.asList(bioExceptionsArray); + + private String[] bioSubtypesArray = {"Left IndexFinger", "Left MiddleFinger", "Left RingFinger", "Left LittleFinger", "Left Thumb", "Right IndexFinger", "Right MiddleFinger", "Right RingFinger", "Right LittleFinger", "Right Thumb", "Left", "Right", "UNKNOWN"}; + private List bioSubtypesList = Arrays.asList(bioSubtypesArray); + + public SBIServiceResponse (int port) + { + setPort (port); + } + + public String getServiceresponse (SBIMockService mockService, Socket socket, String strJsonRequest) + { + String responseJson = ""; + setRequest (strJsonRequest); + + if (strJsonRequest.contains(SBIConstant.MOSIP_POST_VERB) || + strJsonRequest.contains(SBIConstant.MOSIP_GET_VERB) || + strJsonRequest.contains(SBIConstant.MOSIP_DISC_VERB)) + { + responseJson = processDeviceDicoveryInfo (mockService); + } + else if (strJsonRequest.contains(SBIConstant.MOSIP_INFO_VERB)) + { + responseJson = processDeviceInfo (mockService); + } + else if (strJsonRequest.contains(SBIConstant.MOSIP_STREAM_VERB)) + { + responseJson = processLiveStreamInfo (mockService, socket); + } + else if (strJsonRequest.contains(SBIConstant.MOSIP_RCAPTURE_VERB)) + { + responseJson = processRCaptureInfo (mockService); + } + else if (strJsonRequest.contains(SBIConstant.MOSIP_CAPTURE_VERB)) + { + responseJson = processCaptureInfo (mockService); + } + else if (strJsonRequest.contains(SBIConstant.MOSIP_ADMIN_API_STATUS)) + { + responseJson = processSetStatus (mockService); + } + else if (strJsonRequest.contains(SBIConstant.MOSIP_ADMIN_API_SCORE)) + { + responseJson = processSetQualityScore (mockService); + } + else if (strJsonRequest.contains(SBIConstant.MOSIP_ADMIN_API_DELAY)) + { + responseJson = processSetDelay (mockService); + } + else if (strJsonRequest.contains(SBIConstant.MOSIP_ADMIN_API_PROFILE)) + { + responseJson = processSetProfileInfo (mockService); + } + else + { + responseJson = SBIResponseInfo.generateErrorResponse ("en", getPort (), "500", ""); + } + return responseJson; + } + + public String processDeviceDicoveryInfo (SBIMockService mockService) + { + String response = null; + String lang = "en"; + try + { + ObjectMapper objectMapper = new ObjectMapper(); + DeviceDiscoveryRequestDetail requestObject = (DeviceDiscoveryRequestDetail) getRequestJson (SBIConstant.MOSIP_DISC_VERB); + String type = null; + if (requestObject != null && requestObject.getType() != null && requestObject.getType().length() > 0) + type = requestObject.getType().toString ().trim().toLowerCase(); + + LOGGER.info("processDeviceDicoveryInfo :: type :: "+ type); + + List infoList = new ArrayList (); + if (type == null || type.trim().length() == 0) + { + return SBIJsonInfo.getErrorJson (lang, "502", ""); + } + else if (!type.equalsIgnoreCase(SBIConstant.MOSIP_BIOMETRIC_TYPE_BIOMTRIC_DEVICE) + && !type.equalsIgnoreCase(SBIConstant.MOSIP_BIOMETRIC_TYPE_FINGER) + && !type.equalsIgnoreCase(SBIConstant.MOSIP_BIOMETRIC_TYPE_FACE) + && !type.equalsIgnoreCase(SBIConstant.MOSIP_BIOMETRIC_TYPE_IRIS)) + { + return SBIJsonInfo.getErrorJson (lang, "502", ""); + } + else + { + long delay = 0; + SBIDeviceHelper deviceHelper = null; + if (type.equalsIgnoreCase(SBIConstant.MOSIP_BIOMETRIC_TYPE_BIOMTRIC_DEVICE) + || type.equalsIgnoreCase(SBIConstant.MOSIP_BIOMETRIC_TYPE_FINGER)) + { + switch (mockService.getPurpose()) + { + case SBIConstant.PURPOSE_REGISTRATION: + deviceHelper = (SBIFingerSlapHelper) mockService.getDeviceHelper(SBIConstant.MOSIP_BIOMETRIC_TYPE_FINGER + "_" + SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_FINGER_SLAP); + break; + case SBIConstant.PURPOSE_AUTH: + deviceHelper = (SBIFingerSingleHelper) mockService.getDeviceHelper(SBIConstant.MOSIP_BIOMETRIC_TYPE_FINGER + "_" + SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_FINGER_SINGLE); + break; + } + if (deviceHelper != null) + { + delay = deviceHelper.getDelayForMethod(SBIConstant.MOSIP_METHOD_MOSIPDISC); + delay(delay); + + deviceHelper.initDeviceDetails(); + DiscoverDto discoverInfo = deviceHelper.getDiscoverDto(); + if (discoverInfo != null) + infoList.add(discoverInfo); + } + } + + if (type.equalsIgnoreCase(SBIConstant.MOSIP_BIOMETRIC_TYPE_BIOMTRIC_DEVICE) + || type.equalsIgnoreCase(SBIConstant.MOSIP_BIOMETRIC_TYPE_FACE)) + { + deviceHelper = (SBIFaceHelper) mockService.getDeviceHelper(SBIConstant.MOSIP_BIOMETRIC_TYPE_FACE + "_" + SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_FACE); + if (deviceHelper != null) + { + delay = deviceHelper.getDelayForMethod(SBIConstant.MOSIP_METHOD_MOSIPDISC); + delay(delay); + deviceHelper.initDeviceDetails(); + DiscoverDto discoverInfo = deviceHelper.getDiscoverDto(); + if (discoverInfo != null) + infoList.add(discoverInfo); + } + } + + if (type.equalsIgnoreCase(SBIConstant.MOSIP_BIOMETRIC_TYPE_BIOMTRIC_DEVICE) + || type.equalsIgnoreCase(SBIConstant.MOSIP_BIOMETRIC_TYPE_IRIS)) + { + switch (mockService.getPurpose()) + { + case SBIConstant.PURPOSE_REGISTRATION: + deviceHelper = (SBIIrisDoubleHelper) mockService.getDeviceHelper(SBIConstant.MOSIP_BIOMETRIC_TYPE_IRIS + "_" + SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_IRIS_DOUBLE); + break; + case SBIConstant.PURPOSE_AUTH: + deviceHelper = (SBIIrisSingleHelper) mockService.getDeviceHelper(SBIConstant.MOSIP_BIOMETRIC_TYPE_IRIS + "_" + SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_IRIS_SINGLE); + break; + } + if (deviceHelper != null) + { + delay = deviceHelper.getDelayForMethod(SBIConstant.MOSIP_METHOD_MOSIPDISC); + delay(delay); + + deviceHelper.initDeviceDetails(); + DiscoverDto discoverInfo = deviceHelper.getDiscoverDto(); + if (discoverInfo != null) + infoList.add(discoverInfo); + } + } + + if (infoList != null && infoList.size() > 0) + { + return objectMapper.writeValueAsString(infoList); + } + else + { + return SBIJsonInfo.getErrorJson (lang, "503", ""); + } + } + } + catch (Exception ex) + { + response = SBIResponseInfo.generateErrorResponse (lang, getPort (), SBIConstant.Error_Code_999 + "", ""); + LOGGER.error("processDeviceDicoveryInfo", ex); + } + finally + { + } + return response; + } + + public String processDeviceInfo (SBIMockService mockService) + { + String response = null; + String lang = "en"; + try + { + long delay = 0; + ObjectMapper objectMapper = new ObjectMapper(); + + List infoList = new ArrayList (); + DeviceInfoDto deviceInfoDto = null; + SBIDeviceHelper deviceHelper = null; + switch (mockService.getPurpose()) + { + case SBIConstant.PURPOSE_REGISTRATION: + deviceHelper = (SBIFingerSlapHelper) mockService.getDeviceHelper(SBIConstant.MOSIP_BIOMETRIC_TYPE_FINGER + "_" + SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_FINGER_SLAP); + break; + case SBIConstant.PURPOSE_AUTH: + deviceHelper = (SBIFingerSingleHelper) mockService.getDeviceHelper(SBIConstant.MOSIP_BIOMETRIC_TYPE_FINGER + "_" + SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_FINGER_SINGLE); + break; + } + + if (deviceHelper != null) + { + delay = deviceHelper.getDelayForMethod(SBIConstant.MOSIP_METHOD_MOSIPDINFO); + delay(delay); + + deviceHelper.initDeviceDetails(); + deviceInfoDto = deviceHelper.getDeviceInfoDto(); + if (deviceInfoDto != null) + infoList.add(deviceInfoDto); + } + + deviceHelper = (SBIFaceHelper) mockService.getDeviceHelper(SBIConstant.MOSIP_BIOMETRIC_TYPE_FACE + "_" + SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_FACE); + if (deviceHelper != null) + { + delay = deviceHelper.getDelayForMethod(SBIConstant.MOSIP_METHOD_MOSIPDINFO); + delay(delay); + + deviceHelper.initDeviceDetails(); + deviceInfoDto = deviceHelper.getDeviceInfoDto(); + if (deviceInfoDto != null) + infoList.add(deviceInfoDto); + } + + switch (mockService.getPurpose()) + { + case SBIConstant.PURPOSE_REGISTRATION: + deviceHelper = (SBIIrisDoubleHelper) mockService.getDeviceHelper(SBIConstant.MOSIP_BIOMETRIC_TYPE_IRIS + "_" + SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_IRIS_DOUBLE); + break; + case SBIConstant.PURPOSE_AUTH: + deviceHelper = (SBIIrisSingleHelper) mockService.getDeviceHelper(SBIConstant.MOSIP_BIOMETRIC_TYPE_IRIS + "_" + SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_IRIS_SINGLE); + break; + } + if (deviceHelper != null) + { + delay = deviceHelper.getDelayForMethod(SBIConstant.MOSIP_METHOD_MOSIPDINFO); + delay(delay); + + deviceHelper.initDeviceDetails(); + deviceInfoDto = deviceHelper.getDeviceInfoDto(); + if (deviceInfoDto != null) + infoList.add(deviceInfoDto); + } + + if (infoList != null && infoList.size() > 0) + { + return objectMapper.writeValueAsString(infoList); + } + else + { + return SBIJsonInfo.getErrorJson (lang, "106", ""); + } + } + catch (Exception ex) + { + response = SBIResponseInfo.generateErrorResponse (lang, getPort (), SBIConstant.Error_Code_999 + "", ""); + LOGGER.error("processDeviceDicoveryInfo", ex); + } + finally + { + } + return response; + } + + public String processSetStatus (SBIMockService mockService) + { + String response = null; + String lang = "en"; + try + { + StatusRequest requestObject = (StatusRequest) getRequestJson (SBIConstant.MOSIP_ADMIN_API_STATUS); + String type = null, status = null; + if (requestObject != null && requestObject.getType() != null && requestObject.getType().length() > 0) + type = requestObject.getType().toString ().trim().toLowerCase(); + + if (requestObject != null && requestObject.getDeviceStatus() != null && requestObject.getDeviceStatus().length() > 0) + status = requestObject.getDeviceStatus().toString ().trim().toLowerCase(); + + LOGGER.info("processSetStatus :: Type :: " + type + " :: Status :: " + status); + + if (type == null || type.trim().length() == 0) + { + return SBIJsonInfo.getAdminApiErrorJson (lang, "502", ""); + } + else if (!type.equalsIgnoreCase(SBIConstant.MOSIP_BIOMETRIC_TYPE_BIOMTRIC_DEVICE) + && !type.equalsIgnoreCase(SBIConstant.MOSIP_BIOMETRIC_TYPE_FINGER) + && !type.equalsIgnoreCase(SBIConstant.MOSIP_BIOMETRIC_TYPE_FACE) + && !type.equalsIgnoreCase(SBIConstant.MOSIP_BIOMETRIC_TYPE_IRIS)) + { + return SBIJsonInfo.getAdminApiErrorJson (lang, "502", ""); + } + else if (!status.equalsIgnoreCase(SBIConstant.DEVICE_STATUS_ISREADY) + && !status.equalsIgnoreCase(SBIConstant.DEVICE_STATUS_ISBUSY) + && !status.equalsIgnoreCase(SBIConstant.DEVICE_STATUS_NOTREADY) + && !status.equalsIgnoreCase(SBIConstant.DEVICE_STATUS_NOTREGISTERED)) + { + return SBIJsonInfo.getAdminApiErrorJson (lang, "504", ""); + } + else + { + SBIDeviceHelper deviceHelper = null; + switch (mockService.getPurpose()) + { + case SBIConstant.PURPOSE_REGISTRATION: + deviceHelper = (SBIFingerSlapHelper) mockService.getDeviceHelper(SBIConstant.MOSIP_BIOMETRIC_TYPE_FINGER + "_" + SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_FINGER_SLAP); + break; + case SBIConstant.PURPOSE_AUTH: + deviceHelper = (SBIFingerSingleHelper) mockService.getDeviceHelper(SBIConstant.MOSIP_BIOMETRIC_TYPE_FINGER + "_" + SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_FINGER_SINGLE); + break; + } + if (deviceHelper != null) + { + deviceHelper.setDeviceStatus((type.equalsIgnoreCase(SBIConstant.MOSIP_BIOMETRIC_TYPE_BIOMTRIC_DEVICE) || type.equalsIgnoreCase(SBIConstant.MOSIP_BIOMETRIC_TYPE_FINGER) ? status : SBIConstant.DEVICE_STATUS_ISREADY)); + } + + deviceHelper = (SBIFaceHelper) mockService.getDeviceHelper(SBIConstant.MOSIP_BIOMETRIC_TYPE_FACE + "_" + SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_FACE); + if (deviceHelper != null) + { + deviceHelper.setDeviceStatus((type.equalsIgnoreCase(SBIConstant.MOSIP_BIOMETRIC_TYPE_BIOMTRIC_DEVICE) || type.equalsIgnoreCase(SBIConstant.MOSIP_BIOMETRIC_TYPE_FACE) ? status : SBIConstant.DEVICE_STATUS_ISREADY)); + } + + switch (mockService.getPurpose()) + { + case SBIConstant.PURPOSE_REGISTRATION: + deviceHelper = (SBIIrisDoubleHelper) mockService.getDeviceHelper(SBIConstant.MOSIP_BIOMETRIC_TYPE_IRIS + "_" + SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_IRIS_DOUBLE); + break; + case SBIConstant.PURPOSE_AUTH: + deviceHelper = (SBIIrisSingleHelper) mockService.getDeviceHelper(SBIConstant.MOSIP_BIOMETRIC_TYPE_IRIS + "_" + SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_IRIS_SINGLE); + break; + } + if (deviceHelper != null) + { + deviceHelper.setDeviceStatus((type.equalsIgnoreCase(SBIConstant.MOSIP_BIOMETRIC_TYPE_BIOMTRIC_DEVICE) || type.equalsIgnoreCase(SBIConstant.MOSIP_BIOMETRIC_TYPE_IRIS) ? status : SBIConstant.DEVICE_STATUS_ISREADY)); + } + } + + response = SBIJsonInfo.getAdminApiErrorJson (lang, "0", ""); + } + catch (Exception ex) + { + response = SBIJsonInfo.getAdminApiErrorJson (lang, "999", ex.getLocalizedMessage() + ""); + LOGGER.error("processSetStatus", ex); + } + finally + { + } + return response; + } + + public String processSetQualityScore (SBIMockService mockService) + { + String response = null; + String lang = "en"; + try + { + ScoreRequest requestObject = (ScoreRequest) getRequestJson (SBIConstant.MOSIP_ADMIN_API_SCORE); + String type = null, qualityScore = null; + boolean scoreFromIso = false; + if (requestObject != null && requestObject.getType() != null && requestObject.getType().length() > 0) + type = requestObject.getType().toString ().trim().toLowerCase(); + + if (requestObject != null && requestObject.getQualityScore() != null && requestObject.getQualityScore().length() > 0) + qualityScore = requestObject.getQualityScore().toString ().trim(); + + if (requestObject != null) + scoreFromIso = requestObject.isFromIso(); + + LOGGER.info("processSetQualityScore :: Type :: " + type + " :: qualityScore :: " + qualityScore + " :: fromIso :: " + scoreFromIso); + + if (type == null || type.trim().length() == 0) + { + response = SBIJsonInfo.getAdminApiErrorJson (lang, "502", ""); + } + else if (!type.equalsIgnoreCase(SBIConstant.MOSIP_BIOMETRIC_TYPE_BIOMTRIC_DEVICE) + && !type.equalsIgnoreCase(SBIConstant.MOSIP_BIOMETRIC_TYPE_FINGER) + && !type.equalsIgnoreCase(SBIConstant.MOSIP_BIOMETRIC_TYPE_FACE) + && !type.equalsIgnoreCase(SBIConstant.MOSIP_BIOMETRIC_TYPE_IRIS)) + { + response = SBIJsonInfo.getAdminApiErrorJson (lang, "502", ""); + } + else if (qualityScore == null || qualityScore.trim().length() == 0) + { + response = SBIJsonInfo.getAdminApiErrorJson (lang, "505", ""); + } + else if (qualityScore != null && (Integer.parseInt(qualityScore) < 0 || Integer.parseInt(qualityScore) > 100)) + { + response = SBIJsonInfo.getAdminApiErrorJson (lang, "505", ""); + } + else + { + int defaultQualityScore = Integer.parseInt(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_MOCK_SBI_QUALITY_SCORE)); + + SBIDeviceHelper deviceHelper = null; + switch (mockService.getPurpose()) + { + case SBIConstant.PURPOSE_REGISTRATION: + deviceHelper = (SBIFingerSlapHelper) mockService.getDeviceHelper(SBIConstant.MOSIP_BIOMETRIC_TYPE_FINGER + "_" + SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_FINGER_SLAP); + break; + case SBIConstant.PURPOSE_AUTH: + deviceHelper = (SBIFingerSingleHelper) mockService.getDeviceHelper(SBIConstant.MOSIP_BIOMETRIC_TYPE_FINGER + "_" + SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_FINGER_SINGLE); + break; + } + if (deviceHelper != null) + { + deviceHelper.setScoreFromIso ((type.equalsIgnoreCase(SBIConstant.MOSIP_BIOMETRIC_TYPE_BIOMTRIC_DEVICE) || type.equalsIgnoreCase(SBIConstant.MOSIP_BIOMETRIC_TYPE_FINGER)) ? scoreFromIso : false); + deviceHelper.setQualityScore((type.equalsIgnoreCase(SBIConstant.MOSIP_BIOMETRIC_TYPE_BIOMTRIC_DEVICE) || type.equalsIgnoreCase(SBIConstant.MOSIP_BIOMETRIC_TYPE_FINGER)) ? Integer.parseInt(qualityScore) : defaultQualityScore); + deviceHelper.setQualityScoreSet((type.equalsIgnoreCase(SBIConstant.MOSIP_BIOMETRIC_TYPE_BIOMTRIC_DEVICE) || type.equalsIgnoreCase(SBIConstant.MOSIP_BIOMETRIC_TYPE_FINGER)) ? true : false); + } + + deviceHelper = (SBIFaceHelper) mockService.getDeviceHelper(SBIConstant.MOSIP_BIOMETRIC_TYPE_FACE + "_" + SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_FACE); + if (deviceHelper != null) + { + deviceHelper.setScoreFromIso((type.equalsIgnoreCase(SBIConstant.MOSIP_BIOMETRIC_TYPE_BIOMTRIC_DEVICE) || type.equalsIgnoreCase(SBIConstant.MOSIP_BIOMETRIC_TYPE_FACE)) ? scoreFromIso : false); + deviceHelper.setQualityScore((type.equalsIgnoreCase(SBIConstant.MOSIP_BIOMETRIC_TYPE_BIOMTRIC_DEVICE) || type.equalsIgnoreCase(SBIConstant.MOSIP_BIOMETRIC_TYPE_FACE)) ? Integer.parseInt(qualityScore) : defaultQualityScore); + deviceHelper.setQualityScoreSet((type.equalsIgnoreCase(SBIConstant.MOSIP_BIOMETRIC_TYPE_BIOMTRIC_DEVICE) || type.equalsIgnoreCase(SBIConstant.MOSIP_BIOMETRIC_TYPE_FACE)) ? true : false); + } + + switch (mockService.getPurpose()) + { + case SBIConstant.PURPOSE_REGISTRATION: + deviceHelper = (SBIIrisDoubleHelper) mockService.getDeviceHelper(SBIConstant.MOSIP_BIOMETRIC_TYPE_IRIS + "_" + SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_IRIS_DOUBLE); + break; + case SBIConstant.PURPOSE_AUTH: + deviceHelper = (SBIIrisSingleHelper) mockService.getDeviceHelper(SBIConstant.MOSIP_BIOMETRIC_TYPE_IRIS + "_" + SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_IRIS_SINGLE); + break; + } + if (deviceHelper != null) + { + deviceHelper.setScoreFromIso((type.equalsIgnoreCase(SBIConstant.MOSIP_BIOMETRIC_TYPE_BIOMTRIC_DEVICE) || type.equalsIgnoreCase(SBIConstant.MOSIP_BIOMETRIC_TYPE_IRIS)) ? scoreFromIso : false); + deviceHelper.setQualityScore((type.equalsIgnoreCase(SBIConstant.MOSIP_BIOMETRIC_TYPE_BIOMTRIC_DEVICE) || type.equalsIgnoreCase(SBIConstant.MOSIP_BIOMETRIC_TYPE_IRIS)) ? Integer.parseInt(qualityScore) : defaultQualityScore); + deviceHelper.setQualityScoreSet((type.equalsIgnoreCase(SBIConstant.MOSIP_BIOMETRIC_TYPE_BIOMTRIC_DEVICE) || type.equalsIgnoreCase(SBIConstant.MOSIP_BIOMETRIC_TYPE_IRIS)) ? true : false); + } + + response = SBIJsonInfo.getAdminApiErrorJson (lang, "0", ""); + } + } + catch (Exception ex) + { + response = SBIJsonInfo.getAdminApiErrorJson (lang, "999", ex.getLocalizedMessage() + ""); + LOGGER.error("processSetQualityScore", ex); + } + finally + { + } + return response; + } + + public String processSetDelay (SBIMockService mockService) + { + String response = null; + String lang = "en"; + try + { + DelayRequest requestObject = (DelayRequest) getRequestJson (SBIConstant.MOSIP_ADMIN_API_DELAY); + String type = null, delay = null, method[] = null; + if (requestObject != null && requestObject.getType() != null && requestObject.getType().length() > 0) + type = requestObject.getType().toString ().trim().toLowerCase(); + + if (requestObject != null && requestObject.getDelay() != null && requestObject.getDelay().length() > 0) + delay = requestObject.getDelay().toString ().trim(); + + if (requestObject != null && requestObject.getMethod() != null && requestObject.getMethod().length > 0) + method = requestObject.getMethod(); + + LOGGER.info("processSetDelay :: Type :: " + type + " :: Delay :: " + delay); + + if (type == null || type.trim().length() == 0) + { + response = SBIJsonInfo.getAdminApiErrorJson (lang, "502", ""); + } + else if (!type.equalsIgnoreCase(SBIConstant.MOSIP_BIOMETRIC_TYPE_BIOMTRIC_DEVICE) + && !type.equalsIgnoreCase(SBIConstant.MOSIP_BIOMETRIC_TYPE_FINGER) + && !type.equalsIgnoreCase(SBIConstant.MOSIP_BIOMETRIC_TYPE_FACE) + && !type.equalsIgnoreCase(SBIConstant.MOSIP_BIOMETRIC_TYPE_IRIS)) + { + response = SBIJsonInfo.getAdminApiErrorJson (lang, "502", ""); + } + else if (delay == null || delay.trim().length() == 0) + { + response = SBIJsonInfo.getAdminApiErrorJson (lang, "506", ""); + } + else if (delay != null && Long.parseLong(delay) < 0) + { + response = SBIJsonInfo.getAdminApiErrorJson (lang, "506", ""); + } + else + { + boolean isValidMethod = true; + String corsHeaderMethodsFor = ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.CORS_HEADER_METHODS); + if (method == null || method.length == 0) + { + method = corsHeaderMethodsFor.split(","); + } + if (method != null || method.length > 0) + { + for(int index = 0; index < method.length; index++) + { + if (!corsHeaderMethodsFor.contains(method[index].trim())) + { + response = SBIJsonInfo.getAdminApiErrorJson (lang, "507", ""); + isValidMethod = false; + break; + } + } + } + if (isValidMethod) + { + SBIDeviceHelper deviceHelper = null; + switch (mockService.getPurpose()) + { + case SBIConstant.PURPOSE_REGISTRATION: + deviceHelper = (SBIFingerSlapHelper) mockService.getDeviceHelper(SBIConstant.MOSIP_BIOMETRIC_TYPE_FINGER + "_" + SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_FINGER_SLAP); + break; + case SBIConstant.PURPOSE_AUTH: + deviceHelper = (SBIFingerSingleHelper) mockService.getDeviceHelper(SBIConstant.MOSIP_BIOMETRIC_TYPE_FINGER + "_" + SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_FINGER_SINGLE); + break; + } + + if (deviceHelper != null) + { + deviceHelper.resetDelayForMethod(); + deviceHelper.setDelayForMethod((type.equalsIgnoreCase(SBIConstant.MOSIP_BIOMETRIC_TYPE_BIOMTRIC_DEVICE) || type.equalsIgnoreCase(SBIConstant.MOSIP_BIOMETRIC_TYPE_FINGER)) ? method : null, Long.parseLong (delay)); + } + + deviceHelper = (SBIFaceHelper) mockService.getDeviceHelper(SBIConstant.MOSIP_BIOMETRIC_TYPE_FACE + "_" + SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_FACE); + if (deviceHelper != null) + { + deviceHelper.resetDelayForMethod(); + deviceHelper.setDelayForMethod((type.equalsIgnoreCase(SBIConstant.MOSIP_BIOMETRIC_TYPE_BIOMTRIC_DEVICE) || type.equalsIgnoreCase(SBIConstant.MOSIP_BIOMETRIC_TYPE_FACE)) ? method : null, Long.parseLong (delay)); + } + + switch (mockService.getPurpose()) + { + case SBIConstant.PURPOSE_REGISTRATION: + deviceHelper = (SBIIrisDoubleHelper) mockService.getDeviceHelper(SBIConstant.MOSIP_BIOMETRIC_TYPE_IRIS + "_" + SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_IRIS_DOUBLE); + break; + case SBIConstant.PURPOSE_AUTH: + deviceHelper = (SBIIrisSingleHelper) mockService.getDeviceHelper(SBIConstant.MOSIP_BIOMETRIC_TYPE_IRIS + "_" + SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_IRIS_SINGLE); + break; + } + if (deviceHelper != null) + { + deviceHelper.resetDelayForMethod(); + deviceHelper.setDelayForMethod((type.equalsIgnoreCase(SBIConstant.MOSIP_BIOMETRIC_TYPE_BIOMTRIC_DEVICE) || type.equalsIgnoreCase(SBIConstant.MOSIP_BIOMETRIC_TYPE_IRIS)) ? method : null, Long.parseLong (delay)); + } + + response = SBIJsonInfo.getAdminApiErrorJson (lang, "0", ""); + } + } + } + catch (Exception ex) + { + response = SBIJsonInfo.getAdminApiErrorJson (lang, "999", ex.getLocalizedMessage() + ""); + LOGGER.error("processSetDelay", ex); + } + finally + { + } + return response; + } + + public String processSetProfileInfo (SBIMockService mockService) + { + String response = null; + String lang = "en"; + try + { + ProfileRequest requestObject = (ProfileRequest) getRequestJson (SBIConstant.MOSIP_ADMIN_API_PROFILE); + if (requestObject != null && requestObject.getProfileId() != null && requestObject.getProfileId().length() > 0) + { + mockService.setProfileId(requestObject.getProfileId()); + response = SBIJsonInfo.getAdminApiErrorJson (lang, "0", ""); + } + else + { + LOGGER.info("processSetProfileInfo :: ProfileId :: Was Not SET Check the JSON request :: " ); + mockService.setProfileId(SBIConstant.PROFILE_DEFAULT); + response = SBIJsonInfo.getAdminApiErrorJson (lang, "0", ""); + } + + LOGGER.info("processSetProfileInfo :: ProfileId :: "+ mockService.getProfileId ()); + } + catch (Exception ex) + { + response = SBIJsonInfo.getAdminApiErrorJson (lang, "999", ex.getLocalizedMessage() + ""); + LOGGER.error("processSetProfileInfo", ex); + } + finally + { + } + return response; + } + + private String processLiveStreamInfo(SBIMockService mockService, Socket socket) { + String response = null; + String lang = "en"; + SBIDeviceHelper deviceHelper = null; + try + { + if (mockService.getPurpose().equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_PURPOSE_AUTH))) + { + return SBIJsonInfo.getStreamErrorJson (lang, "601", ""); + } + + StreamingRequestDetail requestObject = (StreamingRequestDetail) getRequestJson (SBIConstant.MOSIP_STREAM_VERB); + String deviceId = requestObject.getDeviceId(); + int deviceSubId = Integer.parseInt(requestObject.getDeviceSubId()); + boolean isStreamTimeoutSet = false; + long timeout = 0; + if (requestObject.getTimeout() != null && requestObject.getTimeout().trim().length() != 0 && Long.parseLong(requestObject.getTimeout().trim()) > 0) + { + timeout = Long.parseLong(requestObject.getTimeout().trim()); + isStreamTimeoutSet = true; + } + + LOGGER.info("processLiveStreamInfo :: deviceId :: "+ deviceId + " :: deviceSubId ::" + deviceSubId); + + if (deviceId != null && deviceId.trim().length() == 0) + { + return SBIJsonInfo.getStreamErrorJson (lang, "604", ""); + } + + deviceHelper = getDeviceHelperForDeviceId (mockService, deviceId); + if (deviceHelper == null || deviceHelper.getDeviceInfo() == null) + { + return SBIJsonInfo.getStreamErrorJson (lang, "605", ""); + } + if (deviceHelper.getDeviceInfo() != null && !deviceHelper.getDeviceInfo().getPurpose().trim().equalsIgnoreCase(SBIConstant.PURPOSE_REGISTRATION)) + { + return SBIJsonInfo.getStreamErrorJson (lang, "606", ""); + } + if (deviceHelper.getDeviceInfo() != null && deviceHelper.getDeviceInfo().getDeviceStatus().trim().equalsIgnoreCase(SBIConstant.DEVICE_STATUS_NOTREGISTERED)) + { + return SBIJsonInfo.getStreamErrorJson (lang, "100", ""); + } + if (deviceHelper.getDeviceInfo() != null && deviceHelper.getDeviceInfo().getDeviceStatus().trim().equalsIgnoreCase(SBIConstant.DEVICE_STATUS_NOTREADY)) + { + return SBIJsonInfo.getStreamErrorJson (lang, "110", ""); + } + if (deviceHelper.getDeviceInfo() != null && deviceHelper.getDeviceInfo().getDeviceStatus().trim().equalsIgnoreCase(SBIConstant.DEVICE_STATUS_ISBUSY)) + { + return SBIJsonInfo.getStreamErrorJson (lang, "111", ""); + } + if (deviceHelper.getDeviceInfo() != null && !deviceHelper.getDeviceInfo().getDeviceStatus().trim().equalsIgnoreCase(SBIConstant.DEVICE_STATUS_ISREADY)) + { + return SBIJsonInfo.getStreamErrorJson (lang, "607", ""); + } + + deviceHelper.setDeviceStatus(SBIConstant.DEVICE_STATUS_ISBUSY); + deviceHelper.initDevice(); + deviceHelper.setDeviceId(deviceId); + deviceHelper.setDeviceSubId(deviceSubId); + deviceHelper.getCaptureInfo().setLiveStreamStarted(true); + renderMainHeaderData (socket); + int returnCode = -1; + + long startTime = System.currentTimeMillis(); + long endTime = startTime + timeout; + boolean streamTimeOut = false; + + long delay = deviceHelper.getDelayForMethod(SBIConstant.MOSIP_METHOD_STREAM); + while (true) + { + delay(delay); + if (isStreamTimeoutSet && System.currentTimeMillis () > endTime) + { + streamTimeOut = true; + break; + } + + if (deviceHelper.getCaptureInfo () == null) + { + response = "ok"; + break; + } + + try + { + // acquiring the lock + if (semaphore != null) + semaphore.acquire(); + + returnCode = deviceHelper.getLiveStream(); + + if (returnCode < 0) + break; + if (returnCode != 0) + continue; + } + catch (Exception ex) + { } + finally + { + try + { + if (semaphore != null) + semaphore.release(); + } + catch (Exception ex) + { } + } + + if (deviceHelper.getCaptureInfo() != null && deviceHelper.getCaptureInfo().getImage() != null) + { + try + { + renderJPGImageData (socket, deviceHelper.getCaptureInfo().getImage()); + } + catch (Exception ex) + { + LOGGER.error ("processLiveStreamInfo :: Exception ::", ex); + break; + } + } + + Thread.sleep (30); + } + if (deviceHelper.getCaptureInfo() != null) + { + deviceHelper.deInitDevice(); + deviceHelper.setDeviceStatus(SBIConstant.DEVICE_STATUS_ISREADY); + } + if (streamTimeOut) + response = SBIJsonInfo.getStreamErrorJson (lang, "609", ""); + else + response = SBIJsonInfo.getStreamErrorJson (lang, "0", ""); + } + catch (Exception ex) + { + response = SBIJsonInfo.getStreamErrorJson (lang, "610", ex.getLocalizedMessage()); + LOGGER.error("processLiveStreamInfo", ex); + } + finally + { + try + { + if (semaphore != null) + semaphore.release (); + } + catch (Exception ex) + { + } + } + return response; + } + + private String processRCaptureInfo(SBIMockService mockService) { + String response = null; + String lang = "en"; + String specVersion = ""; + SBIDeviceHelper deviceHelper = null; + try + { + if (!mockService.getPurpose().equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_PURPOSE_REGISTRATION))) + { + return SBIJsonInfo.getCaptureErrorJson (specVersion, lang, "709", "", true); + } + + String deviceId = "", deviceType = "", env = ""; + int deviceSubId = 0; + CaptureRequestDto requestObject = (CaptureRequestDto) getRequestJson (SBIConstant.MOSIP_RCAPTURE_VERB); + List mosipBioRequest = null; + // if Null Throw Errors here + if (requestObject != null) + { + mosipBioRequest = requestObject.getBio(); + if (mosipBioRequest != null && mosipBioRequest.size() > 0) + { + deviceId = requestObject.getBio().get(0).getDeviceId(); + deviceSubId = Integer.parseInt(requestObject.getBio().get(0).getDeviceSubId()); + deviceType = requestObject.getBio().get(0).getType(); + env = requestObject.getEnv(); + } + } + + LOGGER.info("processRCaptureInfo :: deviceId :: "+ deviceId + " :: deviceSubId ::" + deviceSubId); + if (env == null || env.trim().length() == 0) + { + return SBIJsonInfo.getCaptureErrorJson (specVersion, lang, "115", "", false); + } + else if (env != null && env.trim().length() > 0 && !(env.trim().equalsIgnoreCase(SBIConstant.ENVIRONMENT_STAGING) || env.trim().equalsIgnoreCase(SBIConstant.ENVIRONMENT_DEVELOPER) || env.trim().equalsIgnoreCase(SBIConstant.ENVIRONMENT_PRE_PRODUCTION) || env.trim().equalsIgnoreCase(SBIConstant.ENVIRONMENT_PRODUCTION))) + { + return SBIJsonInfo.getCaptureErrorJson (specVersion, lang, "115", "", false); + } + + if (deviceId != null && deviceId.trim().length() == 0) + { + //return SBIJsonInfo.getErrorJson (lang, "704", ""); + return SBIJsonInfo.getCaptureErrorJson (specVersion, lang, "704", "", true); + } + if (deviceType == null || deviceType.trim().length() == 0) + { + return SBIJsonInfo.getCaptureErrorJson (specVersion, lang, "114", "", false); + } + + if (deviceType != null && deviceType.trim().length() > 0 && + !( + deviceType.trim().equalsIgnoreCase(SBIConstant.MOSIP_BIOMETRIC_TYPE_FINGER) || + deviceType.trim().equalsIgnoreCase(SBIConstant.MOSIP_BIOMETRIC_TYPE_IRIS) || + deviceType.trim().equalsIgnoreCase(SBIConstant.MOSIP_BIOMETRIC_TYPE_FACE)) + ) + { + return SBIJsonInfo.getCaptureErrorJson (specVersion, lang, "114", "", false); + } + + deviceHelper = getDeviceHelperForDeviceId (mockService, deviceId); + if (deviceHelper == null || deviceHelper.getDeviceInfo() == null) + { + return SBIJsonInfo.getCaptureErrorJson (specVersion, lang, "705", "", true); + } + if (deviceType != null && deviceHelper.getDeviceType().equalsIgnoreCase(deviceType.trim()) == false) + { + return SBIJsonInfo.getCaptureErrorJson (specVersion, lang, "112", "", false); + } + + if (deviceHelper.getDeviceInfo() != null && !deviceHelper.getDeviceInfo().getPurpose().trim().equalsIgnoreCase(SBIConstant.PURPOSE_REGISTRATION)) + { + return SBIJsonInfo.getCaptureErrorJson (specVersion, lang, "706", "", true); + } + if (deviceHelper.getCaptureInfo() != null && + (!deviceHelper.getDeviceId().trim().equalsIgnoreCase(deviceId) && + deviceHelper.getDeviceSubId() != deviceSubId)) + { + return SBIJsonInfo.getCaptureErrorJson (specVersion, lang, "702", "", true); + } + + if (deviceHelper.getDeviceInfo() != null && deviceHelper.getDeviceInfo().getDeviceStatus().trim().equalsIgnoreCase(SBIConstant.DEVICE_STATUS_NOTREGISTERED)) + { + return SBIJsonInfo.getCaptureErrorJson (specVersion, lang, "100", "", true); + } + if (deviceHelper.getDeviceInfo() != null && deviceHelper.getDeviceInfo().getDeviceStatus().trim().equalsIgnoreCase(SBIConstant.DEVICE_STATUS_NOTREADY)) + { + return SBIJsonInfo.getCaptureErrorJson (specVersion, lang, "110", "", true); + } + + String bioType = mosipBioRequest.get(0).getType(); + String [] bioException = mosipBioRequest.get(0).getException();// Bio exceptions + String [] bioSubtype = mosipBioRequest.get(0).getBioSubType();// Bio subtype + int count = mosipBioRequest.get(0).getCount(); + int exceptionCount = (bioException != null ? bioException.length : 0); + int bioSubtypeCount = (bioSubtype != null ? bioSubtype.length : 0); + + /* + if (count <= 0) + return SBIJsonInfo.getCaptureErrorJson (specVersion, lang, "116", "", true); + + if (bioException != null && !isValidBioExceptionValues(bioException)) + return SBIJsonInfo.getCaptureErrorJson (specVersion, lang, "117", "", true); + + if (bioSubtype != null && !isValidBioSubtypeValues(bioSubtype)) + return SBIJsonInfo.getCaptureErrorJson (specVersion, lang, "119", "", true); + + if (bioType.equals(SBIConstant.MOSIP_BIOMETRIC_TYPE_FACE)) + { + if (count != 1)// Max Face Count = 1 + return SBIJsonInfo.getCaptureErrorJson (specVersion, lang, "116", "", true); + } + else if (bioType.equals(SBIConstant.MOSIP_BIOMETRIC_TYPE_IRIS)) + { + //here max count can be 2 for deviceSubId = 3 + if (deviceSubId == SBIConstant.DEVICE_IRIS_SUB_TYPE_ID_LEFT && count != 1) + return SBIJsonInfo.getCaptureErrorJson (specVersion, lang, "116", "", true); + else if (deviceSubId == SBIConstant.DEVICE_IRIS_SUB_TYPE_ID_RIGHT && count != 1) + return SBIJsonInfo.getCaptureErrorJson (specVersion, lang, "116", "", true); + else if (deviceSubId == SBIConstant.DEVICE_IRIS_SUB_TYPE_ID_BOTH) + { + if (exceptionCount == 0 && count != 2) + return SBIJsonInfo.getCaptureErrorJson (specVersion, lang, "116", "", true); + else if (exceptionCount == 1 && count != 1) + return SBIJsonInfo.getCaptureErrorJson (specVersion, lang, "116", "", true); + else if (exceptionCount >= 2) + return SBIJsonInfo.getCaptureErrorJson (specVersion, lang, "116", "", true); + } + } + else if (bioType.equals(SBIConstant.MOSIP_BIOMETRIC_TYPE_FINGER)) + { + if (!(finalCount <= 4) && deviceSubId == SBIConstant.DEVICE_FINGER_SLAP_SUB_TYPE_ID_LEFT) + return SBIJsonInfo.getCaptureErrorJson (specVersion, lang, "116", "", true); + else if (!(finalCount <= 4) && deviceSubId == SBIConstant.DEVICE_FINGER_SLAP_SUB_TYPE_ID_RIGHT) + return SBIJsonInfo.getCaptureErrorJson (specVersion, lang, "116", "", true); + else if (!(finalCount <= 2) && deviceSubId == SBIConstant.DEVICE_FINGER_SLAP_SUB_TYPE_ID_THUMB) + return SBIJsonInfo.getCaptureErrorJson (specVersion, lang, "116", "", true); + } + */ + if (deviceHelper.getDeviceInfo() != null && deviceHelper.getDeviceInfo().getDeviceStatus().trim().equalsIgnoreCase(SBIConstant.DEVICE_STATUS_ISREADY)) + { + deviceHelper.initDevice(); + deviceHelper.setDeviceId(deviceId); + deviceHelper.setDeviceSubId(deviceSubId); + deviceHelper.setDeviceStatus(SBIConstant.DEVICE_STATUS_ISBUSY); + } + else if (deviceHelper.getDeviceInfo() != null && deviceHelper.getDeviceInfo().getDeviceStatus().trim().equalsIgnoreCase(SBIConstant.DEVICE_STATUS_ISBUSY)) + { + if (deviceHelper.getCaptureInfo().isCaptureStarted()) + return SBIJsonInfo.getCaptureErrorJson (specVersion, lang, "703", "", true); + } + + int timeout = Integer.parseInt(requestObject.getTimeout()+ ""); + int requestScore = Integer.parseInt(mosipBioRequest.get(0).getRequestedScore() + ""); + + specVersion = requestObject.getSpecVersion(); + int returnCode = -1; + long startTime = System.currentTimeMillis(); + long endTime = startTime + timeout; + boolean captureStarted = false; + boolean captureTimeOut = false; + boolean captureLiveStreamEnded = false; + long delay = deviceHelper.getDelayForMethod(SBIConstant.MOSIP_METHOD_RCAPTURE); + while (true) + { + if (!captureStarted) + { + deviceHelper.setProfileId(mockService.getProfileId()); + + if (bioException != null && !bioType.equals(SBIConstant.MOSIP_BIOMETRIC_TYPE_FACE)) + deviceHelper.getCaptureInfo().getBioExceptionInfo().initBioException(bioException); + + deviceHelper.getCaptureInfo().setRequestScore(requestScore); + deviceHelper.getCaptureInfo().setCaptureStarted(true); + captureStarted = true; + } + delay(delay); + try + { + if (System.currentTimeMillis () > endTime) + { + captureTimeOut = true; + break; + } + // acquiring the lock + if (semaphore != null) + semaphore.acquire(); + + if (deviceHelper.getCaptureInfo() == null) + { + captureLiveStreamEnded = true; + break; + } + + returnCode = deviceHelper.getBioCapture(false); + + if (deviceHelper.getCaptureInfo() != null && deviceHelper.getCaptureInfo().isCaptureCompleted()) + { + break; + } + } + catch (Exception ex) + { } + finally + { + try + { + if (semaphore != null) + semaphore.release(); + } + catch (Exception ex) + { } + } + + Thread.sleep (30); + } + + if (captureLiveStreamEnded) + { + response = SBIJsonInfo.getCaptureErrorJson (specVersion, lang, "700", "", true); + } + else if (captureTimeOut) + { + response = SBIJsonInfo.getCaptureErrorJson (specVersion, lang, "701", "", true); + if (deviceHelper.getCaptureInfo() == null) + deviceHelper.getCaptureInfo().setCaptureCompleted(true); + } + else + { + List biometrics = getBioMetricsDtoList (lang, requestObject, deviceHelper, deviceSubId, false); + if (biometrics != null && biometrics.size() > 0) + { + RCaptureResponse captureResponse = new RCaptureResponse (); + captureResponse.setBiometrics(biometrics); + + ObjectMapper mapper = new ObjectMapper (); + SerializationConfig config = mapper.getSerializationConfig(); + config.setSerializationInclusion(Inclusion.NON_NULL); + mapper.setSerializationConfig(config); + + response = mapper.writeValueAsString(captureResponse); + } + else + { + response = SBIJsonInfo.getCaptureErrorJson (specVersion, lang, "708", "", true); + } + + deviceHelper.deInitDevice(); + deviceHelper.setDeviceStatus(SBIConstant.DEVICE_STATUS_ISREADY); + } + + if (deviceHelper.getCaptureInfo() != null) + { + deviceHelper.getCaptureInfo().getBioExceptionInfo().deInitBioException(); + // When Capture is called After LiveStreaming is called + // DeInit is called in Livestream method + if (deviceHelper.getCaptureInfo().isLiveStreamStarted()) + { + deviceHelper.getCaptureInfo().setCaptureStarted(false); + deviceHelper.getCaptureInfo().setCaptureCompleted(true); + } + // DeInit When Capture is called Directly + else + { + deviceHelper.deInitDevice(); + deviceHelper.setDeviceStatus(SBIConstant.DEVICE_STATUS_ISREADY); + } + } + } + catch (Exception ex) + { + response = SBIJsonInfo.getCaptureErrorJson (specVersion, lang, "710", "", true); + LOGGER.error("processRCaptureInfo", ex); + } + finally + { + try + { + if (semaphore != null) + semaphore.release (); + } + catch (Exception ex) + { + } + } + return response; + } + + private String processCaptureInfo(SBIMockService mockService) { + String response = null; + String lang = "en"; + String specVersion = ""; + SBIDeviceHelper deviceHelper = null; + try + { + if (!mockService.getPurpose().equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_PURPOSE_AUTH))) + { + return SBIJsonInfo.getCaptureErrorJson (specVersion, lang, "809", "", false); + } + + String deviceId = "", deviceType = "", env = ""; + int deviceSubId = 0; + CaptureRequestDto requestObject = (CaptureRequestDto) getRequestJson (SBIConstant.MOSIP_RCAPTURE_VERB); + List mosipBioRequest = null; + // if Null Throw Errors here + if (requestObject != null) + { + mosipBioRequest = requestObject.getBio(); + if (mosipBioRequest != null && mosipBioRequest.size() > 0) + { + deviceId = requestObject.getBio().get(0).getDeviceId(); + deviceSubId = Integer.parseInt(requestObject.getBio().get(0).getDeviceSubId()); + deviceType = requestObject.getBio().get(0).getType(); + env = requestObject.getEnv(); + } + } + + LOGGER.info("processCaptureInfo :: deviceId :: "+ deviceId + " :: deviceSubId ::" + deviceSubId); + + if (env == null || env.trim().length() == 0) + { + return SBIJsonInfo.getCaptureErrorJson (specVersion, lang, "115", "", false); + } + else if (env != null && env.trim().length() > 0 && !(env.trim().equalsIgnoreCase(SBIConstant.ENVIRONMENT_STAGING) || env.trim().equalsIgnoreCase(SBIConstant.ENVIRONMENT_DEVELOPER) || env.trim().equalsIgnoreCase(SBIConstant.ENVIRONMENT_PRE_PRODUCTION) || env.trim().equalsIgnoreCase(SBIConstant.ENVIRONMENT_PRODUCTION))) + { + return SBIJsonInfo.getCaptureErrorJson (specVersion, lang, "115", "", false); + } + + if (deviceId == null || deviceId.trim().length() == 0) + { + return SBIJsonInfo.getCaptureErrorJson (specVersion, lang, "804", "", false); + } + if (deviceType == null || deviceType.trim().length() == 0) + { + return SBIJsonInfo.getCaptureErrorJson (specVersion, lang, "114", "", false); + } + + if (deviceType != null && deviceType.trim().length() > 0 && + !( + deviceType.trim().equalsIgnoreCase(SBIConstant.MOSIP_BIOMETRIC_TYPE_FINGER) || + deviceType.trim().equalsIgnoreCase(SBIConstant.MOSIP_BIOMETRIC_TYPE_IRIS) || + deviceType.trim().equalsIgnoreCase(SBIConstant.MOSIP_BIOMETRIC_TYPE_FACE)) + ) + { + return SBIJsonInfo.getCaptureErrorJson (specVersion, lang, "114", "", false); + } + + deviceHelper = getDeviceHelperForDeviceId (mockService, deviceId); + if (deviceHelper == null || deviceHelper.getDeviceInfo() == null) + { + return SBIJsonInfo.getCaptureErrorJson (specVersion, lang, "805", "", false); + } + if (deviceType != null && deviceHelper.getDeviceType().equalsIgnoreCase(deviceType.trim()) == false) + { + return SBIJsonInfo.getCaptureErrorJson (specVersion, lang, "112", "", false); + } + + if (deviceHelper.getDeviceInfo() != null && !deviceHelper.getDeviceInfo().getPurpose().trim().equalsIgnoreCase(SBIConstant.PURPOSE_AUTH)) + { + return SBIJsonInfo.getCaptureErrorJson (specVersion, lang, "806", "", false); + } + if (deviceHelper.getDeviceInfo() != null && deviceHelper.getDeviceInfo().getDeviceStatus().trim().equalsIgnoreCase(SBIConstant.DEVICE_STATUS_NOTREGISTERED)) + { + return SBIJsonInfo.getCaptureErrorJson (specVersion, lang, "100", "", false); + } + if (deviceHelper.getDeviceInfo() != null && deviceHelper.getDeviceInfo().getDeviceStatus().trim().equalsIgnoreCase(SBIConstant.DEVICE_STATUS_NOTREADY)) + { + return SBIJsonInfo.getCaptureErrorJson (specVersion, lang, "110", "", false); + } + if (deviceHelper.getDeviceInfo() != null && deviceHelper.getDeviceInfo().getDeviceStatus().trim().equalsIgnoreCase(SBIConstant.DEVICE_STATUS_ISBUSY)) + { + return SBIJsonInfo.getCaptureErrorJson (specVersion, lang, "111", "", false); + } + + String bioType = mosipBioRequest.get(0).getType(); + String [] bioSubType = mosipBioRequest.get(0).getBioSubType();// Bio Subtype + int timeout = Integer.parseInt(requestObject.getTimeout()+ ""); + int requestScore = Integer.parseInt(mosipBioRequest.get(0).getRequestedScore() + ""); + int bioCount = Integer.parseInt(mosipBioRequest.get(0).getCount() + ""); + + if (deviceType != null) + { + if ((bioCount < 0 || bioCount > 10) && deviceType.trim().equalsIgnoreCase(SBIConstant.MOSIP_BIOMETRIC_TYPE_FINGER)) + return SBIJsonInfo.getCaptureErrorJson (specVersion, lang, "113", "", false); + if ((bioCount < 0 || bioCount > 2) && deviceType.trim().equalsIgnoreCase(SBIConstant.MOSIP_BIOMETRIC_TYPE_IRIS)) + return SBIJsonInfo.getCaptureErrorJson (specVersion, lang, "113", "", false); + if ((bioCount < 0 || bioCount > 1) && deviceType.trim().equalsIgnoreCase(SBIConstant.MOSIP_BIOMETRIC_TYPE_FACE)) + return SBIJsonInfo.getCaptureErrorJson (specVersion, lang, "113", "", false); + } + + if (deviceHelper.getDeviceInfo() != null && deviceHelper.getDeviceInfo().getDeviceStatus().trim().equalsIgnoreCase(SBIConstant.DEVICE_STATUS_ISREADY)) + { + deviceHelper.initDevice(); + deviceHelper.setDeviceId(deviceId); + deviceHelper.setDeviceSubId(deviceSubId); + deviceHelper.setDeviceStatus(SBIConstant.DEVICE_STATUS_ISBUSY); + } + else if (deviceHelper.getDeviceInfo() != null && deviceHelper.getDeviceInfo().getDeviceStatus().trim().equalsIgnoreCase(SBIConstant.DEVICE_STATUS_ISBUSY)) + { + if (deviceHelper.getCaptureInfo().isCaptureStarted()) + return SBIJsonInfo.getCaptureErrorJson (specVersion, lang, "803", "", false); + } + + specVersion = requestObject.getSpecVersion(); + int returnCode = -1; + long startTime = System.currentTimeMillis(); + long endTime = startTime + timeout; + boolean captureStarted = false; + boolean captureTimeOut = false; + boolean captureLiveStreamEnded = false; + long delay = deviceHelper.getDelayForMethod(SBIConstant.MOSIP_METHOD_CAPTURE); + + while (true) + { + if (!captureStarted) + { + deviceHelper.setProfileId(mockService.getProfileId()); + + deviceHelper.getCaptureInfo().setBioCount(bioCount); + deviceHelper.getCaptureInfo().setBioSubType(bioSubType); + deviceHelper.getCaptureInfo().setRequestScore(requestScore); + deviceHelper.getCaptureInfo().setCaptureStarted(true); + captureStarted = true; + } + delay(delay); + try + { + if (System.currentTimeMillis () > endTime) + { + captureTimeOut = true; + break; + } + // acquiring the lock + if (semaphore != null) + semaphore.acquire(); + + if (deviceHelper.getCaptureInfo() == null) + { + captureLiveStreamEnded = true; + break; + } + + returnCode = deviceHelper.getBioCapture(true); + + if (deviceHelper.getCaptureInfo() != null && deviceHelper.getCaptureInfo().isCaptureCompleted()) + { + break; + } + } + catch (Exception ex) + { } + finally + { + try + { + if (semaphore != null) + semaphore.release(); + } + catch (Exception ex) + { } + } + + Thread.sleep (30); + } + + if (captureLiveStreamEnded) + { + response = SBIJsonInfo.getCaptureErrorJson (specVersion, lang, "800", "", false); + } + else if (captureTimeOut) + { + response = SBIJsonInfo.getCaptureErrorJson (specVersion, lang, "801", "", false); + if (deviceHelper.getCaptureInfo() == null) + deviceHelper.getCaptureInfo().setCaptureCompleted(true); + } + else + { + List biometrics = getBioMetricsDtoList (lang, requestObject, deviceHelper, deviceSubId, true); + if (biometrics != null && biometrics.size() > 0) + { + RCaptureResponse captureResponse = new RCaptureResponse (); + captureResponse.setBiometrics(biometrics); + + ObjectMapper mapper = new ObjectMapper (); + SerializationConfig config = mapper.getSerializationConfig(); + config.setSerializationInclusion(Inclusion.NON_NULL); + mapper.setSerializationConfig(config); + + response = mapper.writeValueAsString(captureResponse); + } + else + { + response = SBIJsonInfo.getCaptureErrorJson (specVersion, lang, "708", "", false); + } + + deviceHelper.deInitDevice(); + deviceHelper.setDeviceStatus(SBIConstant.DEVICE_STATUS_ISREADY); + } + + if (deviceHelper.getCaptureInfo() != null) + { + deviceHelper.getCaptureInfo().getBioExceptionInfo().deInitBioException(); + // When Capture is called After LiveStreaming is called + // DeInit is called in Livestream method + if (deviceHelper.getCaptureInfo().isLiveStreamStarted()) + { + deviceHelper.getCaptureInfo().setCaptureStarted(false); + deviceHelper.getCaptureInfo().setCaptureCompleted(true); + } + // DeInit When Capture is called Directly + else + { + deviceHelper.deInitDevice(); + deviceHelper.setDeviceStatus(SBIConstant.DEVICE_STATUS_ISREADY); + } + } + } + catch (Exception ex) + { + response = SBIJsonInfo.getCaptureErrorJson (specVersion, lang, "810", "", false); + LOGGER.error("processCaptureInfo", ex); + } + finally + { + try + { + if (semaphore != null) + semaphore.release (); + } + catch (Exception ex) + { + } + } + return response; + } + + private List getBioMetricsDtoList (String lang, CaptureRequestDto requestObject, SBIDeviceHelper deviceHelper, int deviceSubId, boolean isForAuthenication) throws JsonGenerationException, JsonMappingException, IOException, NoSuchAlgorithmException, DecoderException + { + List biometrics = new ArrayList (); + String specVersion = requestObject.getSpecVersion(); + String transactionId = requestObject.getTransactionId(); + int captureScore = deviceHelper.getQualityScore(); // SET MANUALLY + int requestScore = requestObject.getBio().get(0).getRequestedScore(); + int bioCount = requestObject.getBio().get(0).getCount(); + String bioType = requestObject.getBio().get(0).getType(); + String [] bioExceptions = requestObject.getBio().get(0).getException();// Bio exceptions + String [] bioSubType = requestObject.getBio().get(0).getBioSubType();// Bio SubTypes + + String previousHash = requestObject.getBio().get(0).getPreviousHash(); + if (!isForAuthenication) + { + // For Finger Slap + if (deviceHelper.getDigitalId().getType().equalsIgnoreCase(SBIConstant.MOSIP_BIOMETRIC_TYPE_FINGER) && + deviceHelper.getDigitalId().getDeviceSubType().equalsIgnoreCase(SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_FINGER_SLAP)) + { + SBIFingerSlapCaptureInfo captureInfo = (SBIFingerSlapCaptureInfo)deviceHelper.getCaptureInfo(); + SBIFingerSlapBioExceptionInfo bioExceptionInfo = (SBIFingerSlapBioExceptionInfo)deviceHelper.getCaptureInfo().getBioExceptionInfo(); + switch (deviceSubId) + { + case SBIConstant.DEVICE_FINGER_SLAP_SUB_TYPE_ID_LEFT: + if (bioExceptionInfo.getChkMissingLeftIndex() == SBICheckState.Unchecked) + { + if (captureInfo.getBioValueLI() != null && captureInfo.getBioValueLI().length() > 0) + { + BioMetricsDto bioDto = getBiometricData (transactionId, requestObject, deviceHelper, previousHash, bioType, SBIConstant.BIO_NAME_LEFT_INDEX, + captureInfo.getBioValueLI(), captureInfo.getCaptureScoreLI(), requestScore, "", "0", isForAuthenication); + if (bioDto != null) + { + biometrics.add(bioDto); + previousHash = bioDto.getHash(); + } + } + else + { + BioMetricsDto bioDto = getBiometricErrorData (lang, specVersion, isForAuthenication); + if (bioDto != null) + { + biometrics.add (bioDto); + previousHash = bioDto.getHash(); + } + } + } + if (bioExceptionInfo.getChkMissingLeftMiddle() == SBICheckState.Unchecked) + { + if (captureInfo.getBioValueLM() != null && captureInfo.getBioValueLM().length() > 0) + { + BioMetricsDto bioDto = getBiometricData (transactionId, requestObject, deviceHelper, previousHash, bioType, SBIConstant.BIO_NAME_LEFT_MIDDLE, + captureInfo.getBioValueLM(), captureInfo.getCaptureScoreLM(), requestScore, "", "0", isForAuthenication); + if (bioDto != null) + { + biometrics.add(bioDto); + previousHash = bioDto.getHash(); + } + } + else + { + BioMetricsDto bioDto = getBiometricErrorData (lang, specVersion, isForAuthenication); + if (bioDto != null) + { + biometrics.add (bioDto); + previousHash = bioDto.getHash(); + } + } + } + if (bioExceptionInfo.getChkMissingLeftRing() == SBICheckState.Unchecked) + { + if (captureInfo.getBioValueLR() != null && captureInfo.getBioValueLR().length() > 0) + { + BioMetricsDto bioDto = getBiometricData (transactionId, requestObject, deviceHelper, previousHash, bioType, SBIConstant.BIO_NAME_LEFT_RING, + captureInfo.getBioValueLR(), captureInfo.getCaptureScoreLR(), requestScore, "", "0", isForAuthenication); + if (bioDto != null) + { + biometrics.add(bioDto); + previousHash = bioDto.getHash(); + } + } + else + { + BioMetricsDto bioDto = getBiometricErrorData (lang, specVersion, isForAuthenication); + if (bioDto != null) + { + biometrics.add (bioDto); + previousHash = bioDto.getHash(); + } + } + } + if (bioExceptionInfo.getChkMissingLeftLittle() == SBICheckState.Unchecked) + { + if (captureInfo.getBioValueLL() != null && captureInfo.getBioValueLL().length() > 0) + { + BioMetricsDto bioDto = getBiometricData (transactionId, requestObject, deviceHelper, previousHash, bioType, SBIConstant.BIO_NAME_LEFT_LITTLE, + captureInfo.getBioValueLL(), captureInfo.getCaptureScoreLL(), requestScore, "", "0", isForAuthenication); + if (bioDto != null) + { + biometrics.add(bioDto); + previousHash = bioDto.getHash(); + } + } + else + { + BioMetricsDto bioDto = getBiometricErrorData (lang, specVersion, isForAuthenication); + if (bioDto != null) + { + biometrics.add (bioDto); + previousHash = bioDto.getHash(); + } + } + } + break; + case SBIConstant.DEVICE_FINGER_SLAP_SUB_TYPE_ID_RIGHT: + if (bioExceptionInfo.getChkMissingRightIndex() == SBICheckState.Unchecked) + { + if (captureInfo.getBioValueRI() != null && captureInfo.getBioValueRI().length() > 0) + { + BioMetricsDto bioDto = getBiometricData (transactionId, requestObject, deviceHelper, previousHash, bioType, SBIConstant.BIO_NAME_RIGHT_INDEX, + captureInfo.getBioValueRI(), captureInfo.getCaptureScoreRI(), requestScore, "", "0", isForAuthenication); + if (bioDto != null) + { + biometrics.add(bioDto); + previousHash = bioDto.getHash(); + } + } + else + { + BioMetricsDto bioDto = getBiometricErrorData (lang, specVersion, isForAuthenication); + if (bioDto != null) + { + biometrics.add (bioDto); + previousHash = bioDto.getHash(); + } + } + } + if (bioExceptionInfo.getChkMissingRightMiddle() == SBICheckState.Unchecked) + { + if (captureInfo.getBioValueRM() != null && captureInfo.getBioValueRM().length() > 0) + { + BioMetricsDto bioDto = getBiometricData (transactionId, requestObject, deviceHelper, previousHash, bioType, SBIConstant.BIO_NAME_RIGHT_MIDDLE, + captureInfo.getBioValueRM(), captureInfo.getCaptureScoreRM(), requestScore, "", "0", isForAuthenication); + if (bioDto != null) + { + biometrics.add(bioDto); + previousHash = bioDto.getHash(); + } + } + else + { + BioMetricsDto bioDto = getBiometricErrorData (lang, specVersion, isForAuthenication); + if (bioDto != null) + { + biometrics.add (bioDto); + previousHash = bioDto.getHash(); + } + } + } + if (bioExceptionInfo.getChkMissingRightRing() == SBICheckState.Unchecked) + { + if (captureInfo.getBioValueRR() != null && captureInfo.getBioValueRR().length() > 0) + { + BioMetricsDto bioDto = getBiometricData (transactionId, requestObject, deviceHelper, previousHash, bioType, SBIConstant.BIO_NAME_RIGHT_RING, + captureInfo.getBioValueRR(), captureInfo.getCaptureScoreRR(), requestScore, "", "0", isForAuthenication); + if (bioDto != null) + { + biometrics.add(bioDto); + previousHash = bioDto.getHash(); + } + } + else + { + BioMetricsDto bioDto = getBiometricErrorData (lang, specVersion, isForAuthenication); + if (bioDto != null) + { + biometrics.add (bioDto); + previousHash = bioDto.getHash(); + } + } + } + if (bioExceptionInfo.getChkMissingRightLittle() == SBICheckState.Unchecked) + { + if (captureInfo.getBioValueRL() != null && captureInfo.getBioValueRL().length() > 0) + { + BioMetricsDto bioDto = getBiometricData (transactionId, requestObject, deviceHelper, previousHash, bioType, SBIConstant.BIO_NAME_RIGHT_LITTLE, + captureInfo.getBioValueRL(), captureInfo.getCaptureScoreRL(), requestScore, "", "0", isForAuthenication); + if (bioDto != null) + { + biometrics.add(bioDto); + previousHash = bioDto.getHash(); + } + } + else + { + BioMetricsDto bioDto = getBiometricErrorData (lang, specVersion, isForAuthenication); + if (bioDto != null) + { + biometrics.add (bioDto); + previousHash = bioDto.getHash(); + } + } + } + break; + case SBIConstant.DEVICE_FINGER_SLAP_SUB_TYPE_ID_THUMB: + if (bioExceptionInfo.getChkMissingLeftThumb() == SBICheckState.Unchecked) + { + if (captureInfo.getBioValueLT() != null && captureInfo.getBioValueLT().length() > 0) + { + BioMetricsDto bioDto = getBiometricData (transactionId, requestObject, deviceHelper, previousHash, bioType, SBIConstant.BIO_NAME_LEFT_THUMB, + captureInfo.getBioValueLT(), captureInfo.getCaptureScoreLT(), requestScore, "", "0", isForAuthenication); + if (bioDto != null) + { + biometrics.add(bioDto); + previousHash = bioDto.getHash(); + } + } + else + { + BioMetricsDto bioDto = getBiometricErrorData (lang, specVersion, isForAuthenication); + if (bioDto != null) + { + biometrics.add (bioDto); + previousHash = bioDto.getHash(); + } + } + } + if (bioExceptionInfo.getChkMissingRightThumb() == SBICheckState.Unchecked) + { + if (captureInfo.getBioValueRT() != null && captureInfo.getBioValueRT().length() > 0) + { + BioMetricsDto bioDto = getBiometricData (transactionId, requestObject, deviceHelper, previousHash, bioType, SBIConstant.BIO_NAME_RIGHT_THUMB, + captureInfo.getBioValueRT(), captureInfo.getCaptureScoreRT(), requestScore, "", "0", isForAuthenication); + if (bioDto != null) + { + biometrics.add(bioDto); + previousHash = bioDto.getHash(); + } + } + else + { + BioMetricsDto bioDto = getBiometricErrorData (lang, specVersion, isForAuthenication); + if (bioDto != null) + { + biometrics.add (bioDto); + previousHash = bioDto.getHash(); + } + } + } + break; + } + } + // For IRIS DOUBLE + else if (deviceHelper.getDigitalId().getType().equalsIgnoreCase(SBIConstant.MOSIP_BIOMETRIC_TYPE_IRIS) && + deviceHelper.getDigitalId().getDeviceSubType().equalsIgnoreCase(SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_IRIS_DOUBLE)) + { + SBIIrisDoubleCaptureInfo captureInfo = (SBIIrisDoubleCaptureInfo)deviceHelper.getCaptureInfo(); + SBIIrisDoubleBioExceptionInfo bioExceptionInfo = (SBIIrisDoubleBioExceptionInfo)deviceHelper.getCaptureInfo().getBioExceptionInfo(); + + switch(deviceSubId) + { + case SBIConstant.DEVICE_IRIS_DOUBLE_SUB_TYPE_ID_LEFT: + if (bioExceptionInfo.getChkMissingLeftIris() == SBICheckState.Unchecked) + { + if (captureInfo.getBioValueLI() != null && captureInfo.getBioValueLI().length() > 0) + { + BioMetricsDto bioDto = getBiometricData (transactionId, requestObject, deviceHelper, previousHash, bioType, SBIConstant.BIO_NAME_LEFT_IRIS, + captureInfo.getBioValueLI(), captureInfo.getCaptureScoreLI(), requestScore, "", "0", isForAuthenication); + if (bioDto != null) + { + biometrics.add(bioDto); + previousHash = bioDto.getHash(); + } + } + else + { + BioMetricsDto bioDto = getBiometricErrorData (lang, specVersion, isForAuthenication); + if (bioDto != null) + { + biometrics.add (bioDto); + previousHash = bioDto.getHash(); + } + } + } + break; + case SBIConstant.DEVICE_IRIS_DOUBLE_SUB_TYPE_ID_RIGHT: + if (bioExceptionInfo.getChkMissingRightIris() == SBICheckState.Unchecked) + { + if (captureInfo.getBioValueRI() != null && captureInfo.getBioValueRI().length() > 0) + { + BioMetricsDto bioDto = getBiometricData (transactionId, requestObject, deviceHelper, previousHash, bioType, SBIConstant.BIO_NAME_RIGHT_IRIS, + captureInfo.getBioValueRI(), captureInfo.getCaptureScoreRI(), requestScore, "", "0", isForAuthenication); + if (bioDto != null) + { + biometrics.add(bioDto); + previousHash = bioDto.getHash(); + } + } + else + { + BioMetricsDto bioDto = getBiometricErrorData (lang, specVersion, isForAuthenication); + if (bioDto != null) + { + biometrics.add (bioDto); + previousHash = bioDto.getHash(); + } + } + } + break; + case SBIConstant.DEVICE_IRIS_DOUBLE_SUB_TYPE_ID_BOTH: + + if (bioExceptionInfo.getChkMissingLeftIris() == SBICheckState.Unchecked) + { + if (captureInfo.getBioValueLI() != null && captureInfo.getBioValueLI().length() > 0) + { + BioMetricsDto bioDto = getBiometricData (transactionId, requestObject, deviceHelper, previousHash, bioType, SBIConstant.BIO_NAME_LEFT_IRIS, + captureInfo.getBioValueLI(), captureInfo.getCaptureScoreLI(), requestScore, "", "0", isForAuthenication); + if (bioDto != null) + { + biometrics.add(bioDto); + previousHash = bioDto.getHash(); + } + } + else + { + BioMetricsDto bioDto = getBiometricErrorData (lang, specVersion, isForAuthenication); + if (bioDto != null) + { + biometrics.add (bioDto); + previousHash = bioDto.getHash(); + } + } + } + if (bioExceptionInfo.getChkMissingRightIris() == SBICheckState.Unchecked) + { + if (captureInfo.getBioValueRI() != null && captureInfo.getBioValueRI().length() > 0) + { + BioMetricsDto bioDto = getBiometricData (transactionId, requestObject, deviceHelper, previousHash, bioType, SBIConstant.BIO_NAME_RIGHT_IRIS, + captureInfo.getBioValueRI(), captureInfo.getCaptureScoreRI(), requestScore, "", "0", isForAuthenication); + if (bioDto != null) + { + biometrics.add(bioDto); + previousHash = bioDto.getHash(); + } + } + else + { + BioMetricsDto bioDto = getBiometricErrorData (lang, specVersion, isForAuthenication); + if (bioDto != null) + { + biometrics.add (bioDto); + previousHash = bioDto.getHash(); + } + } + } + break; + } + } + // For Face + else if (deviceHelper.getDigitalId().getType().equalsIgnoreCase(SBIConstant.MOSIP_BIOMETRIC_TYPE_FACE) && + deviceHelper.getDigitalId().getDeviceSubType().equalsIgnoreCase(SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_FACE)) + { + SBIFaceCaptureInfo captureInfo = (SBIFaceCaptureInfo)deviceHelper.getCaptureInfo(); + + boolean isExceptionPhoto = false; + if (bioExceptions != null && bioExceptions.length > 0) + isExceptionPhoto = true; + + if (!isExceptionPhoto) + { + if (captureInfo.getBioValueFace() != null && captureInfo.getBioValueFace().length() > 0) + { + BioMetricsDto bioDto = getBiometricData (transactionId, requestObject, deviceHelper, previousHash, bioType, null, + captureInfo.getBioValueFace(), captureInfo.getCaptureScoreFace(), requestScore, "", "0", isForAuthenication); + if (bioDto != null) + { + biometrics.add(bioDto); + previousHash = bioDto.getHash(); + } + } + else + { + BioMetricsDto bioDto = getBiometricErrorData (lang, specVersion, isForAuthenication); + if (bioDto != null) + { + biometrics.add (bioDto); + previousHash = bioDto.getHash(); + } + } + } + else + { + if (captureInfo.getBioValueExceptionPhoto() != null && captureInfo.getBioValueExceptionPhoto().length() > 0) + { + BioMetricsDto bioDto = getBiometricData (transactionId, requestObject, deviceHelper, previousHash, bioType, null, + captureInfo.getBioValueExceptionPhoto(), captureInfo.getCaptureScoreFace(), requestScore, "", "0", isForAuthenication); + if (bioDto != null) + { + biometrics.add(bioDto); + previousHash = bioDto.getHash(); + } + } + else + { + BioMetricsDto bioDto = getBiometricErrorData (lang, specVersion, isForAuthenication); + if (bioDto != null) + { + biometrics.add (bioDto); + previousHash = bioDto.getHash(); + } + } + } + } + } + else if (isForAuthenication) + { + SBIBioSubTypeInfo bioSubTypeInfo = new SBIBioSubTypeInfo (); + bioSubTypeInfo.initBioSubType(bioSubType); + + // For Finger Single + if (deviceHelper.getDigitalId().getType().equalsIgnoreCase(SBIConstant.MOSIP_BIOMETRIC_TYPE_FINGER) && + deviceHelper.getDigitalId().getDeviceSubType().equalsIgnoreCase(SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_FINGER_SINGLE)) + { + SBIFingerSingleCaptureInfo captureInfo = (SBIFingerSingleCaptureInfo)deviceHelper.getCaptureInfo(); + if (deviceSubId == SBIConstant.DEVICE_FINGER_SINGLE_SUB_TYPE_ID) + { + HashMap biometricData = captureInfo.getBiometricData(); + if (biometricData != null && biometricData.size() > 0) + { + int bioCounter = 0; + for (Map.Entry pair: biometricData.entrySet()) { + if (bioCounter > bioCount) + break; + + if ((bioCounter < bioCount) && (bioSubTypeInfo.getChkUnknown() == SBICheckState.Checked || bioSubTypeInfo.getChkLeftIndex() == SBICheckState.Checked) + && pair.getKey().equalsIgnoreCase(SBIConstant.BIO_NAME_LEFT_INDEX)) + { + String bioData = pair.getValue(); + if (bioData != null && bioData.length() > 0) + { + BioMetricsDto bioDto = getBiometricData (transactionId, requestObject, deviceHelper, previousHash, bioType, (bioSubTypeInfo.getChkLeftIndex() == SBICheckState.Checked ? SBIConstant.BIO_NAME_LEFT_INDEX : SBIConstant.BIO_NAME_UNKNOWN), + bioData, captureInfo.getCaptureScoreLI(), requestScore, "", "0", isForAuthenication); + if (bioDto != null) + { + biometrics.add(bioDto); + previousHash = bioDto.getHash(); + } + } + else + { + BioMetricsDto bioDto = getBiometricErrorData (lang, specVersion, isForAuthenication); + if (bioDto != null) + { + biometrics.add (bioDto); + previousHash = bioDto.getHash(); + } + } + bioCounter ++; + } + + if ((bioCounter < bioCount) && (bioSubTypeInfo.getChkUnknown() == SBICheckState.Checked || bioSubTypeInfo.getChkLeftMiddle() == SBICheckState.Checked) + && pair.getKey().equalsIgnoreCase(SBIConstant.BIO_NAME_LEFT_MIDDLE)) + { + String bioData = pair.getValue(); + if (bioData != null && bioData.length() > 0) + { + BioMetricsDto bioDto = getBiometricData (transactionId, requestObject, deviceHelper, previousHash, bioType, (bioSubTypeInfo.getChkLeftIndex() == SBICheckState.Checked ? SBIConstant.BIO_NAME_LEFT_MIDDLE : SBIConstant.BIO_NAME_UNKNOWN), + bioData, captureInfo.getCaptureScoreLM(), requestScore, "", "0", isForAuthenication); + if (bioDto != null) + { + biometrics.add(bioDto); + previousHash = bioDto.getHash(); + } + } + else + { + BioMetricsDto bioDto = getBiometricErrorData (lang, specVersion, isForAuthenication); + if (bioDto != null) + { + biometrics.add (bioDto); + previousHash = bioDto.getHash(); + } + } + bioCounter ++; + } + + if ((bioCounter < bioCount) && (bioSubTypeInfo.getChkUnknown() == SBICheckState.Checked || bioSubTypeInfo.getChkLeftRing() == SBICheckState.Checked) + && pair.getKey().equalsIgnoreCase(SBIConstant.BIO_NAME_LEFT_RING)) + { + String bioData = pair.getValue(); + if (bioData != null && bioData.length() > 0) + { + BioMetricsDto bioDto = getBiometricData (transactionId, requestObject, deviceHelper, previousHash, bioType, (bioSubTypeInfo.getChkLeftRing() == SBICheckState.Checked ? SBIConstant.BIO_NAME_LEFT_RING : SBIConstant.BIO_NAME_UNKNOWN), + bioData, captureInfo.getCaptureScoreLR(), requestScore, "", "0", isForAuthenication); + if (bioDto != null) + { + biometrics.add(bioDto); + previousHash = bioDto.getHash(); + } + } + else + { + BioMetricsDto bioDto = getBiometricErrorData (lang, specVersion, isForAuthenication); + if (bioDto != null) + { + biometrics.add (bioDto); + previousHash = bioDto.getHash(); + } + } + bioCounter ++; + } + + if ((bioCounter < bioCount) && (bioSubTypeInfo.getChkUnknown() == SBICheckState.Checked || bioSubTypeInfo.getChkLeftLittle() == SBICheckState.Checked) + && pair.getKey().equalsIgnoreCase(SBIConstant.BIO_NAME_LEFT_LITTLE)) + { + String bioData = pair.getValue(); + if (bioData != null && bioData.length() > 0) + { + BioMetricsDto bioDto = getBiometricData (transactionId, requestObject, deviceHelper, previousHash, bioType, (bioSubTypeInfo.getChkLeftLittle() == SBICheckState.Checked ? SBIConstant.BIO_NAME_LEFT_LITTLE: SBIConstant.BIO_NAME_UNKNOWN), + bioData, captureInfo.getCaptureScoreLL(), requestScore, "", "0", isForAuthenication); + if (bioDto != null) + { + biometrics.add(bioDto); + previousHash = bioDto.getHash(); + } + } + else + { + BioMetricsDto bioDto = getBiometricErrorData (lang, specVersion, isForAuthenication); + if (bioDto != null) + { + biometrics.add (bioDto); + previousHash = bioDto.getHash(); + bioCounter ++; + } + } + bioCounter ++; + } + + if ((bioCounter < bioCount) && (bioSubTypeInfo.getChkUnknown() == SBICheckState.Checked || bioSubTypeInfo.getChkRightIndex() == SBICheckState.Checked) + && pair.getKey().equalsIgnoreCase(SBIConstant.BIO_NAME_RIGHT_INDEX)) + { + String bioData = pair.getValue(); + if (bioData != null && bioData.length() > 0) + { + BioMetricsDto bioDto = getBiometricData (transactionId, requestObject, deviceHelper, previousHash, bioType, (bioSubTypeInfo.getChkRightIndex() == SBICheckState.Checked ? SBIConstant.BIO_NAME_RIGHT_INDEX : SBIConstant.BIO_NAME_UNKNOWN), + bioData, captureInfo.getCaptureScoreRI(), requestScore, "", "0", isForAuthenication); + if (bioDto != null) + { + biometrics.add(bioDto); + previousHash = bioDto.getHash(); + } + } + else + { + BioMetricsDto bioDto = getBiometricErrorData (lang, specVersion, isForAuthenication); + if (bioDto != null) + { + biometrics.add (bioDto); + previousHash = bioDto.getHash(); + } + } + bioCounter ++; + } + + if ((bioCounter < bioCount) && (bioSubTypeInfo.getChkUnknown() == SBICheckState.Checked || bioSubTypeInfo.getChkRightMiddle() == SBICheckState.Checked) + && pair.getKey().equalsIgnoreCase(SBIConstant.BIO_NAME_RIGHT_MIDDLE)) + { + String bioData = pair.getValue(); + if (bioData != null && bioData.length() > 0) + { + BioMetricsDto bioDto = getBiometricData (transactionId, requestObject, deviceHelper, previousHash, bioType, (bioSubTypeInfo.getChkRightIndex() == SBICheckState.Checked ? SBIConstant.BIO_NAME_RIGHT_MIDDLE : SBIConstant.BIO_NAME_UNKNOWN), + bioData, captureInfo.getCaptureScoreRM(), requestScore, "", "0", isForAuthenication); + if (bioDto != null) + { + biometrics.add(bioDto); + previousHash = bioDto.getHash(); + } + } + else + { + BioMetricsDto bioDto = getBiometricErrorData (lang, specVersion, isForAuthenication); + if (bioDto != null) + { + biometrics.add (bioDto); + previousHash = bioDto.getHash(); + } + } + bioCounter ++; + } + + if ((bioCounter < bioCount) && (bioSubTypeInfo.getChkUnknown() == SBICheckState.Checked || bioSubTypeInfo.getChkRightRing() == SBICheckState.Checked) + && pair.getKey().equalsIgnoreCase(SBIConstant.BIO_NAME_RIGHT_RING)) + { + String bioData = pair.getValue(); + if (bioData != null && bioData.length() > 0) + { + BioMetricsDto bioDto = getBiometricData (transactionId, requestObject, deviceHelper, previousHash, bioType, (bioSubTypeInfo.getChkRightRing() == SBICheckState.Checked ? SBIConstant.BIO_NAME_RIGHT_RING : SBIConstant.BIO_NAME_UNKNOWN), + bioData, captureInfo.getCaptureScoreRR(), requestScore, "", "0", isForAuthenication); + if (bioDto != null) + { + biometrics.add(bioDto); + previousHash = bioDto.getHash(); + } + } + else + { + BioMetricsDto bioDto = getBiometricErrorData (lang, specVersion, isForAuthenication); + if (bioDto != null) + { + biometrics.add (bioDto); + previousHash = bioDto.getHash(); + } + } + bioCounter ++; + } + + if ((bioCounter < bioCount) && (bioSubTypeInfo.getChkUnknown() == SBICheckState.Checked || bioSubTypeInfo.getChkRightLittle() == SBICheckState.Checked) + && pair.getKey().equalsIgnoreCase(SBIConstant.BIO_NAME_RIGHT_LITTLE)) + { + String bioData = pair.getValue(); + if (bioData != null && bioData.length() > 0) + { + BioMetricsDto bioDto = getBiometricData (transactionId, requestObject, deviceHelper, previousHash, bioType, (bioSubTypeInfo.getChkRightLittle() == SBICheckState.Checked ? SBIConstant.BIO_NAME_RIGHT_LITTLE: SBIConstant.BIO_NAME_UNKNOWN), + bioData, captureInfo.getCaptureScoreRL(), requestScore, "", "0", isForAuthenication); + if (bioDto != null) + { + biometrics.add(bioDto); + previousHash = bioDto.getHash(); + } + } + else + { + BioMetricsDto bioDto = getBiometricErrorData (lang, specVersion, isForAuthenication); + if (bioDto != null) + { + biometrics.add (bioDto); + previousHash = bioDto.getHash(); + } + } + bioCounter ++; + } + + if ((bioCounter < bioCount) && (bioSubTypeInfo.getChkUnknown() == SBICheckState.Checked || bioSubTypeInfo.getChkLeftThumb() == SBICheckState.Checked) + && pair.getKey().equalsIgnoreCase(SBIConstant.BIO_NAME_LEFT_THUMB)) + { + String bioData = pair.getValue(); + if (bioData != null && bioData.length() > 0) + { + BioMetricsDto bioDto = getBiometricData (transactionId, requestObject, deviceHelper, previousHash, bioType, (bioSubTypeInfo.getChkLeftThumb() == SBICheckState.Checked ? SBIConstant.BIO_NAME_LEFT_THUMB : SBIConstant.BIO_NAME_UNKNOWN), + bioData, captureInfo.getCaptureScoreLT(), requestScore, "", "0", isForAuthenication); + if (bioDto != null) + { + biometrics.add(bioDto); + previousHash = bioDto.getHash(); + } + } + else + { + BioMetricsDto bioDto = getBiometricErrorData (lang, specVersion, isForAuthenication); + if (bioDto != null) + { + biometrics.add (bioDto); + previousHash = bioDto.getHash(); + } + } + bioCounter ++; + } + + if ((bioCounter < bioCount) && (bioSubTypeInfo.getChkUnknown() == SBICheckState.Checked || bioSubTypeInfo.getChkRightThumb() == SBICheckState.Checked) + && pair.getKey().equalsIgnoreCase(SBIConstant.BIO_NAME_RIGHT_THUMB)) + { + String bioData = pair.getValue(); + if (bioData != null && bioData.length() > 0) + { + BioMetricsDto bioDto = getBiometricData (transactionId, requestObject, deviceHelper, previousHash, bioType, (bioSubTypeInfo.getChkRightThumb() == SBICheckState.Checked ? SBIConstant.BIO_NAME_RIGHT_THUMB : SBIConstant.BIO_NAME_UNKNOWN), + bioData, captureInfo.getCaptureScoreRT(), requestScore, "", "0", isForAuthenication); + if (bioDto != null) + { + biometrics.add(bioDto); + previousHash = bioDto.getHash(); + } + } + else + { + BioMetricsDto bioDto = getBiometricErrorData (lang, specVersion, isForAuthenication); + if (bioDto != null) + { + biometrics.add (bioDto); + previousHash = bioDto.getHash(); + } + } + bioCounter ++; + } + } + } + else + { + BioMetricsDto bioDto = getBiometricErrorData (lang, specVersion, isForAuthenication); + if (bioDto != null) + { + biometrics.add (bioDto); + previousHash = bioDto.getHash(); + } + } + } + } + // For IRIS SINGLE + else if (deviceHelper.getDigitalId().getType().equalsIgnoreCase(SBIConstant.MOSIP_BIOMETRIC_TYPE_IRIS) && + deviceHelper.getDigitalId().getDeviceSubType().equalsIgnoreCase(SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_IRIS_SINGLE)) + { + SBIIrisSingleCaptureInfo captureInfo = (SBIIrisSingleCaptureInfo)deviceHelper.getCaptureInfo(); + SBIIrisSingleBioExceptionInfo bioExceptionInfo = (SBIIrisSingleBioExceptionInfo)deviceHelper.getCaptureInfo().getBioExceptionInfo(); + + if (deviceSubId == SBIConstant.DEVICE_IRIS_SINGLE_SUB_TYPE_ID) + { + HashMap biometricData = captureInfo.getBiometricData(); + if (biometricData != null && biometricData.size() > 0) + { + int bioCounter = 0; + for (Map.Entry pair: biometricData.entrySet()) { + if (bioCounter > bioCount) + break; + + if ((bioCounter < bioCount) && (bioSubTypeInfo.getChkUnknown() == SBICheckState.Checked || bioSubTypeInfo.getChkLeftIris() == SBICheckState.Checked) + && pair.getKey().equalsIgnoreCase(SBIConstant.BIO_NAME_LEFT_IRIS)) + { + String bioData = pair.getValue(); + if (bioData != null && bioData.length() > 0) + { + BioMetricsDto bioDto = getBiometricData (transactionId, requestObject, deviceHelper, previousHash, bioType, (bioSubTypeInfo.getChkLeftIris() == SBICheckState.Checked ? SBIConstant.BIO_NAME_LEFT_IRIS : SBIConstant.BIO_NAME_UNKNOWN), + bioData, captureInfo.getCaptureScoreLI(), requestScore, "", "0", isForAuthenication); + if (bioDto != null) + { + biometrics.add(bioDto); + previousHash = bioDto.getHash(); + } + } + else + { + BioMetricsDto bioDto = getBiometricErrorData (lang, specVersion, isForAuthenication); + if (bioDto != null) + { + biometrics.add (bioDto); + previousHash = bioDto.getHash(); + } + } + bioCounter ++; + } + + if ((bioCounter < bioCount) && (bioSubTypeInfo.getChkUnknown() == SBICheckState.Checked || bioSubTypeInfo.getChkRightIris() == SBICheckState.Checked) + && pair.getKey().equalsIgnoreCase(SBIConstant.BIO_NAME_RIGHT_IRIS)) + { + String bioData = pair.getValue(); + if (bioData != null && bioData.length() > 0) + { + BioMetricsDto bioDto = getBiometricData (transactionId, requestObject, deviceHelper, previousHash, bioType, (bioSubTypeInfo.getChkRightIris() == SBICheckState.Checked ? SBIConstant.BIO_NAME_RIGHT_IRIS : SBIConstant.BIO_NAME_UNKNOWN), + bioData, captureInfo.getCaptureScoreRI(), requestScore, "", "0", isForAuthenication); + if (bioDto != null) + { + biometrics.add(bioDto); + previousHash = bioDto.getHash(); + } + } + else + { + BioMetricsDto bioDto = getBiometricErrorData (lang, specVersion, isForAuthenication); + if (bioDto != null) + { + biometrics.add (bioDto); + previousHash = bioDto.getHash(); + } + } + bioCounter ++; + } + } + } + else + { + BioMetricsDto bioDto = getBiometricErrorData (lang, specVersion, isForAuthenication); + if (bioDto != null) + { + biometrics.add (bioDto); + previousHash = bioDto.getHash(); + } + } + } + } + // For Face + else if (deviceHelper.getDigitalId().getType().equalsIgnoreCase(SBIConstant.MOSIP_BIOMETRIC_TYPE_FACE) && + deviceHelper.getDigitalId().getDeviceSubType().equalsIgnoreCase(SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_FACE)) + { + SBIFaceCaptureInfo captureInfo = (SBIFaceCaptureInfo)deviceHelper.getCaptureInfo(); + String bioData = captureInfo.getBiometricForBioSubType(SBIConstant.BIO_NAME_UNKNOWN); + if (bioData != null && bioData.length() > 0) + { + BioMetricsDto bioDto = getBiometricData (transactionId, requestObject, deviceHelper, previousHash, bioType, null, + bioData, captureInfo.getCaptureScoreFace(), requestScore, "", "0", isForAuthenication); + if (bioDto != null) + { + biometrics.add(bioDto); + previousHash = bioDto.getHash(); + } + } + else + { + BioMetricsDto bioDto = getBiometricErrorData (lang, specVersion, isForAuthenication); + if (bioDto != null) + { + biometrics.add (bioDto); + previousHash = bioDto.getHash(); + } + } + } + } + return biometrics; + } + + private BioMetricsDto getBiometricData (String transactionId, CaptureRequestDto requestObject, SBIDeviceHelper deviceHelper, + String previousHash, String bioType, String bioSubType, String bioValue, + int qualityScore, int qualityRequestScore, String lang, String errorCode, boolean isUsedForAuthenication) throws JsonGenerationException, JsonMappingException, IOException, NoSuchAlgorithmException, DecoderException + { + DeviceInfo deviceInfo = deviceHelper.getDeviceInfo(); + + BioMetricsDto biometric = new BioMetricsDto (); + biometric.setSpecVersion(requestObject.getSpecVersion()); + + biometric.setError(new ErrorInfo (errorCode, SBIJsonInfo.getErrorDescription (lang, errorCode))); + + BioMetricsDataDto biometricData = new BioMetricsDataDto (); + biometricData.setDeviceCode(deviceInfo.getDeviceCode()); + biometricData.setDigitalId(deviceInfo.getDigitalId()); + biometricData.setDeviceServiceVersion(deviceInfo.getServiceVersion()); + biometricData.setBioType(bioType); + biometricData.setBioSubType(bioSubType); + + biometricData.setPurpose(requestObject.getPurpose()); + biometricData.setEnv(requestObject.getEnv()); + + if (isUsedForAuthenication) + biometricData.setDomainUri(requestObject.getDomainUri() + ""); + + if (isUsedForAuthenication == false) + { + biometricData.setBioValue(bioValue); + biometricData.setTimestamp(CryptoUtility.getTimestamp()); + } + else + { + try { + X509Certificate certificate = new JwtUtility().getCertificateToEncryptCaptureBioValue(); + PublicKey publicKey = certificate.getPublicKey(); + Map cryptoResult = CryptoUtility.encrypt(publicKey, + java.util.Base64.getUrlDecoder().decode(bioValue), transactionId); + + biometricData.setTimestamp(cryptoResult.get("TIMESTAMP")); + biometricData.setBioValue(cryptoResult.containsKey("ENC_DATA") ? + cryptoResult.get("ENC_DATA") : null); + biometric.setSessionKey(cryptoResult.get("ENC_SESSION_KEY")); + String thumbPrint = toHex (JwtUtility.getCertificateThumbprint(certificate)).replace ("-", "").toUpperCase(); + //System.out.println("ThumbPrint>>" + thumbPrint); + biometric.setThumbprint(thumbPrint); + } catch (Exception ex) { + LOGGER.error("getBiometricData :: encrypt :: ", ex); + // TODO Auto-generated catch block + ex.printStackTrace(); + } + } + + biometricData.setRequestedScore(qualityRequestScore + ""); + biometricData.setQualityScore(qualityScore + ""); + biometricData.setTransactionId(transactionId); + + ObjectMapper mapper = new ObjectMapper (); + SerializationConfig config = mapper.getSerializationConfig(); + config.setSerializationInclusion(Inclusion.NON_NULL); + mapper.setSerializationConfig(config); + + String currentBioData = mapper.writeValueAsString(biometricData); + + //base64 signature of the data block. base64 signature of the hash element + String dataBlockSignBase64 = deviceHelper.getSignBioMetricsDataDto (deviceHelper.getDeviceType(), deviceHelper.getDeviceSubType(), currentBioData); + biometric.setData (dataBlockSignBase64); + + byte[] previousBioDataHash = null; + if (previousHash == null || previousHash.trim().length() == 0) { + byte [] previousDataByteArr = StringHelper.toUtf8ByteArray (""); + previousBioDataHash = generateHash(previousDataByteArr); + } else { + previousBioDataHash = decodeHex(previousHash); + } + //instead of BioData, bioValue (before encrytion in case of Capture response) is used for computing the hash. + byte [] currentDataByteArr = java.util.Base64.getUrlDecoder().decode(bioValue); + // Here Byte Array + byte[] currentBioDataHash = generateHash (currentDataByteArr); + byte[] finalBioDataHash = new byte[currentBioDataHash.length + previousBioDataHash.length]; + System.arraycopy (previousBioDataHash, 0, finalBioDataHash, 0, previousBioDataHash.length); + System.arraycopy (currentBioDataHash, 0, finalBioDataHash, previousBioDataHash.length, currentBioDataHash.length); + + biometric.setHash(toHex (generateHash (finalBioDataHash))); + + return biometric; + } + + public String toHex(byte[] bytes) { + return Hex.encodeHexString(bytes).toUpperCase(); + } + + private final String HASH_ALGORITHM_NAME = "SHA-256"; + public byte[] generateHash(final byte[] bytes) throws NoSuchAlgorithmException{ + MessageDigest messageDigest = MessageDigest.getInstance(HASH_ALGORITHM_NAME); + return messageDigest.digest(bytes); + } + + public byte[] decodeHex(String hexData) throws DecoderException{ + return Hex.decodeHex(hexData); + } + + private BioMetricsDto getBiometricErrorData (String lang, String specVersion, boolean isForAuthenication) + { + String errorCode = "701"; + BioMetricsDto biometric = new BioMetricsDto (); + biometric.setSpecVersion(specVersion); + biometric.setData(""); + biometric.setHash(""); + if (isForAuthenication) + { + errorCode = "801"; + biometric.setSessionKey(""); + biometric.setThumbprint(""); + } + + biometric.setError(new ErrorInfo (errorCode, (SBIJsonInfo.getErrorDescription (lang, errorCode)).trim())); + + return biometric; + } + + private void renderMainHeaderData (Socket socket) throws IOException + { + writeMainHeader (socket); + } + + private void writeMainHeader (Socket socket) throws IOException + { + // prepare main header + byte [] mainHeader = createMainHeader (); + + BufferedOutputStream outputStream = new BufferedOutputStream (socket.getOutputStream()); + outputStream.write (mainHeader, 0, mainHeader.length); + outputStream.flush (); + outputStream.flush (); + } + + private byte [] createMainHeader () + { + String header = + "HTTP/1.0 200 OK\r\n" + + "Server: http://" + ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.SERVER_ADDRESS) + ":" + getPort () + "\r\n" + + "Access-Control-Allow-Origin:*\r\n" + + "Connection: close\r\n" + + "Max-Age: 0\r\n" + + "Expires: 0\r\n" + + "Cache-Control: no-cache, private\r\n" + + "Pragma: no-cache\r\n" + + "Content-Type: multipart/x-mixed-replace; " + + "boundary=--BoundaryString\r\n\r\n"; + + // using ascii encoder is fine since there is no international character used in this string. + return header.getBytes(StandardCharsets.US_ASCII); + } + + private void renderJPGImageData (Socket socket, byte[] image) throws IOException + { + if (image != null && socket != null && !socket.isClosed()) + writeFrame (socket, image); + } + + private void writeFrame (Socket socket, byte[] image) throws IOException + { + // prepare image data + byte[] imageInByte = image; + + // prepare header + byte [] header = createHeader (imageInByte.length); + // prepare footer + byte [] footer = createFooter (); + + BufferedOutputStream outputStream = new BufferedOutputStream (socket.getOutputStream()); + // Start writing data + outputStream.write(header, 0, header.length); + outputStream.write(imageInByte, 0, imageInByte.length); + outputStream.write(footer, 0, footer.length); + outputStream.flush(); + outputStream.flush(); + } + + private byte [] createHeader (int length) + { + String header = + "--BoundaryString\r\n" + + "Access-Control-Allow-Origin:*\r\n" + + "Content-Type:image/jpeg\r\n" + + "Content-Length:" + length + "\r\n\r\n"; // there are always 2 new line character before the actual data + + // using ascii encoder is fine since there is no international character used in this string. + return header.getBytes(StandardCharsets.US_ASCII); + } + + public byte [] createFooter () + { + return "\r\n\r\n".getBytes(StandardCharsets.US_ASCII); + } + + private SBIDeviceHelper getDeviceHelperForDeviceId(SBIMockService mockService, String deviceId) { + + SBIDeviceHelper deviceHelper = null; + + deviceHelper = (SBIFaceHelper) mockService.getDeviceHelper(SBIConstant.MOSIP_BIOMETRIC_TYPE_FACE + "_" + SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_FACE); + deviceHelper.initDeviceDetails(); + if (deviceHelper.getDeviceInfo() != null && deviceHelper.getDeviceInfo().getDeviceId().trim().equals(deviceId.trim())) + { + return deviceHelper; + } + + switch (mockService.getPurpose()) + { + case SBIConstant.PURPOSE_REGISTRATION: + deviceHelper = (SBIFingerSlapHelper) mockService.getDeviceHelper(SBIConstant.MOSIP_BIOMETRIC_TYPE_FINGER + "_" + SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_FINGER_SLAP); + deviceHelper.initDeviceDetails(); + if (deviceHelper.getDeviceInfo() != null && deviceHelper.getDeviceInfo().getDeviceId().trim().equals(deviceId.trim())) + { + return deviceHelper; + } + + deviceHelper = (SBIIrisDoubleHelper) mockService.getDeviceHelper(SBIConstant.MOSIP_BIOMETRIC_TYPE_IRIS + "_" + SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_IRIS_DOUBLE); + deviceHelper.initDeviceDetails(); + if (deviceHelper.getDeviceInfo() != null && deviceHelper.getDeviceInfo().getDeviceId().trim().equals(deviceId.trim())) + { + return deviceHelper; + } + break; + case SBIConstant.PURPOSE_AUTH: + deviceHelper = (SBIFingerSingleHelper) mockService.getDeviceHelper(SBIConstant.MOSIP_BIOMETRIC_TYPE_FINGER + "_" + SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_FINGER_SINGLE); + deviceHelper.initDeviceDetails(); + if (deviceHelper.getDeviceInfo() != null && deviceHelper.getDeviceInfo().getDeviceId().trim().equals(deviceId.trim())) + { + return deviceHelper; + } + + deviceHelper = (SBIIrisSingleHelper) mockService.getDeviceHelper(SBIConstant.MOSIP_BIOMETRIC_TYPE_IRIS + "_" + SBIConstant.MOSIP_BIOMETRIC_SUBTYPE_IRIS_SINGLE); + deviceHelper.initDeviceDetails(); + if (deviceHelper.getDeviceInfo() != null && deviceHelper.getDeviceInfo().getDeviceId().trim().equals(deviceId.trim())) + { + return deviceHelper; + } + break; + } + + return null; + } + + public Object getRequestJson (String methodVerb) + { + if (getRequest () != null && getRequest().indexOf("{") >= 0) + { + try + { + ObjectMapper mapper = new ObjectMapper(); + if (methodVerb.equalsIgnoreCase(SBIConstant.MOSIP_DISC_VERB)) + return mapper.readValue(getRequest().substring (getRequest().indexOf("{")), DeviceDiscoveryRequestDetail.class); + if (methodVerb.equalsIgnoreCase(SBIConstant.MOSIP_STREAM_VERB)) + return mapper.readValue(getRequest().substring (getRequest().indexOf("{")), StreamingRequestDetail.class); + if (methodVerb.equalsIgnoreCase(SBIConstant.MOSIP_RCAPTURE_VERB)) + return mapper.readValue(getRequest().substring (getRequest().indexOf("{")), CaptureRequestDto.class); + + if (methodVerb.equalsIgnoreCase(SBIConstant.MOSIP_ADMIN_API_STATUS)) + return mapper.readValue(getRequest().substring (getRequest().indexOf("{")), StatusRequest.class); + if (methodVerb.equalsIgnoreCase(SBIConstant.MOSIP_ADMIN_API_SCORE)) + return mapper.readValue(getRequest().substring (getRequest().indexOf("{")), ScoreRequest.class); + if (methodVerb.equalsIgnoreCase(SBIConstant.MOSIP_ADMIN_API_DELAY)) + return mapper.readValue(getRequest().substring (getRequest().indexOf("{")), DelayRequest.class); + if (methodVerb.equalsIgnoreCase(SBIConstant.MOSIP_ADMIN_API_PROFILE)) + return mapper.readValue(getRequest().substring (getRequest().indexOf("{")), ProfileRequest.class); + + return null; + } + catch (Exception ex) + { + LOGGER.error("getRequestJson", ex); + return null; + } + } + else + { + return null; + } + } + + + public PublicKey getPublicKeyToEncryptCaptureBioValue() throws Exception { + String certificate = getPublicKeyFromIDA(); + certificate = trimBeginEnd(certificate); + CertificateFactory cf = CertificateFactory.getInstance("X.509"); + X509Certificate x509Certificate = (X509Certificate) cf.generateCertificate( + new ByteArrayInputStream(Base64.getDecoder().decode(certificate))); + + return x509Certificate.getPublicKey(); + } + + public String getThumbprint() throws Exception { + String certificate = getPublicKeyFromIDA(); + certificate = trimBeginEnd(certificate); + CertificateFactory cf = CertificateFactory.getInstance("X.509"); + X509Certificate x509Certificate = (X509Certificate) cf.generateCertificate( + new ByteArrayInputStream(Base64.getDecoder().decode(certificate))); + String thumbprint = CryptoUtil.computeFingerPrint(x509Certificate.getEncoded(), null); + + return thumbprint; + } + + public String getPublicKeyFromIDA() { + OkHttpClient client = new OkHttpClient(); + String requestBody = String.format(AUTH_REQ_TEMPLATE, + ApplicationPropertyHelper.getPropertyKeyValue("mosip.auth.appid"), + ApplicationPropertyHelper.getPropertyKeyValue("mosip.auth.clientid"), + ApplicationPropertyHelper.getPropertyKeyValue("mosip.auth.secretkey"), + DateUtils.getUTCCurrentDateTime()); + + MediaType mediaType = MediaType.parse("application/json; charset=utf-8"); + RequestBody body = RequestBody.create(mediaType, requestBody); + Request request = new Request.Builder() + .url(ApplicationPropertyHelper.getPropertyKeyValue("mosip.auth.server.url")) + .post(body) + .build(); + try { + Response response = client.newCall(request).execute(); + if(response.isSuccessful()) { + String authToken = response.header("authorization"); + + Request idarequest = new Request.Builder() + .header("cookie", "Authorization="+authToken) + .url(ApplicationPropertyHelper.getPropertyKeyValue("mosip.ida.server.url")) + .get() + .build(); + + Response idaResponse = new OkHttpClient().newCall(idarequest).execute(); + if(idaResponse.isSuccessful()) { + JSONObject jsonObject = new JSONObject(idaResponse.body().string()); + jsonObject = jsonObject.getJSONObject("response"); + return jsonObject.getString("certificate"); + } + } + + } catch (IOException | JSONException e) { + e.printStackTrace(); + } + return null; + } + + private String trimBeginEnd(String pKey) { + pKey = pKey.replaceAll("-*BEGIN([^-]*)-*(\r?\n)?", ""); + pKey = pKey.replaceAll("-*END([^-]*)-*(\r?\n)?", ""); + pKey = pKey.replaceAll("\\s", ""); + return pKey; + } + + public int getPort() { + return port; + } + public void setPort(int port) { + this.port = port; + } + public String getRequest() { + return request; + } + public void setRequest(String request) { + this.request = request; + } + public static Semaphore getSemaphore() { + return semaphore; + } + public static void setSemaphore(Semaphore semaphore) { + SBIServiceResponse.semaphore = semaphore; + } + + private void delay(long millseconds) + { + try { + Thread.sleep(millseconds); + } catch (InterruptedException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + private boolean isValidBioExceptionValues(String[] bioExceptions) { + if (bioExceptions != null) + { + return bioExceptionsList.containsAll(Arrays.asList(bioExceptions)); + } + return false; + } + + private boolean isValidBioSubtypeValues(String[] bioSubtypes) { + if (bioSubtypes != null) + { + return bioSubtypesList.containsAll(Arrays.asList(bioSubtypes)); + } + return false; + } +} diff --git a/MockMDS/src/main/java/io/mosip/mock/sbi/test/TestMockSBI.java b/MockMDS/src/main/java/io/mosip/mock/sbi/test/TestMockSBI.java index f9a365dd..7a72e2aa 100644 --- a/MockMDS/src/main/java/io/mosip/mock/sbi/test/TestMockSBI.java +++ b/MockMDS/src/main/java/io/mosip/mock/sbi/test/TestMockSBI.java @@ -1,81 +1,81 @@ -package io.mosip.mock.sbi.test; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import io.mosip.mock.sbi.SBIConstant; -import io.mosip.mock.sbi.service.SBIMockService; -import io.mosip.mock.sbi.util.ApplicationPropertyHelper; - -public class TestMockSBI { - private static final Logger LOGGER = LoggerFactory.getLogger(TestMockSBI.class); - - public static void main(String[] args) { - - String purpose = ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_PURPOSE_REGISTRATION); - String biometricType = ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_BIOMTRIC_DEVICE); - - if (args != null && args.length > 0) - { - // Argument 0 should contain "mosip.mock.sbi.device.purpose=Registration" - String purposeInfo = args[0]; - LOGGER.info("main :: Purpose :: Argument [0] " + purposeInfo); - if (purposeInfo.contains(SBIConstant.MOSIP_PURPOSE)) - { - purpose = purposeInfo.split("=") [1]; - } - // Argument 1 should contain "mosip.mock.sbi.biometric.type=Biometric Device" - String biometricTypeInfo = args[1]; - LOGGER.info("main :: BiometricType :: Argument [1] " + purposeInfo); - if (biometricTypeInfo.contains(SBIConstant.MOSIP_BIOMETRIC_TYPE)) - { - biometricType = biometricTypeInfo.split("=")[1]; - } - - LOGGER.info("main :: purpose :: " + purpose + " :: BiometricType :: " + biometricType); - //Check Purpose and BiometricType values - if (isValidPurpose (purpose) && isValidBiometricType(biometricType)) - { - SBIMockService mockService = new SBIMockService (purpose, biometricType); - mockService.run(); - } - else - { - LOGGER.error("Please check the Arguments Passed through command line for purpose and biometricType values..."); - } - } - else - { - LOGGER.error("Please check if Arguments are Passed through command line for purpose and biometricType..."); - } - } - - private static boolean isValidPurpose(String purpose) { - if (purpose == null || purpose.trim().length() == 0) - return false; - - if (purpose != null && ( - purpose.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_PURPOSE_REGISTRATION)) || - purpose.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_PURPOSE_AUTH)) - )) - { - return true; - } - return false; - } - - private static boolean isValidBiometricType(String biometricType) { - if (biometricType == null || biometricType.trim().length() == 0) - return false; - if (biometricType != null && ( - biometricType.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_BIOMTRIC_DEVICE)) || - biometricType.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_FINGER)) || - biometricType.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_FACE)) || - biometricType.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_IRIS)) - )) - { - return true; - } - return false; - } -} +package io.mosip.mock.sbi.test; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import io.mosip.mock.sbi.SBIConstant; +import io.mosip.mock.sbi.service.SBIMockService; +import io.mosip.mock.sbi.util.ApplicationPropertyHelper; + +public class TestMockSBI { + private static final Logger LOGGER = LoggerFactory.getLogger(TestMockSBI.class); + + public static void main(String[] args) { + + String purpose = ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_PURPOSE_REGISTRATION); + String biometricType = ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_BIOMETRIC_TYPE_BIOMTRIC_DEVICE); + + if (args != null && args.length > 0) + { + // Argument 0 should contain "mosip.mock.sbi.device.purpose=Registration" + String purposeInfo = args[0]; + LOGGER.info("main :: Purpose :: Argument [0] " + purposeInfo); + if (purposeInfo.contains(SBIConstant.MOSIP_PURPOSE)) + { + purpose = purposeInfo.split("=") [1]; + } + // Argument 1 should contain "mosip.mock.sbi.biometric.type=Biometric Device" + String biometricTypeInfo = args[1]; + LOGGER.info("main :: BiometricType :: Argument [1] " + purposeInfo); + if (biometricTypeInfo.contains(SBIConstant.MOSIP_BIOMETRIC_TYPE)) + { + biometricType = biometricTypeInfo.split("=")[1]; + } + + LOGGER.info("main :: purpose :: " + purpose + " :: BiometricType :: " + biometricType); + //Check Purpose and BiometricType values + if (isValidPurpose (purpose) && isValidBiometricType(biometricType)) + { + SBIMockService mockService = new SBIMockService (purpose, biometricType); + mockService.run(); + } + else + { + LOGGER.error("Please check the Arguments Passed through command line for purpose and biometricType values..."); + } + } + else + { + LOGGER.error("Please check if Arguments are Passed through command line for purpose and biometricType..."); + } + } + + private static boolean isValidPurpose(String purpose) { + if (purpose == null || purpose.trim().length() == 0) + return false; + + if (purpose != null && ( + purpose.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_PURPOSE_REGISTRATION)) || + purpose.equalsIgnoreCase(ApplicationPropertyHelper.getPropertyKeyValue(SBIConstant.MOSIP_PURPOSE_AUTH)) + )) + { + return true; + } + return false; + } + + private static boolean isValidBiometricType(String biometricType) { + if (biometricType == null || biometricType.trim().length() == 0) + return false; + if (biometricType != null && ( + biometricType.equalsIgnoreCase(SBIConstant.MOSIP_BIOMETRIC_TYPE_BIOMTRIC_DEVICE) || + biometricType.equalsIgnoreCase(SBIConstant.MOSIP_BIOMETRIC_TYPE_FINGER) || + biometricType.equalsIgnoreCase(SBIConstant.MOSIP_BIOMETRIC_TYPE_FACE) || + biometricType.equalsIgnoreCase(SBIConstant.MOSIP_BIOMETRIC_TYPE_IRIS) + )) + { + return true; + } + return false; + } +} diff --git a/Servers/.settings/org.eclipse.wst.server.core.prefs b/Servers/.settings/org.eclipse.wst.server.core.prefs new file mode 100644 index 00000000..63b289d0 --- /dev/null +++ b/Servers/.settings/org.eclipse.wst.server.core.prefs @@ -0,0 +1,3 @@ +#Mon Aug 16 12:52:28 IST 2021 +org.eclipse.wst.server.core.isServerProject=true +eclipse.preferences.version=1