diff options
3 files changed, 29 insertions, 13 deletions
| diff --git a/basicConfig/default_config.properties b/basicConfig/default_config.properties index df2f899b..2f809ddb 100644 --- a/basicConfig/default_config.properties +++ b/basicConfig/default_config.properties @@ -26,12 +26,12 @@ eidas.ms.core.pendingrequestid.digist.secret=pendingReqIdSecret  ## eIDAS Ref. Implementation connector ###  eidas.ms.auth.eIDAS.node_v2.entityId=ownSpecificConnector  eidas.ms.auth.eIDAS.node_v2.forward.endpoint= -#eidas.ms.auth.eIDAS.node_v2.forward.endpoint=  eidas.ms.auth.eIDAS.node_v2.forward.method=POST  eidas.ms.auth.eIDAS.node_v2.countrycode=AT  eidas.ms.auth.eIDAS.node_v2.publicSectorTargets=.*  eidas.ms.auth.eIDAS.node_v2.workarounds.addAlwaysProviderName=true  eidas.ms.auth.eIDAS.node_v2.workarounds.useRequestIdAsTransactionIdentifier=true +eidas.ms.auth.eIDAS.node_v2.workarounds.useStaticProviderNameForPublicSPs=true  eidas.ms.auth.eIDAS.node_v2.loa.requested.minimum=http://eidas.europa.eu/LoA/high diff --git a/eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/authmodule_eIDASv2/Constants.java b/eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/authmodule_eIDASv2/Constants.java index 7451bfb1..bceb9beb 100644 --- a/eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/authmodule_eIDASv2/Constants.java +++ b/eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/authmodule_eIDASv2/Constants.java @@ -57,8 +57,11 @@ public class Constants {  	public static final String CONIG_PROPS_EIDAS_NODE_FORWARD_METHOD = CONIG_PROPS_EIDAS_NODE + ".forward.method";  	public static final String CONIG_PROPS_EIDAS_NODE_ATTRIBUTES_REQUESTED_ONLYNATURAL = CONIG_PROPS_EIDAS_NODE + ".attributes.requested.onlynatural.";  	public static final String CONIG_PROPS_EIDAS_NODE_ATTRIBUTES_REQUESTED_REPRESENTATION = CONIG_PROPS_EIDAS_NODE + ".attributes.requested.representation."; -	public static final String CONIG_PROPS_EIDAS_NODE_WORKAROUND_ADD_ALWAYS_PROVIDERNAME = CONIG_PROPS_EIDAS_NODE + ".workarounds.addAlwaysProviderName";; +	public static final String CONIG_PROPS_EIDAS_NODE_WORKAROUND_ADD_ALWAYS_PROVIDERNAME = CONIG_PROPS_EIDAS_NODE + ".workarounds.addAlwaysProviderName";  	public static final String CONIG_PROPS_EIDAS_NODE_WORKAROUND_USEREQUESTIDASTRANSACTIONIDENTIFIER = CONIG_PROPS_EIDAS_NODE + ".workarounds.useRequestIdAsTransactionIdentifier"; +	public static final String CONIG_PROPS_EIDAS_NODE_WORKAROUND_USE_STATIC_PROVIDERNAME_FOR_PUBLIC_SP = CONIG_PROPS_EIDAS_NODE + ".workarounds.useStaticProviderNameForPublicSPs"; +	public static final String CONIG_PROPS_EIDAS_NODE_STATIC_PROVIDERNAME_FOR_PUBLIC_SP = CONIG_PROPS_EIDAS_NODE + ".staticProviderNameForPublicSPs";; +	public static final String DEFAULT_PROPS_EIDAS_NODE_STATIC_PROVIDERNAME_FOR_PUBLIC_SP = "ERnB";  	public static final String FORWARD_METHOD_POST = "POST";  	public static final String FORWARD_METHOD_GET = "GET"; @@ -147,5 +150,7 @@ public class Constants {  	 public static final String SZR_CONSTANTS_DEFAULT_PUBKEY_MODULUS = "AJZyj/+sdCMDRq9RkvbFcgSTVn/OfS8EUE81ddwP8MNuJ1kd1SWBUJPaQX2JLJHrL54mkOhrkhH2M/zcuOTu8nW9TOEgXGjrRB/0HpiYKpV+VDJViyyc/GacNLxN4Anw4pima6gHYaJIw9hQkL/nuO2hyh8PGJd7rxeFXJmbLy+X"; + +  } diff --git a/eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/authmodule_eIDASv2/tasks/GenerateAuthnRequestTask.java b/eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/authmodule_eIDASv2/tasks/GenerateAuthnRequestTask.java index b38c3678..f49ed203 100644 --- a/eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/authmodule_eIDASv2/tasks/GenerateAuthnRequestTask.java +++ b/eidas_modules/authmodule-eIDAS-v2/src/main/java/at/asitplus/eidas/specific/modules/authmodule_eIDASv2/tasks/GenerateAuthnRequestTask.java @@ -68,7 +68,7 @@ import eu.eidas.auth.commons.tx.BinaryLightToken;  import eu.eidas.specificcommunication.BinaryLightTokenHelper;  import eu.eidas.specificcommunication.SpecificCommunicationDefinitionBeanNames;  import eu.eidas.specificcommunication.exception.SpecificCommunicationException; -import eu.eidas.specificcommunication.protocol.impl.SpecificConnectorCommunicationServiceImpl; +import eu.eidas.specificcommunication.protocol.SpecificCommunicationService;  /**   * @author tlenz @@ -153,14 +153,25 @@ public class GenerateAuthnRequestTask extends AbstractAuthServletTask {  				log.debug("Map " + spConfig.getAreaSpecificTargetIdentifier() + " to 'PublicSector'");  				authnRequestBuilder.spType(SpType.PUBLIC.getValue()); -				//TODO: only for eIDAS ref. node 2.0 and 2.1 because it need 'Providername' for any SPType  -				String providerName = pendingReq.getRawData(Constants.DATA_PROVIDERNAME, String.class); -				if (StringUtils.isNotEmpty(providerName)  -						&& basicConfig.getBasicConfigurationBoolean( -								Constants.CONIG_PROPS_EIDAS_NODE_WORKAROUND_ADD_ALWAYS_PROVIDERNAME,  -								false) -						) -					authnRequestBuilder.providerName(providerName); +				if ( basicConfig.getBasicConfigurationBoolean( +						Constants.CONIG_PROPS_EIDAS_NODE_WORKAROUND_USE_STATIC_PROVIDERNAME_FOR_PUBLIC_SP,  +						false) ) { +					authnRequestBuilder.providerName(basicConfig.getBasicConfiguration( +							Constants.CONIG_PROPS_EIDAS_NODE_STATIC_PROVIDERNAME_FOR_PUBLIC_SP,  +							Constants.DEFAULT_PROPS_EIDAS_NODE_STATIC_PROVIDERNAME_FOR_PUBLIC_SP)); +					 +				} else {				 +					//TODO: only for eIDAS ref. node 2.0 and 2.1 because it need 'Providername' for any SPType				  +					String providerName = pendingReq.getRawData(Constants.DATA_PROVIDERNAME, String.class); +					if ( StringUtils.isNotEmpty(providerName)  +							&& basicConfig.getBasicConfigurationBoolean( +									Constants.CONIG_PROPS_EIDAS_NODE_WORKAROUND_ADD_ALWAYS_PROVIDERNAME,  +									false) +						) { +						authnRequestBuilder.providerName(providerName); +					 +					} +				}  			} else {  				log.debug("Map " + spConfig.getAreaSpecificTargetIdentifier() + " to 'PrivateSector'"); @@ -316,8 +327,8 @@ public class GenerateAuthnRequestTask extends AbstractAuthServletTask {      private BinaryLightToken putRequestInCommunicationCache(ILightRequest iLightRequest) throws ServletException {          final BinaryLightToken binaryLightToken;          try { -            final SpecificConnectorCommunicationServiceImpl springManagedSpecificConnectorCommunicationService = -                    (SpecificConnectorCommunicationServiceImpl) context.getBean(SpecificCommunicationDefinitionBeanNames.SPECIFIC_CONNECTOR_COMMUNICATION_SERVICE.toString()); +            final SpecificCommunicationService springManagedSpecificConnectorCommunicationService = +                    (SpecificCommunicationService) context.getBean(SpecificCommunicationDefinitionBeanNames.SPECIFIC_CONNECTOR_COMMUNICATION_SERVICE.toString());              binaryLightToken = springManagedSpecificConnectorCommunicationService.putRequest(iLightRequest); | 
