diff --git a/src/main/java/edu/harvard/iq/dataverse/authorization/providers/shib/ShibServiceBean.java b/src/main/java/edu/harvard/iq/dataverse/authorization/providers/shib/ShibServiceBean.java index ca247d0c9c2..3e986a15689 100644 --- a/src/main/java/edu/harvard/iq/dataverse/authorization/providers/shib/ShibServiceBean.java +++ b/src/main/java/edu/harvard/iq/dataverse/authorization/providers/shib/ShibServiceBean.java @@ -64,6 +64,8 @@ public enum DevShibAccountType { UID_WITH_LEADING_SPACE, IDENTIFIER_WITH_LEADING_SPACE, MISSING_REQUIRED_ATTR, + ONE_AFFILIATION, + TWO_AFFILIATIONS, }; public DevShibAccountType getDevShibAccountType() { @@ -146,6 +148,14 @@ public void possiblyMutateRequestInDev(HttpServletRequest request) { ShibUtil.mutateRequestForDevConstantMissingRequiredAttributes(request); break; + case ONE_AFFILIATION: + ShibUtil.mutateRequestForDevConstantOneAffiliation(request); + break; + + case TWO_AFFILIATIONS: + ShibUtil.mutateRequestForDevConstantTwoAffiliations(request); + break; + default: logger.info("Should never reach here"); break; diff --git a/src/main/java/edu/harvard/iq/dataverse/authorization/providers/shib/ShibUtil.java b/src/main/java/edu/harvard/iq/dataverse/authorization/providers/shib/ShibUtil.java index 8d523ceae2f..f8b30710656 100644 --- a/src/main/java/edu/harvard/iq/dataverse/authorization/providers/shib/ShibUtil.java +++ b/src/main/java/edu/harvard/iq/dataverse/authorization/providers/shib/ShibUtil.java @@ -261,6 +261,28 @@ static void mutateRequestForDevConstantMissingRequiredAttributes(HttpServletRequ request.setAttribute(ShibUtil.usernameAttribute, "missing"); } + static void mutateRequestForDevConstantOneAffiliation(HttpServletRequest request) { + request.setAttribute(ShibUtil.shibIdpAttribute, "https://fake.example.com/idp/shibboleth"); + request.setAttribute(ShibUtil.uniquePersistentIdentifier, "oneAffiliation"); + request.setAttribute(ShibUtil.firstNameAttribute, "Lurneen"); + request.setAttribute(ShibUtil.lastNameAttribute, "Lumpkin"); + request.setAttribute(ShibUtil.emailAttribute, "oneAffiliaton@mailinator.com"); + request.setAttribute(ShibUtil.usernameAttribute, "oneAffiliaton"); + // Affiliation. "ou" is the suggested attribute in :ShibAffiliationAttribute. + request.setAttribute("ou", "Beer-N-Brawl"); + } + + static void mutateRequestForDevConstantTwoAffiliations(HttpServletRequest request) { + request.setAttribute(ShibUtil.shibIdpAttribute, "https://fake.example.com/idp/shibboleth"); + request.setAttribute(ShibUtil.uniquePersistentIdentifier, "twoAffiliatons"); + request.setAttribute(ShibUtil.firstNameAttribute, "Lenny"); + request.setAttribute(ShibUtil.lastNameAttribute, "Leonard"); + request.setAttribute(ShibUtil.emailAttribute, "twoAffiliatons@mailinator.com"); + request.setAttribute(ShibUtil.usernameAttribute, "twoAffiliatons"); + // Affiliation. "ou" is the suggested attribute in :ShibAffiliationAttribute. + request.setAttribute("ou", "SNPP;Stonecutters"); + } + public static Map getRandomUserStatic() { Map fakeUser = new HashMap<>(); String shortRandomString = UUID.randomUUID().toString().substring(0, 8);