aboutsummaryrefslogtreecommitdiff
path: root/eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/service/RegisterSearchService.java
diff options
context:
space:
mode:
Diffstat (limited to 'eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/service/RegisterSearchService.java')
-rw-r--r--eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/service/RegisterSearchService.java65
1 files changed, 33 insertions, 32 deletions
diff --git a/eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/service/RegisterSearchService.java b/eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/service/RegisterSearchService.java
index bcee0f0f..b5e83490 100644
--- a/eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/service/RegisterSearchService.java
+++ b/eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/auth/eidas/v2/service/RegisterSearchService.java
@@ -1,6 +1,7 @@
package at.asitplus.eidas.specific.modules.auth.eidas.v2.service;
import java.math.BigInteger;
+import java.util.Arrays;
import java.util.Collections;
import java.util.List;
@@ -55,7 +56,7 @@ public class RegisterSearchService {
* @throws WorkflowException In case of a register interaction error
*/
@Nonnull
- public RegisterSearchResult searchWithPersonIdentifier(SimpleEidasData eidasData)
+ public RegisterStatusResults searchWithPersonIdentifier(SimpleEidasData eidasData)
throws WorkflowException {
try {
final ZmrRegisterResult resultsZmr = zmrClient.searchWithPersonIdentifier(
@@ -63,7 +64,7 @@ public class RegisterSearchService {
final List<RegisterResult> resultsErnp = ernpClient.searchWithPersonIdentifier(
eidasData.getPersonalIdentifier());
- return new RegisterSearchResult(new RegisterOperationStatus(resultsZmr.getProcessId()),
+ return new RegisterStatusResults(new RegisterOperationStatus(resultsZmr.getProcessId()),
resultsZmr.getPersonResult(), resultsErnp);
} catch (final EidasSAuthenticationException e) {
@@ -81,7 +82,7 @@ public class RegisterSearchService {
* @throws WorkflowException In case of a register interaction error
*/
@Nonnull
- public RegisterSearchResult searchWithMds(RegisterOperationStatus operationStatus, SimpleEidasData eidasData)
+ public RegisterStatusResults searchWithMds(RegisterOperationStatus operationStatus, SimpleEidasData eidasData)
throws WorkflowException {
try {
final ZmrRegisterResult resultsZmr =
@@ -92,7 +93,7 @@ public class RegisterSearchService {
ernpClient.searchWithMds(eidasData.getGivenName(), eidasData.getFamilyName(), eidasData
.getDateOfBirth());
- return new RegisterSearchResult(new RegisterOperationStatus(resultsZmr.getProcessId()),
+ return new RegisterStatusResults(new RegisterOperationStatus(resultsZmr.getProcessId()),
resultsZmr.getPersonResult(), resultsErnp);
} catch (final EidasSAuthenticationException e) {
@@ -112,7 +113,7 @@ public class RegisterSearchService {
* @throws WorkflowException In case of a register interaction error
*/
@Nonnull
- public RegisterSearchResult searchWithCountrySpecifics(RegisterOperationStatus operationStatus,
+ public RegisterStatusResults searchWithCountrySpecifics(RegisterOperationStatus operationStatus,
SimpleEidasData eidasData) throws WorkflowException {
try {
@Nullable
@@ -125,10 +126,10 @@ public class RegisterSearchService {
eidasData.getCitizenCountryCode());
// TODO: add search procesfor for ERnP searching
- return new RegisterSearchResult(operationStatus, resultsZmr.getPersonResult(), Collections.emptyList());
+ return new RegisterStatusResults(operationStatus, resultsZmr.getPersonResult(), Collections.emptyList());
} else {
- return new RegisterSearchResult(operationStatus, Collections.emptyList(), Collections.emptyList());
+ return new RegisterStatusResults(operationStatus, Collections.emptyList(), Collections.emptyList());
}
@@ -140,17 +141,6 @@ public class RegisterSearchService {
}
/**
- * Search with BPK-ZP in BMR and ERnP.
- */
- public RegisterSearchResult searchWithBpkZp(RegisterOperationStatus operationStatus, String bpkZp) {
- final ZmrRegisterResult resultsZmr = zmrClient.searchWithBpkZp(
- operationStatus.getZmrProcessId(), bpkZp);
- final List<RegisterResult> resultsErnp = ernpClient.searchWithBpkZp(bpkZp);
- return new RegisterSearchResult(operationStatus, resultsZmr.getPersonResult(), resultsErnp);
-
- }
-
- /**
* Search with residence infos.
*
* @param operationStatus Current register-operation status that contains processing informations
@@ -159,12 +149,12 @@ public class RegisterSearchService {
* @param street Provided street
* @return Results from ZMR or ERnP search
*/
- public RegisterSearchResult searchWithResidence(RegisterOperationStatus operationStatus, SimpleEidasData eidasData,
+ public RegisterStatusResults searchWithResidence(RegisterOperationStatus operationStatus, SimpleEidasData eidasData,
String zipcode, String city, String street) {
final ZmrRegisterResult resultsZmr = zmrClient.searchWithResidenceData(
operationStatus.getZmrProcessId(), eidasData.getGivenName(), eidasData.getFamilyName(),
eidasData.getDateOfBirth(), zipcode, city, street);
- return new RegisterSearchResult(operationStatus, resultsZmr.getPersonResult(), Collections.emptyList());
+ return new RegisterStatusResults(operationStatus, resultsZmr.getPersonResult(), Collections.emptyList());
}
@@ -173,8 +163,9 @@ public class RegisterSearchService {
*
* @param specificSearchResult Result of last register search
* @param eidasData Received eidas data
+ * @return
*/
- public void step7aKittProcess(RegisterSearchResult specificSearchResult,
+ public RegisterStatusResults step7aKittProcess(RegisterStatusResults specificSearchResult,
SimpleEidasData eidasData) throws WorkflowException {
log.trace("Starting step7aKittProcess");
// TODO verify with which data this method gets called
@@ -182,16 +173,24 @@ public class RegisterSearchService {
throw new WorkflowException("step7aKittProcess", "getResultCount() != 1");
}
-
- if (specificSearchResult.getResultsZmr().size() == 1) {
- zmrClient.update(specificSearchResult.getOperationStatus().getZmrProcessId(),
-
- specificSearchResult.getResultsZmr().get(0), eidasData);
- }
-
- if (specificSearchResult.getResultsErnp().size() == 1) {
- ernpClient.update(specificSearchResult.getResultsErnp().get(0), eidasData);
+ try {
+ if (specificSearchResult.getResultsZmr().size() == 1) {
+ final ZmrRegisterResult resultsZmr = zmrClient.update(
+ specificSearchResult.getOperationStatus().getZmrProcessId(),
+ specificSearchResult.getResultsZmr().get(0), eidasData);
+ return new RegisterStatusResults(specificSearchResult.getOperationStatus(),
+ resultsZmr.getPersonResult(), Collections.emptyList());
+ } else {
+ return new RegisterStatusResults(specificSearchResult.getOperationStatus(), Collections.emptyList(),
+ Arrays.asList(ernpClient.update(specificSearchResult.getResultsErnp().get(0), eidasData)));
+
+ }
+
+ } catch (final EidasSAuthenticationException e) {
+ throw new WorkflowException("kittMatchedIdentitiess", e.getMessage(),
+ !(e instanceof ZmrCommunicationException), e);
+
}
}
@@ -225,16 +224,18 @@ public class RegisterSearchService {
}
+
+
/**
- * Response container for {@link RegisterSearchService}.
+ * Response container for {@link RegisterSearchService} that holds a set of {@link RegisterResult}.
*
* @author tlenz
*
*/
@Getter
@RequiredArgsConstructor
- public static class RegisterSearchResult {
+ public static class RegisterStatusResults {
/**
* Operation status for this result.
*/