From a77631e14be92cd4a981568391775f1f4cfffbf1 Mon Sep 17 00:00:00 2001 From: Djordje Miletic Date: Tue, 10 Feb 2026 12:29:25 +0100 Subject: [PATCH] Added support for setting text when initiating org id transaction. --- FrejaEidClient/pom.xml | 2 +- .../InitiateAddOrganisationIdRequest.java | 22 ++++++++++++++----- ...tiateAddOrganisationIdRequestBuilders.java | 21 ++++++++++++++---- ...eAddOrganisationIdRequestBuildersTest.java | 19 +++++++++------- 4 files changed, 45 insertions(+), 19 deletions(-) diff --git a/FrejaEidClient/pom.xml b/FrejaEidClient/pom.xml index 3339c73..269b849 100644 --- a/FrejaEidClient/pom.xml +++ b/FrejaEidClient/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.verisec.frejaeid FrejaEidClient - 2.33.0-SNAPSHOT + 2.34.0-SNAPSHOT jar FrejaEidClient diff --git a/FrejaEidClient/src/main/java/com/verisec/frejaeid/client/beans/organisationid/init/InitiateAddOrganisationIdRequest.java b/FrejaEidClient/src/main/java/com/verisec/frejaeid/client/beans/organisationid/init/InitiateAddOrganisationIdRequest.java index 7b87ae9..70ee606 100644 --- a/FrejaEidClient/src/main/java/com/verisec/frejaeid/client/beans/organisationid/init/InitiateAddOrganisationIdRequest.java +++ b/FrejaEidClient/src/main/java/com/verisec/frejaeid/client/beans/organisationid/init/InitiateAddOrganisationIdRequest.java @@ -21,6 +21,7 @@ public class InitiateAddOrganisationIdRequest implements RelyingPartyRequest { private final OrganisationId organisationId; private final MinRegistrationLevel minRegistrationLevel; private final Long expiry; + private final String text; private final String relyingPartyId; /** @@ -35,7 +36,7 @@ public class InitiateAddOrganisationIdRequest implements RelyingPartyRequest { */ public static InitiateAddOrganisationIdRequest createDefaultWithEmail(String email, OrganisationId organisationId) { return new InitiateAddOrganisationIdRequest(UserInfoType.EMAIL, email, organisationId, - MinRegistrationLevel.EXTENDED, null, null); + MinRegistrationLevel.EXTENDED, null, null); } /** @@ -55,7 +56,7 @@ public static InitiateAddOrganisationIdRequest createDefaultWithSsn(SsnUserInfo OrganisationId organisationId) throws FrejaEidClientInternalException { return new InitiateAddOrganisationIdRequest(UserInfoType.SSN, UserInfoUtil.convertSsnUserInfo(ssnUserInfo), - organisationId, MinRegistrationLevel.EXTENDED, null, null); + organisationId, MinRegistrationLevel.EXTENDED, null, null); } /** @@ -75,18 +76,20 @@ private InitiateAddOrganisationIdRequest( @JsonProperty(value = "userInfo") String userInfo, @JsonProperty(value = "organisationId") OrganisationId organisationId, @JsonProperty(value = "minRegistrationLevel") MinRegistrationLevel minRegistrationLevel, - @JsonProperty(value = "expiry") Long expiry) { - this(userInfoType, userInfo, organisationId, minRegistrationLevel, expiry, null); + @JsonProperty(value = "expiry") Long expiry, + @JsonProperty(value = "text") String text) { + this(userInfoType, userInfo, organisationId, minRegistrationLevel, expiry, text, null); } InitiateAddOrganisationIdRequest(UserInfoType userInfoType, String userInfo, OrganisationId organisationId, MinRegistrationLevel minRegistrationLevel, - Long expiry, String relyingPartyId) { + Long expiry, String text, String relyingPartyId) { this.userInfoType = userInfoType; this.userInfo = userInfo; this.organisationId = organisationId; this.minRegistrationLevel = minRegistrationLevel; this.expiry = expiry; + this.text = text; this.relyingPartyId = relyingPartyId; } @@ -110,6 +113,10 @@ public Long getExpiry() { return expiry; } + public String getText() { + return text; + } + @JsonIgnore public String getRelyingPartyId() { return relyingPartyId; @@ -117,7 +124,8 @@ public String getRelyingPartyId() { @Override public int hashCode() { - return Objects.hash(userInfoType, userInfo, organisationId, minRegistrationLevel, expiry, relyingPartyId); + return Objects.hash(userInfoType, userInfo, organisationId, minRegistrationLevel, + expiry, text, relyingPartyId); } @Override @@ -130,6 +138,7 @@ public boolean equals(Object o) { Objects.equals(organisationId, that.organisationId) && minRegistrationLevel == that.minRegistrationLevel && Objects.equals(expiry, that.expiry) && + Objects.equals(text, that.text) && Objects.equals(relyingPartyId, that.relyingPartyId); } @@ -141,6 +150,7 @@ public String toString() { ", organisationId=" + organisationId + ", minRegistrationLevel=" + minRegistrationLevel + ", expiry=" + expiry + + ", text=" + text + ", relyingPartyId='" + relyingPartyId + '\'' + '}'; } diff --git a/FrejaEidClient/src/main/java/com/verisec/frejaeid/client/beans/organisationid/init/InitiateAddOrganisationIdRequestBuilders.java b/FrejaEidClient/src/main/java/com/verisec/frejaeid/client/beans/organisationid/init/InitiateAddOrganisationIdRequestBuilders.java index a7b5e34..b27e504 100644 --- a/FrejaEidClient/src/main/java/com/verisec/frejaeid/client/beans/organisationid/init/InitiateAddOrganisationIdRequestBuilders.java +++ b/FrejaEidClient/src/main/java/com/verisec/frejaeid/client/beans/organisationid/init/InitiateAddOrganisationIdRequestBuilders.java @@ -41,7 +41,7 @@ public SetOptionalParamsBuilder setEmailAndOrganisationId(String email, Organisa public SetOptionalParamsBuilder setSsnAndOrganisationId(SsnUserInfo ssnUserInfo, OrganisationId organisationId) throws FrejaEidClientInternalException { return new SetOptionalParamsBuilder(UserInfoType.SSN, UserInfoUtil.convertSsnUserInfo(ssnUserInfo), - organisationId); + organisationId); } /** @@ -75,7 +75,7 @@ public SetOptionalParamsBuilder setInferredAndOrganisationId(OrganisationId orga * 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 + * @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. @@ -94,6 +94,7 @@ public static class SetOptionalParamsBuilder { private final OrganisationId organisationId; private MinRegistrationLevel minRegistrationLevel = MinRegistrationLevel.EXTENDED; private Long expiry = null; + private String text = null; private String relyingPartyId = null; private SetOptionalParamsBuilder(UserInfoType userInfoType, String userInfo, OrganisationId organisationId) { @@ -134,6 +135,17 @@ public SetOptionalParamsBuilder setExpiry(Long timeToExpiry) { return this; } + /** + * Text which will be displayed to the user when adding organisation id + * + * @param text optional parameter. + * @return request builder + */ + public SetOptionalParamsBuilder setText(String text) { + this.text = text; + return this; + } + /** * Only relying parties that are integrators should use this * method. @@ -148,8 +160,9 @@ public SetOptionalParamsBuilder setRelyingPartyId(String relyingPartyId) { } public InitiateAddOrganisationIdRequest build() { - return new InitiateAddOrganisationIdRequest(userInfoType, userInfo, organisationId, minRegistrationLevel, - expiry, relyingPartyId); + return new InitiateAddOrganisationIdRequest( + userInfoType, userInfo, organisationId, minRegistrationLevel, + expiry, text, relyingPartyId); } } diff --git a/FrejaEidClient/src/test/java/com/verisec/frejaeid/client/beans/organisationid/init/InitiateAddOrganisationIdRequestBuildersTest.java b/FrejaEidClient/src/test/java/com/verisec/frejaeid/client/beans/organisationid/init/InitiateAddOrganisationIdRequestBuildersTest.java index e2fcc23..95b0fd3 100644 --- a/FrejaEidClient/src/test/java/com/verisec/frejaeid/client/beans/organisationid/init/InitiateAddOrganisationIdRequestBuildersTest.java +++ b/FrejaEidClient/src/test/java/com/verisec/frejaeid/client/beans/organisationid/init/InitiateAddOrganisationIdRequestBuildersTest.java @@ -17,6 +17,7 @@ public class InitiateAddOrganisationIdRequestBuildersTest { private static final String PHONE_NUMBER = "123123123"; private static final MinRegistrationLevel REGISTRATION_STATE = MinRegistrationLevel.PLUS; private static final Long EXPIRY = Long.MIN_VALUE; + private static final String TEXT = "Custom text"; private static final String ORGANISATION_ID_TITLE = "OrgananisationId title"; private static final String IDENTIFIER_NAME = "Identifier name"; private static final String IDENTIFIER = "identifier"; @@ -29,7 +30,7 @@ public class InitiateAddOrganisationIdRequestBuildersTest { public void createDefaultEmailRequest() { InitiateAddOrganisationIdRequest expectedInitiateAddOrganisationIdRequest = new InitiateAddOrganisationIdRequest(UserInfoType.EMAIL, EMAIL, ORGANISATION_ID, - MinRegistrationLevel.EXTENDED, null, null); + MinRegistrationLevel.EXTENDED, null, null, null); InitiateAddOrganisationIdRequest initiateAddOrganisationIdRequest = InitiateAddOrganisationIdRequest.createDefaultWithEmail(EMAIL, ORGANISATION_ID); Assert.assertEquals(expectedInitiateAddOrganisationIdRequest, initiateAddOrganisationIdRequest); @@ -39,7 +40,7 @@ public void createDefaultEmailRequest() { public void createDefaultSsnRequest() throws FrejaEidClientInternalException { InitiateAddOrganisationIdRequest expectedInitiateAddOrganisationIdRequest = new InitiateAddOrganisationIdRequest(UserInfoType.SSN, UserInfoUtil.convertSsnUserInfo(SSN_USER_INFO), - ORGANISATION_ID, MinRegistrationLevel.EXTENDED, null, null); + ORGANISATION_ID, MinRegistrationLevel.EXTENDED, null, null, null); InitiateAddOrganisationIdRequest initiateAddOrganisationIdRequest = InitiateAddOrganisationIdRequest.createDefaultWithSsn(SSN_USER_INFO, ORGANISATION_ID); Assert.assertEquals(expectedInitiateAddOrganisationIdRequest, initiateAddOrganisationIdRequest); @@ -49,13 +50,14 @@ public void createDefaultSsnRequest() throws FrejaEidClientInternalException { public void createCustomRequest_userInfoTypeEmail() { InitiateAddOrganisationIdRequest expectedInitiateAddOrganisationIdRequest = new InitiateAddOrganisationIdRequest(UserInfoType.EMAIL, EMAIL, ORGANISATION_ID, - REGISTRATION_STATE, EXPIRY, RELYING_PARTY_ID); + REGISTRATION_STATE, EXPIRY, TEXT, RELYING_PARTY_ID); InitiateAddOrganisationIdRequest initiateAddOrganisationIdRequest = InitiateAddOrganisationIdRequest.createCustom() .setEmailAndOrganisationId(EMAIL, ORGANISATION_ID) .setMinRegistrationLevel(REGISTRATION_STATE) .setExpiry(EXPIRY) .setRelyingPartyId(RELYING_PARTY_ID) + .setText(TEXT) .build(); Assert.assertEquals(expectedInitiateAddOrganisationIdRequest, initiateAddOrganisationIdRequest); } @@ -64,7 +66,7 @@ public void createCustomRequest_userInfoTypeEmail() { public void createCustomRequest_userInfoTypeEmail_defaultRegistrationState() { InitiateAddOrganisationIdRequest expectedInitiateAddOrganisationIdRequest = new InitiateAddOrganisationIdRequest(UserInfoType.EMAIL, EMAIL, ORGANISATION_ID, - MinRegistrationLevel.EXTENDED, null, RELYING_PARTY_ID); + MinRegistrationLevel.EXTENDED, null, null, RELYING_PARTY_ID); InitiateAddOrganisationIdRequest initiateAddOrganisationIdRequest = InitiateAddOrganisationIdRequest.createCustom() .setEmailAndOrganisationId(EMAIL, ORGANISATION_ID) @@ -77,7 +79,7 @@ public void createCustomRequest_userInfoTypeEmail_defaultRegistrationState() { public void createCustomRequest_userInfoTypeSsn() throws FrejaEidClientInternalException { InitiateAddOrganisationIdRequest expectedInitiateAddOrganisationIdRequest = new InitiateAddOrganisationIdRequest(UserInfoType.SSN, UserInfoUtil.convertSsnUserInfo(SSN_USER_INFO), - ORGANISATION_ID, MinRegistrationLevel.EXTENDED, null, + ORGANISATION_ID, MinRegistrationLevel.EXTENDED, null, null, RELYING_PARTY_ID); InitiateAddOrganisationIdRequest initiateAddOrganisationIdRequest = InitiateAddOrganisationIdRequest.createCustom() @@ -91,7 +93,7 @@ public void createCustomRequest_userInfoTypeSsn() throws FrejaEidClientInternalE public void createCustomRequest_userInfoTypePhoneNumber() { InitiateAddOrganisationIdRequest expectedInitiateAddOrganisationIdRequest = new InitiateAddOrganisationIdRequest(UserInfoType.PHONE, PHONE_NUMBER, ORGANISATION_ID, - MinRegistrationLevel.EXTENDED, EXPIRY, null); + MinRegistrationLevel.EXTENDED, EXPIRY, null, null); InitiateAddOrganisationIdRequest initiateAddOrganisationIdRequest = InitiateAddOrganisationIdRequest.createCustom() .setPhoneNumberAndOrganisationId(PHONE_NUMBER, ORGANISATION_ID) @@ -104,11 +106,12 @@ public void createCustomRequest_userInfoTypePhoneNumber() { public void createCustomRequest_userInfoTypeInferred() { InitiateAddOrganisationIdRequest expectedInitiateAuthenticationRequest = new InitiateAddOrganisationIdRequest(UserInfoType.INFERRED, INFERRED_USER_INFO, ORGANISATION_ID, - MinRegistrationLevel.EXTENDED, EXPIRY, null); + MinRegistrationLevel.EXTENDED, EXPIRY, TEXT, null); InitiateAddOrganisationIdRequest initiateAuthenticationRequest = InitiateAddOrganisationIdRequest.createCustom() .setInferredAndOrganisationId(ORGANISATION_ID) .setExpiry(EXPIRY) + .setText(TEXT) .build(); Assert.assertEquals(expectedInitiateAuthenticationRequest, initiateAuthenticationRequest); } @@ -117,7 +120,7 @@ public void createCustomRequest_userInfoTypeInferred() { public void createCustomRequest_minRegistrationLevelAndRelyingPartyIdNull() { InitiateAddOrganisationIdRequest expectedInitiateAddOrganisationIdRequest = new InitiateAddOrganisationIdRequest(UserInfoType.PHONE, PHONE_NUMBER, ORGANISATION_ID, - MinRegistrationLevel.EXTENDED, EXPIRY, null); + MinRegistrationLevel.EXTENDED, EXPIRY, null, null); InitiateAddOrganisationIdRequest initiateAddOrganisationIdRequest = InitiateAddOrganisationIdRequest.createCustom() .setPhoneNumberAndOrganisationId(PHONE_NUMBER, ORGANISATION_ID)