package at.gv.egovernment.moa.id.auth.modules.eidproxyauth.utils; import java.util.List; import org.apache.commons.lang3.StringUtils; import at.gv.egiz.eaaf.core.api.idp.IConfiguration; import at.gv.egiz.eaaf.core.api.idp.ISPConfiguration; import at.gv.egiz.eaaf.core.impl.utils.KeyValueUtils; import at.gv.egovernment.moa.id.auth.modules.eidproxyauth.EIDProxyAuthConstants; import at.gv.egovernment.moa.id.commons.api.AuthConfiguration; import at.gv.egovernment.moa.id.commons.config.MOAIDConfigurationConstants; import at.gv.egovernment.moa.logging.Logger; public class Utils { public static final String PARAM_APPREG_SP_ID = "?sp="; public static String getEidSystemApplicationId(ISPConfiguration spConfiguration, String authUrl) { StringBuilder builder = new StringBuilder(); if (authUrl.endsWith("/")) { builder.append(authUrl.substring(0, authUrl.length() - 1)); } else { builder.append(authUrl); } builder.append(PARAM_APPREG_SP_ID); builder.append(spConfiguration.getUniqueIdentifier()); return builder.toString(); } public static String getEIDSystemEntityId(ISPConfiguration spConfiguration, IConfiguration authConfig) { //load from service-provider configuration String msNodeEntityID = spConfiguration.getConfigurationValue(MOAIDConfigurationConstants.SERVICE_EXTERNAL_EID_SYSTEM_SERVICE_URL); if (StringUtils.isEmpty(msNodeEntityID)) { Logger.debug("No SP-specific E-ID system URL. Switch to general configuration ... "); if (authConfig instanceof AuthConfiguration) { AuthConfiguration moaAuthConfig = (AuthConfiguration)authConfig; List configuratedEntityIDs = KeyValueUtils.getListOfCSVValues( moaAuthConfig.getConfigurationWithKey(MOAIDConfigurationConstants.GENERAL_AUTH_SERVICES_EID_SYSTEM_SERVICE_URL)); if (configuratedEntityIDs.size() > 0) msNodeEntityID = configuratedEntityIDs.get(0); else Logger.info("No E-ID system URL in IDP configuration. Switch to backup configuration ... "); } else Logger.info("Basic configuration is NOT of type '" + AuthConfiguration.class.getName() + "' Switch to generic Type ... "); if (StringUtils.isEmpty(msNodeEntityID)) msNodeEntityID = authConfig.getBasicConfiguration(EIDProxyAuthConstants.CONFIG_PROPS_NODE_ENTITYID); } return msNodeEntityID; } }