diff options
6 files changed, 37 insertions, 7 deletions
| diff --git a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/Constants.java b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/Constants.java index f549db9f3..3062a61e3 100644 --- a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/Constants.java +++ b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/Constants.java @@ -22,11 +22,10 @@   *******************************************************************************/  package at.gv.egovernment.moa.id.configuration; +import java.util.Collections;  import java.util.Hashtable;  import java.util.Map; -import java.util.Collections; -  public class Constants {  	public static final String DEFAULT_VERSION = "1.x"; @@ -96,6 +95,7 @@ public class Constants {  	public static final String IDENIFICATIONTYPE_ERSB = "ERSB";  	public static final String IDENIFICATIONTYPE_ZVR = "ZVR";      public static final String IDENIFICATIONTYPE_STORK = "STORK"; +    public static final String IDENIFICATIONTYPE_EIDAS = "eIDAS";      public static final String IDENIFICATIONTYPE_BASEID = "urn:publicid:gv.at:baseid+";  	public static final String IDENIFICATIONTYPE_BASEID_FN = IDENIFICATIONTYPE_BASEID + "X" + IDENIFICATIONTYPE_FN; @@ -103,6 +103,7 @@ public class Constants {  	public static final String PREFIX_WPBK = "urn:publicid:gv.at:wbpk+";      public static final String PREFIX_STORK = "urn:publicid:gv.at:storkid+"; +    public static final String PREFIX_EIDAS = "urn:publicid:gv.at:eidasid+";      public static final Map<String, String> BUSINESSSERVICENAMES; @@ -113,6 +114,7 @@ public class Constants {  		tmp.put(IDENIFICATIONTYPE_ZVR, "Vereinsnummer");  		tmp.put(IDENIFICATIONTYPE_ERSB, "ERsB Kennzahl");          tmp.put(IDENIFICATIONTYPE_STORK, "STORK"); +        tmp.put(IDENIFICATIONTYPE_EIDAS, "eIDAS");          BUSINESSSERVICENAMES = Collections.unmodifiableMap(tmp);  	} diff --git a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/data/oa/OATargetConfiguration.java b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/data/oa/OATargetConfiguration.java index 19671e502..f660b5feb 100644 --- a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/data/oa/OATargetConfiguration.java +++ b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/data/oa/OATargetConfiguration.java @@ -65,7 +65,8 @@ public class OATargetConfiguration implements IOnlineApplicationData {  				 Constants.IDENIFICATIONTYPE_FN,  				 Constants.IDENIFICATIONTYPE_ZVR,  				 Constants.IDENIFICATIONTYPE_ERSB, -                Constants.IDENIFICATIONTYPE_STORK); +                Constants.IDENIFICATIONTYPE_STORK, +                Constants.IDENIFICATIONTYPE_EIDAS);  	} @@ -120,6 +121,12 @@ public class OATargetConfiguration implements IOnlineApplicationData {  					if (Constants.PREFIX_WPBK.startsWith(split[0]) && split.length >= 2) {  						identificationType = split[1];  						identificationNumber = split[2]; +					 +					} else if (Constants.PREFIX_EIDAS.startsWith(split[0]) && split.length >= 2) { +                        //identificationType = split[1]; // setting at as iden category ? +                        identificationType = Constants.IDENIFICATIONTYPE_EIDAS; +                        identificationNumber = split[1] + "+" + split[2]; // setting sp country as ident type -> sp ident						 +						  					} else if (Constants.PREFIX_STORK.startsWith(split[0]) && split.length >= 2) {                          //identificationType = split[1]; // setting at as iden category ?                          identificationType = Constants.IDENIFICATIONTYPE_STORK; @@ -185,7 +192,11 @@ public class OATargetConfiguration implements IOnlineApplicationData {  			if (idnumber == null)  				idnumber = new IdentificationNumber(); -            if (getIdentificationType().equals(Constants.IDENIFICATIONTYPE_STORK)) { +            if (getIdentificationType().equals(Constants.IDENIFICATIONTYPE_EIDAS)) { +                idnumber.setValue(Constants.PREFIX_EIDAS + num); +                idnumber.setType(Constants.BUSINESSSERVICENAMES.get(getIdentificationType())); +			 +            } else if (getIdentificationType().equals(Constants.IDENIFICATIONTYPE_STORK)) {                  idnumber.setValue(Constants.PREFIX_STORK + "AT" + "+" + num);                  idnumber.setType(Constants.BUSINESSSERVICENAMES.get(getIdentificationType()));              } else { diff --git a/id/moa-id-webgui/src/main/java/at/gv/egovernment/moa/id/config/webgui/validation/task/impl/ServicesProtocolSTORKTask.java b/id/moa-id-webgui/src/main/java/at/gv/egovernment/moa/id/config/webgui/validation/task/impl/ServicesProtocolSTORKTask.java index c7a74d1a1..eb881d465 100644 --- a/id/moa-id-webgui/src/main/java/at/gv/egovernment/moa/id/config/webgui/validation/task/impl/ServicesProtocolSTORKTask.java +++ b/id/moa-id-webgui/src/main/java/at/gv/egovernment/moa/id/config/webgui/validation/task/impl/ServicesProtocolSTORKTask.java @@ -190,7 +190,8 @@ public class ServicesProtocolSTORKTask extends AbstractTaskValidator implements  //		if (MiscUtil.isEmpty(identificationType) ||   //				!MOAIDConfigurationConstants.IDENIFICATIONTYPE_STORK.equals(identificationType)) {  		if (MiscUtil.isNotEmpty(identificationType) &&  -				!MOAIDConfigurationConstants.IDENIFICATIONTYPE_STORK.equals(identificationType)) { +				!(MOAIDConfigurationConstants.IDENIFICATIONTYPE_STORK.equals(identificationType)  +						|| MOAIDConfigurationConstants.IDENIFICATIONTYPE_EIDAS.equals(identificationType))) {  			log.info("STORK V-IDP only allowes identification numbers with STORK prefix.");  			errors.add(new ValidationObjectIdentifier(  					MOAIDConfigurationConstants.SERVICE_AUTH_TARGET_BUSINESS_TYPE,  diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/auth/OAAuthParameter.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/auth/OAAuthParameter.java index b1bba6c17..9f39e32cc 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/auth/OAAuthParameter.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/auth/OAAuthParameter.java @@ -122,7 +122,10 @@ public String getIdentityLinkDomainIdentifier() {  	if (MiscUtil.isNotEmpty(type) && MiscUtil.isNotEmpty(value)) {  		if (MOAIDConstants.IDENIFICATIONTYPE_STORK.equals(type)) {  			return MOAIDConstants.PREFIX_STORK + "AT" + "+" + value; -			 +		 +		} else if (MOAIDConstants.IDENIFICATIONTYPE_EIDAS.equals(type)) { +			return MOAIDConstants.PREFIX_EIDAS + value; +						  		} else {  			return MOAIDConstants.PREFIX_WPBK + type + "+" + value; diff --git a/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/MOAIDConstants.java b/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/MOAIDConstants.java index 6726aacb5..27744273f 100644 --- a/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/MOAIDConstants.java +++ b/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/MOAIDConstants.java @@ -40,11 +40,13 @@ public class MOAIDConstants {  	public static final String PREFIX_WPBK = "urn:publicid:gv.at:wbpk+";      public static final String PREFIX_STORK = "urn:publicid:gv.at:storkid+"; +    public static final String PREFIX_EIDAS = "urn:publicid:gv.at:eidasid+";  	public static final String IDENIFICATIONTYPE_FN = "FN";  	public static final String IDENIFICATIONTYPE_ERSB = "ERSB";  	public static final String IDENIFICATIONTYPE_ZVR = "ZVR";      public static final String IDENIFICATIONTYPE_STORK = "STORK"; +    public static final String IDENIFICATIONTYPE_EIDAS = "eIDAS";      public static final String KEYBOXIDENTIFIER_SECURE = "SecureSignatureKeypair";      public static final String KEYBOXIDENTIFIER_CERTIFIED = "CertifiedKeypair"; @@ -71,6 +73,7 @@ public class MOAIDConstants {  		tmp.put(IDENIFICATIONTYPE_ZVR, "Vereinsnummer");  		tmp.put(IDENIFICATIONTYPE_ERSB, "ERsB Kennzahl");          tmp.put(IDENIFICATIONTYPE_STORK, "STORK"); +        tmp.put(IDENIFICATIONTYPE_EIDAS, "eIDAS");          BUSINESSSERVICENAMES = Collections.unmodifiableMap(tmp);          List<String> awbpk = new ArrayList<String>(); diff --git a/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/config/ConfigurationMigrationUtils.java b/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/config/ConfigurationMigrationUtils.java index a221d30e4..e865c4ed6 100644 --- a/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/config/ConfigurationMigrationUtils.java +++ b/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/config/ConfigurationMigrationUtils.java @@ -184,6 +184,10 @@ public class ConfigurationMigrationUtils {  						if (MOAIDConfigurationConstants.PREFIX_WPBK.startsWith(split[0]) && split.length >= 2) {							  							result.put(MOAIDConfigurationConstants.SERVICE_AUTH_TARGET_BUSINESS_TYPE, split[1]);  							result.put(MOAIDConfigurationConstants.SERVICE_AUTH_TARGET_BUSINESS_VALUE, split[2]); +						 +						} else if (MOAIDConfigurationConstants.PREFIX_EIDAS.startsWith(split[0]) && split.length >= 2) {							 +							result.put(MOAIDConfigurationConstants.SERVICE_AUTH_TARGET_BUSINESS_TYPE, MOAIDConfigurationConstants.IDENIFICATIONTYPE_EIDAS); +							result.put(MOAIDConfigurationConstants.SERVICE_AUTH_TARGET_BUSINESS_VALUE, split[1] + "+" + split[2]);  						} else if (MOAIDConfigurationConstants.PREFIX_STORK.startsWith(split[0]) && split.length >= 2) {							  							result.put(MOAIDConfigurationConstants.SERVICE_AUTH_TARGET_BUSINESS_TYPE, MOAIDConfigurationConstants.IDENIFICATIONTYPE_STORK); @@ -759,9 +763,15 @@ public class ConfigurationMigrationUtils {  				if (oa.get(MOAIDConfigurationConstants.SERVICE_AUTH_TARGET_BUSINESS_TYPE) != null &&  						oa.get(MOAIDConfigurationConstants.SERVICE_AUTH_TARGET_BUSINESS_VALUE) != null) { -					if (oa.get(MOAIDConfigurationConstants.SERVICE_AUTH_TARGET_BUSINESS_TYPE).equals(MOAIDConfigurationConstants.IDENIFICATIONTYPE_STORK)) { +					 +					if (oa.get(MOAIDConfigurationConstants.SERVICE_AUTH_TARGET_BUSINESS_TYPE).equals(MOAIDConfigurationConstants.IDENIFICATIONTYPE_EIDAS)) { +						idnumber.setValue(MOAIDConfigurationConstants.PREFIX_EIDAS + oa.get(MOAIDConfigurationConstants.SERVICE_AUTH_TARGET_BUSINESS_VALUE)); +						idnumber.setType(MOAIDConfigurationConstants.BUSINESSSERVICENAMES.get(oa.get(MOAIDConfigurationConstants.SERVICE_AUTH_TARGET_BUSINESS_TYPE))); +					 +					} else if (oa.get(MOAIDConfigurationConstants.SERVICE_AUTH_TARGET_BUSINESS_TYPE).equals(MOAIDConfigurationConstants.IDENIFICATIONTYPE_STORK)) {  						idnumber.setValue(MOAIDConfigurationConstants.PREFIX_STORK + "AT" + "+" + oa.get(MOAIDConfigurationConstants.SERVICE_AUTH_TARGET_BUSINESS_VALUE));  						idnumber.setType(MOAIDConfigurationConstants.BUSINESSSERVICENAMES.get(oa.get(MOAIDConfigurationConstants.SERVICE_AUTH_TARGET_BUSINESS_TYPE))); +						  					} else {  						idnumber.setValue(MOAIDConfigurationConstants.PREFIX_WPBK + oa.get(MOAIDConfigurationConstants.SERVICE_AUTH_TARGET_BUSINESS_TYPE) + "+" + oa.get(MOAIDConfigurationConstants.SERVICE_AUTH_TARGET_BUSINESS_VALUE));  						idnumber.setType(MOAIDConfigurationConstants.BUSINESSSERVICENAMES.get(oa.get(MOAIDConfigurationConstants.SERVICE_AUTH_TARGET_BUSINESS_TYPE))); | 
