Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion FrejaEidClient/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>com.verisec.frejaeid</groupId>
<artifactId>FrejaEidClient</artifactId>
<version>2.32.1-SNAPSHOT</version>
<version>2.33.0-SNAPSHOT</version>
<packaging>jar</packaging>

<name>FrejaEidClient</name>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,17 @@ public SetOptionalParamsBuilder setOrganisationId(String identifier) {
return new SetOptionalParamsBuilder(UserInfoType.ORG_ID, identifier);
}

/**
* Sets unique personal identifier as userInfo and {@link UserInfoType#UPI} as {@linkplain UserInfoType} for initiating
* transaction.
*
* @param upi user's unique personal identifier that was previously set by Freja
* @return request builder
*/
public SetOptionalParamsBuilder setUpi(String upi) {
return new SetOptionalParamsBuilder(UserInfoType.UPI, upi);
}

}

public static class SetOptionalParamsBuilder {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,20 @@ public SetOptionalParamsBuilder setInferredAndOrganisationId(OrganisationId orga
return new SetOptionalParamsBuilder(UserInfoType.INFERRED, "N/A", organisationId);
}

/**
* Sets unique personal identifier as userInfo and {@link UserInfoType#UPI} as
* {@linkplain UserInfoType} for initiating transaction.
*
* @param upi user's unique personal identifier that will be used to identify
* the end user in format 1234-123456-1234.
* @param organisationId instance of {@linkplain OrganisationId} that
* contains information regarding organisation id.
* @return request builder
*/
public SetOptionalParamsBuilder setUpiAndOrganisationId(String upi, OrganisationId organisationId) {
return new SetOptionalParamsBuilder(UserInfoType.UPI, upi, organisationId);
}

}

public static class SetOptionalParamsBuilder {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,18 @@ public SetOptionalParamsBuilder setOrganisationId(String identifier) {
return new SetOptionalParamsBuilder(UserInfoType.ORG_ID, identifier);
}

/**
* Sets unique personal identifier as userInfo and {@link UserInfoType#UPI} as
* {@linkplain UserInfoType} for initiating transaction.
*
* @param upi user's unique personal identifier that was previously set by
* Freja
* @return request builder
*/
public SetOptionalParamsBuilder setUpi(String upi) {
return new SetOptionalParamsBuilder(UserInfoType.UPI, upi);
}

}

public static class SetOptionalParamsBuilder {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,20 @@ public static SetCustomIdentifierRequest createDefaultWithSsn(SsnUserInfo ssnUse
customIdentifier, null);
}

/**
* Returns instance of {@linkplain SetCustomIdentifierRequest} with
* {@linkplain UserInfoType} {@code UPI}.
*
* @param upi will be used to identify the end user. It cannot be
* {@code null} or empty. Maximum length is 256 characters.
* @param customIdentifier will be set for user. Maximum length is 128
* characters. It cannot be {@code null} or empty.
* @return request
*/
public static SetCustomIdentifierRequest createDefaultWithUpi(String upi, String customIdentifier) {
return new SetCustomIdentifierRequest(UserInfoType.UPI, upi, customIdentifier, null);
}

/**
* Returns instance of builder that is used for creating
* {@linkplain SetCustomIdentifierRequest} with custom request parameters.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,20 @@ public SetOptionalParamsBuilder setPhoneNumberAndCustomIdentifier(String phoneNu
return new SetOptionalParamsBuilder(UserInfoType.PHONE, phoneNumber, customIdentifier);
}

/**
* Sets upi as userInfo and {@link UserInfoType#UPI} as
* {@linkplain UserInfoType} for initiating transaction.
*
* @param upi user's unique personal indentifier that will be used to identify
* the end user.
* @param customIdentifier will be set for user. Maximum length is 128
* characters. It cannot be {@code null} or empty.
* @return request builder
*/
public SetOptionalParamsBuilder setUpiAndCustomIdentifier(String upi, String customIdentifier) {
return new SetOptionalParamsBuilder(UserInfoType.UPI, upi, customIdentifier);
}

}

public static class SetOptionalParamsBuilder {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@
* <br> - {@link #SSN}
* <br> - {@link #PHONE}
* <br> - {@link #INFERRED}
* <br> - {@link #ORG_ID}
* <br> - {@link #UPI}
*/
public enum UserInfoType {

Expand All @@ -31,6 +33,10 @@ public enum UserInfoType {
* UserInfoType org_id for initiating transaction with organisation id of
* user.
*/
ORG_ID;

ORG_ID,
/**
* UserInfoType upi for initiating transaction with unique personal identifier of
* user.
*/
UPI;
}
Original file line number Diff line number Diff line change
Expand Up @@ -140,6 +140,24 @@ public void initiateAuthenticationV1_1_success()
initAuthenticationRequestWithRegistrationStateAndRelyingPartyId,
initAuthResponseString);



InitiateAuthenticationRequest initAuthenticationRequestWithUpi =
InitiateAuthenticationRequest.createCustom()
.setUpi(UPI)
.setMinRegistrationLevel(MinRegistrationLevel.EXTENDED)
.setRelyingPartyId(RELYING_PARTY_ID)
.build();
InitiateAuthenticationRequest expectedInitAuthenticationRequestWithUpi =
InitiateAuthenticationRequest.createCustom()
.setUpi(UPI)
.setMinRegistrationLevel(MinRegistrationLevel.EXTENDED)
.build();

sendInitiateAuthenticationV1_1RequestAndAssertResponse(expectedInitAuthenticationRequestWithUpi,
initAuthenticationRequestWithUpi,
initAuthResponseString);

}

@Test
Expand Down Expand Up @@ -202,6 +220,22 @@ public void initiateAuthentication_success()
sendInitiateAuthenticationRequestAndAssertResponse(expectedInitAuthenticationRequestWithRegistrationStateAndRelyingPartyId,
initAuthenticationRequestWithRegistrationStateAndRelyingPartyId,
initAuthResponseString);

InitiateAuthenticationRequest initAuthenticationRequestWithUpi =
InitiateAuthenticationRequest.createCustom()
.setUpi(UPI)
.setMinRegistrationLevel(MinRegistrationLevel.EXTENDED)
.setRelyingPartyId(RELYING_PARTY_ID)
.build();
InitiateAuthenticationRequest expectedInitAuthenticationRequestWithUpi =
InitiateAuthenticationRequest.createCustom()
.setUpi(UPI)
.setMinRegistrationLevel(MinRegistrationLevel.EXTENDED)
.build();

sendInitiateAuthenticationRequestAndAssertResponse(expectedInitAuthenticationRequestWithUpi,
initAuthenticationRequestWithUpi,
initAuthResponseString);
}

@Test
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ public abstract class CommonHttpTest {
protected static final String QR_CODE_SECRET = "qrCodeSecret";
protected static final String EMAIL = "eid.demo.verisec@gmail.com";
protected static final String SSN = "123455697887";
protected static final String UPI = "5633-823597-7862";
protected static final String RELYING_PARTY_ID = "relying_party_id";
protected static final SsnUserInfo SSN_USER_INFO = SsnUserInfo.create(Country.SWEDEN, SSN);
protected static final BasicUserInfo BASIC_USER_INFO = new BasicUserInfo("John", "Fante");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,13 +53,23 @@ public void setCustomAttribute_success()
SetCustomIdentifierRequest.createDefaultWithSsn(SsnUserInfo.create(Country.NORWAY, SSN),
CUSTOM_IDENTIFIER);
sendSetCustomIdentifierRequestAndAssertResponse(customIdentifierRequestDefaultSsn);

SetCustomIdentifierRequest customIdentifierRequestDefaultUpi =
SetCustomIdentifierRequest.createDefaultWithUpi(UPI, CUSTOM_IDENTIFIER);
sendSetCustomIdentifierRequestAndAssertResponse(customIdentifierRequestDefaultUpi);

SetCustomIdentifierRequest customIdentifierRequestEmail =
SetCustomIdentifierRequest.createCustom().setEmailAndCustomIdentifier(EMAIL, CUSTOM_IDENTIFIER).build();
sendSetCustomIdentifierRequestAndAssertResponse(customIdentifierRequestEmail);
SetCustomIdentifierRequest customIdentifierRequestSsn =
SetCustomIdentifierRequest.createCustom()
.setSsnAndCustomIdentifier(SsnUserInfo.create(Country.NORWAY, SSN), CUSTOM_IDENTIFIER).build();
sendSetCustomIdentifierRequestAndAssertResponse(customIdentifierRequestSsn);

SetCustomIdentifierRequest customIdentifierRequestUpi =
SetCustomIdentifierRequest.createCustom().setUpiAndCustomIdentifier(UPI, CUSTOM_IDENTIFIER).build();
sendSetCustomIdentifierRequestAndAssertResponse(customIdentifierRequestUpi);

SetCustomIdentifierRequest customIdentifierRequestPhoneNum =
SetCustomIdentifierRequest.createCustom()
.setPhoneNumberAndCustomIdentifier(EMAIL, CUSTOM_IDENTIFIER).build();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,15 @@ public void initAddOrganisationId_success()
.build();
sendInitiateAddOrganisationIdRequestAndAssertResponse(initAddOrganisationIdRequestCustomPhoneNum);

InitiateAddOrganisationIdRequest initAddOrganisationIdRequestUpi =
InitiateAddOrganisationIdRequest.createCustom()
.setUpiAndOrganisationId(UPI, OrganisationId.create(ORGANISATION_ID_TITLE,
IDENTIFIER_NAME, IDENTIFIER))
.setExpiry(Long.MAX_VALUE)
.setMinRegistrationLevel(MinRegistrationLevel.BASIC)
.build();
sendInitiateAddOrganisationIdRequestAndAssertResponse(initAddOrganisationIdRequestUpi);

InitiateAddOrganisationIdRequest initAddOrganisationIdRequestWithRelyingPartyId =
InitiateAddOrganisationIdRequest.createCustom()
.setEmailAndOrganisationId(EMAIL, OrganisationId.create(ORGANISATION_ID_TITLE,
Expand Down Expand Up @@ -149,6 +158,22 @@ public void initAddOrganisationId_success()
.build();
sendInitiateAddOrganisationIdRequestAndAssertResponse(expectedInitAddOrganisationIdRequestWithDefaultValues,
initAddOrganisationIdRequestWithDefaultValues);

InitiateAddOrganisationIdRequest initAddOrganisationIdRequestWithUpi =
InitiateAddOrganisationIdRequest.createCustom()
.setUpiAndOrganisationId(UPI,
OrganisationId.create(ORGANISATION_ID_TITLE, IDENTIFIER_NAME,
IDENTIFIER))
.setRelyingPartyId(RELYING_PARTY_ID)
.build();
InitiateAddOrganisationIdRequest expectedInitAddOrganisationIdRequestWithUpi =
InitiateAddOrganisationIdRequest.createCustom()
.setUpiAndOrganisationId(UPI,
OrganisationId.create(ORGANISATION_ID_TITLE, IDENTIFIER_NAME,
IDENTIFIER))
.build();
sendInitiateAddOrganisationIdRequestAndAssertResponse(expectedInitAddOrganisationIdRequestWithUpi,
initAddOrganisationIdRequestWithUpi);
}

@Test
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -140,6 +140,18 @@ public void initiateSignV1_1_success()
.build();
sendInitiateV11SignRequestAndAssertResponse(initSignCustomRequestWithAdvancedSignatureType);


InitiateSignRequest initSignCustomRequestWithUpi = InitiateSignRequest.createCustom()
.setUpi(UPI)
.setDataToSign(DataToSign.create(dataToSignText, binaryData))
.setRelyingPartyId(RELYING_PARTY_ID)
.build();
InitiateSignRequest expectedInitSignCustomRequestWithUpi = InitiateSignRequest.createCustom()
.setUpi(UPI)
.setDataToSign(DataToSign.create(dataToSignText, binaryData))
.build();
sendInitiateV11SignRequestAndAssertResponse(expectedInitSignCustomRequestWithUpi,
initSignCustomRequestWithUpi);
}

@Test
Expand Down Expand Up @@ -247,6 +259,14 @@ public void initiateSign_success()
.build();
sendInitiateSignRequestAndAssertResponse(initSignCustomRequestWithAdvancedSignatureType);

InitiateSignRequest initSignCustomRequestWithUpi = InitiateSignRequest.createCustom()
.setUpi(UPI)
.setDataToSign(DataToSign.create(dataToSignText), SignatureType.XML_MINAMEDDELANDEN)
.setMinRegistrationLevel(MinRegistrationLevel.PLUS)
.setAttributesToReturn(ATTRIBUTES_TO_RETURN)
.build();
sendInitiateSignRequestAndAssertResponse(initSignCustomRequestWithUpi);

}

@Test
Expand Down