diff --git a/config_templates/application.yml b/config_templates/application.yml index e9328058ee0971def1c94d9b016f734ba1dc3f7a..079550b2cacae44906b8a9ac9b02066cd027f2ee 100644 --- a/config_templates/application.yml +++ b/config_templates/application.yml @@ -49,6 +49,7 @@ application: sp_managers_vo_id: 363 sp_managers_parent_group_id: 7765 update_mfa_categories_enabled: false + mfa_categories_namespace_attribute_key: "categories" attributes: names: diff --git a/src/main/java/cz/metacentrum/perun/spRegistration/common/configs/AppBeansContainer.java b/src/main/java/cz/metacentrum/perun/spRegistration/common/configs/AppBeansContainer.java index 067615d25010353b77aa9f60240649365ef2147b..25dfc33b132a168b5532c37cab93a03145669806 100644 --- a/src/main/java/cz/metacentrum/perun/spRegistration/common/configs/AppBeansContainer.java +++ b/src/main/java/cz/metacentrum/perun/spRegistration/common/configs/AppBeansContainer.java @@ -65,10 +65,12 @@ public class AppBeansContainer { private void checkMfaCategories() { if (applicationProperties.isUpdateMfaCategoriesEnabled() && (!StringUtils.hasText(attributesProperties.getNames().getMfaCategories()) - || !StringUtils.hasText(attributesProperties.getNames().getServiceCategory())) - ) { - throw new IllegalStateException("MFA categories are enabled, but attributes " + - "mfaCategories or serviceCategory are not provided"); + || !StringUtils.hasText(attributesProperties.getNames().getServiceCategory()) + || !StringUtils.hasText(applicationProperties.getMfaCategoriesNamespaceAttributeKey())) + ){ + throw new IllegalStateException("MFA categories are enabled, but either attributes " + + "mfaCategories or serviceCategory are not provided, or no namespace key " + + "has been specified"); } } diff --git a/src/main/java/cz/metacentrum/perun/spRegistration/common/configs/ApplicationProperties.java b/src/main/java/cz/metacentrum/perun/spRegistration/common/configs/ApplicationProperties.java index 3f87046e7e155d595a8e8ce657c14201b6e49b8e..ef43e25b394fdde84dde02d1dcb877b967ef649d 100644 --- a/src/main/java/cz/metacentrum/perun/spRegistration/common/configs/ApplicationProperties.java +++ b/src/main/java/cz/metacentrum/perun/spRegistration/common/configs/ApplicationProperties.java @@ -40,22 +40,25 @@ public class ApplicationProperties { private boolean externalServicesEnabled = false; private boolean updateMfaCategoriesEnabled = false; + private String mfaCategoriesNamespaceAttributeKey = "categories"; + @Override public String toString() { return "ApplicationConfiguration{" + - "adminSubs=" + adminSubs + - ", adminEntitlements=" + adminEntitlements + - ", proxyIdentifier='" + proxyIdentifier + '\'' + - ", protocolsEnabled=" + protocolsEnabled + - ", languagesEnabled=" + languagesEnabled + - ", secretKey='*******************'" + - ", hostUrl='" + hostUrl + '\'' + - ", logoutUrl='" + logoutUrl + '\'' + - ", mailsConfig='" + mailsConfigFilePath + '\'' + - ", startupSyncEnabled='" + startupSyncEnabled + '\'' + - ", updateMfaCategoriesEnabled='" + updateMfaCategoriesEnabled + '\'' + - ", externalServicesEnabled=" + externalServicesEnabled + - '}'; + "adminSubs=" + adminSubs + + ", adminEntitlements=" + adminEntitlements + + ", proxyIdentifier='" + proxyIdentifier + '\'' + + ", protocolsEnabled=" + protocolsEnabled + + ", languagesEnabled=" + languagesEnabled + + ", secretKey='*******************'" + + ", hostUrl='" + hostUrl + '\'' + + ", logoutUrl='" + logoutUrl + '\'' + + ", mailsConfig='" + mailsConfigFilePath + '\'' + + ", startupSyncEnabled='" + startupSyncEnabled + '\'' + + ", externalServicesEnabled=" + externalServicesEnabled + + ", updateMfaCategoriesEnabled='" + updateMfaCategoriesEnabled + '\'' + + ", mfaCategoriesNamespaceAttributeKey=" + mfaCategoriesNamespaceAttributeKey + + '}'; } @PostConstruct diff --git a/src/main/java/cz/metacentrum/perun/spRegistration/service/impl/RequestsServiceImpl.java b/src/main/java/cz/metacentrum/perun/spRegistration/service/impl/RequestsServiceImpl.java index 3b4084e46f1e379ce8cddfad4810fb5c15851d20..f394c222cc17812eb16511b77be7aebfa173e35b 100644 --- a/src/main/java/cz/metacentrum/perun/spRegistration/service/impl/RequestsServiceImpl.java +++ b/src/main/java/cz/metacentrum/perun/spRegistration/service/impl/RequestsServiceImpl.java @@ -84,7 +84,6 @@ public class RequestsServiceImpl implements RequestsService { @NonNull private final RequestManager requestManager; @NonNull private final LinkCodeManager linkCodeManager; @NonNull private final AuditLogsManager auditLogsManager; - @NonNull private final FacilitiesService facilitiesService; @NonNull private final AppBeansContainer applicationBeans; @NonNull private final ApplicationProperties applicationProperties; @NonNull private final AttributesProperties attributesProperties; @@ -99,7 +98,6 @@ public class RequestsServiceImpl implements RequestsService { @NonNull RequestManager requestManager, @NonNull LinkCodeManager linkCodeManager, @NonNull AuditLogsManager auditLogsManager, - @NonNull FacilitiesService facilitiesService, @NonNull AppBeansContainer applicationBeans, @NonNull ApplicationProperties applicationProperties, @NonNull AttributesProperties attributesProperties, @@ -113,7 +111,6 @@ public class RequestsServiceImpl implements RequestsService { this.requestManager = requestManager; this.linkCodeManager = linkCodeManager; this.auditLogsManager = auditLogsManager; - this.facilitiesService = facilitiesService; this.applicationBeans = applicationBeans; this.applicationProperties = applicationProperties; this.attributesProperties = attributesProperties; @@ -726,7 +723,8 @@ public class RequestsServiceImpl implements RequestsService { getAttributeDefinition(attributeNames.getMfaCategories()); ObjectNode mfaCategoriesJson = (ObjectNode) mfaCategoriesDef.toJson(); mfaCategoriesJson.put("value", rootNode.toString()); - perunAdapter.setAttribute("categories", mfaCategoriesJson); + perunAdapter.setAttribute( + applicationProperties.getMfaCategoriesNamespaceAttributeKey(), mfaCategoriesJson); } catch (PerunUnknownException | PerunConnectionException e) { log.error("Failed to set MfaCategories perun attribute.", e); } diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml index 091485aff3b0072efb90382c9119a9e00fabbcb7..be1ecbe6e23acff9878ea38e665cb4b58210ee92 100644 --- a/src/main/resources/application-dev.yml +++ b/src/main/resources/application-dev.yml @@ -39,6 +39,7 @@ application: sp_managers_parent_group_id: 1 startup_sync_enabled: false update_mfa_categories_enabled: false + mfa_categories_namespace_attribute_key: "categories" attributes: names: