diff options
| author | Thomas Lenz <tlenz@iaik.tugraz.at> | 2017-10-24 12:44:29 +0200 | 
|---|---|---|
| committer | Thomas Lenz <tlenz@iaik.tugraz.at> | 2017-10-24 12:44:29 +0200 | 
| commit | 6c9f624713895a08fd8c89ed3b86acfe149e6229 (patch) | |
| tree | 1ab09e775b00a69a172aa3d7c5f096d3e4eb1867 /id/server/idserverlib/src/main/java/at | |
| parent | 92834aed9d97772a0d37330b9c60aee18374c759 (diff) | |
| parent | 93408e1f85a170fd41a4b0488e3b855803e3687f (diff) | |
| download | moa-id-spss-6c9f624713895a08fd8c89ed3b86acfe149e6229.tar.gz moa-id-spss-6c9f624713895a08fd8c89ed3b86acfe149e6229.tar.bz2 moa-id-spss-6c9f624713895a08fd8c89ed3b86acfe149e6229.zip | |
Merge branch 'eIDAS_node_implementation' into development_preview
Diffstat (limited to 'id/server/idserverlib/src/main/java/at')
9 files changed, 125 insertions, 61 deletions
| diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/RedirectServlet.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/RedirectServlet.java index 1848fa6f7..be511d888 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/RedirectServlet.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/servlet/RedirectServlet.java @@ -49,6 +49,8 @@ import at.gv.egovernment.moa.util.URLEncoder;  @Controller  public class RedirectServlet { +	public static final String SERVICE_ENDPOINT = "/RedirectServlet"; +	  	public static final String REDIRCT_PARAM_URL = "redirecturl";  	private static final String DEFAULT_REDIRECTTARGET = "_parent"; @@ -74,6 +76,8 @@ public class RedirectServlet {  			//validate URL  			new java.net.URL(url); +			//url = URLDecoder.decode(url, "UTF-8"); +			  			oa = AuthConfigurationProviderFactory.getInstance().getOnlineApplicationParameter(url);  			String authURL = HTTPUtils.extractAuthURLFromRequest(req); @@ -128,12 +132,24 @@ public class RedirectServlet {  					resp.addHeader("Location", url);  				} else {					 -					Logger.debug("Redirect to " + url);					 +					Logger.debug("Redirect to " + url); +					 +					try { +						String test = oa.getConfigurationValue(MOAIDConfigurationConstants.SERVICE_AUTH_TEMPLATES_CUSTOMIZATION_APPLETREDIRECTTARGET); +						if (MiscUtil.isNotEmpty(test)) +							redirectTarget = test; +					 +					} catch (Exception e) { +						Logger.debug("Use default redirectTarget."); +					} +					  					DefaultGUIFormBuilderConfiguration config = new DefaultGUIFormBuilderConfiguration(  							authURL,   							DefaultGUIFormBuilderConfiguration.VIEW_REDIRECT,   							null);  					config.putCustomParameter(URL, StringEscapeUtils.escapeHtml(url)); +					config.putCustomParameter(TARGET, redirectTarget); +					  					guiBuilder.build(resp, config, "RedirectForm.html");  				} 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 3d04a142e..99b4154e0 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 @@ -642,7 +642,7 @@ public Collection<CPEPS> getPepsList() {  								MOAIDConfigurationConstants.SERVICE_AUTH_STORK_COUNTRIES_LIST  								+ "." + index + "."  								+ MOAIDConfigurationConstants.SERVICE_AUTH_STORK_COUNTRIES_LIST_ENABLED))) { -							CPEPS availableCPEPS = availableSTORKConfig.getCPEPS( +							CPEPS availableCPEPS = availableSTORKConfig.getCPEPSWithFullName(  									oaConfiguration.get(  											MOAIDConfigurationConstants.SERVICE_AUTH_STORK_COUNTRIES_LIST  											+ "." + index + "." diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/stork/STORKConfig.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/stork/STORKConfig.java index b85938bb7..a04236288 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/stork/STORKConfig.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/config/stork/STORKConfig.java @@ -178,7 +178,7 @@ public class STORKConfig implements IStorkConfig {  	 * @see at.gv.egovernment.moa.id.config.stork.IStorkConfig#getCPEPS(java.lang.String)
  	 */
  	@Override
 -	public CPEPS getCPEPS(String ccc) {
 +	public CPEPS getCPEPSWithFullName(String ccc) {
  		if (isSTORKAuthentication(ccc))
  			return this.cpepsMap.get(ccc);
  		else
 @@ -186,6 +186,23 @@ public class STORKConfig implements IStorkConfig {  	}
  	/* (non-Javadoc)
 +	 * @see at.gv.egovernment.moa.id.config.stork.IStorkConfig#getCPEPS(java.lang.String)
 +	 */
 +	@Override
 +	public CPEPS getCPEPSWithCC(String ccc) {
 +		if (isSTORKAuthentication(ccc)) {
 +			for (CPEPS el :this.cpepsMap.values()) {
 +				if (el.getCountryCode().equals(ccc))
 +					return el;
 +				
 +			}	
 +		}
 +		
 +		return null;
 +	}
 +	
 +	
 +	/* (non-Javadoc)
  	 * @see at.gv.egovernment.moa.id.config.stork.IStorkConfig#getStorkAttributes()
  	 */
  	@Override
 diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/MandateNaturalPersonBPKAttributeBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/MandateNaturalPersonBPKAttributeBuilder.java index 15eed3d44..6ac517e19 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/MandateNaturalPersonBPKAttributeBuilder.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/MandateNaturalPersonBPKAttributeBuilder.java @@ -48,13 +48,60 @@ public class MandateNaturalPersonBPKAttributeBuilder implements IPVPAttributeBui  	}  	public <ATT> ATT build(IOAAuthParameters oaParam, IAuthData authData, -			IAttributeGenerator<ATT> g) throws AttributeException {		 -		if (authData.isUseMandate()) {			 +			IAttributeGenerator<ATT> g) throws AttributeException {						 +		try {	 +			Pair<String, String> calcResult = internalBPKGenerator(oaParam, authData); +			if (calcResult != null) {					 +				String bpk = calcResult.getFirst(); +				String type = calcResult.getSecond(); +				 +				if (MiscUtil.isEmpty(bpk)) +					throw new UnavailableAttributeException(BPK_NAME); +					 +				if (type.startsWith(Constants.URN_PREFIX_WBPK)) +					type = type.substring((Constants.URN_PREFIX_WBPK + "+").length()); +				 +				else if (type.startsWith(Constants.URN_PREFIX_CDID))  +					type = type.substring((Constants.URN_PREFIX_CDID + "+").length()); +				 +				else if (type.startsWith(Constants.URN_PREFIX_EIDAS))  +					type = type.substring((Constants.URN_PREFIX_EIDAS + "+").length()); +				 +				if (bpk.length() > BPK_MAX_LENGTH) { +					bpk = bpk.substring(0, BPK_MAX_LENGTH); +				} +				 +				Logger.trace("Authenticate user with bPK/wbPK " + bpk + " and Type=" + type); +				 +				if (type != null) +					return g.buildStringAttribute(MANDATE_NAT_PER_BPK_FRIENDLY_NAME, MANDATE_NAT_PER_BPK_NAME, type + ":" + bpk); +				else +					return g.buildStringAttribute(MANDATE_NAT_PER_BPK_FRIENDLY_NAME, MANDATE_NAT_PER_BPK_NAME, bpk); -			//get PVP attribute directly, if exists  -			String bpk = authData.getGenericData(MANDATE_NAT_PER_BPK_NAME, String.class); -			String type = null; +			} +			 +		} +		catch (BuildException | ConfigurationException e) { +			Logger.error("Failed to generate IdentificationType"); +			throw new NoMandateDataAttributeException(); +		} + +		return null; +		 +	} +	 +	public <ATT> ATT buildEmpty(IAttributeGenerator<ATT> g) { +		return g.buildEmptyAttribute(MANDATE_NAT_PER_BPK_FRIENDLY_NAME, MANDATE_NAT_PER_BPK_NAME); +	} +	 +	protected Pair<String, String> internalBPKGenerator(IOAAuthParameters oaParam, IAuthData authData) throws NoMandateDataAttributeException, BuildException, ConfigurationException {		 +		//get PVP attribute directly, if exists  +		Pair<String, String> calcResult = null; +		 +		if (authData.isUseMandate()) {	 +			String bpk = authData.getGenericData(MANDATE_NAT_PER_BPK_NAME, String.class); +		  			if (MiscUtil.isEmpty(bpk)) {  				//read bPK from mandate if it is not directly included  				Element mandate = authData.getMandate(); @@ -67,7 +114,7 @@ public class MandateNaturalPersonBPKAttributeBuilder implements IPVPAttributeBui  				}  				PhysicalPersonType physicalPerson = mandateObject.getMandator().getPhysicalPerson();  				if (physicalPerson == null) { -					Logger.info("No physicalPerson mandate"); +					Logger.debug("No physicalPerson mandate");  					throw new NoMandateDataAttributeException();  				}  				IdentificationType id = null; @@ -76,51 +123,22 @@ public class MandateNaturalPersonBPKAttributeBuilder implements IPVPAttributeBui  					Logger.info("Failed to generate IdentificationType");  					throw new NoMandateDataAttributeException();  				} +			 +								 +				if (id.getType().equals(Constants.URN_PREFIX_BASEID))									 +					calcResult = new BPKBuilder().generateAreaSpecificPersonIdentifier(id.getValue().getValue(),  +							oaParam.getAreaSpecificTargetIdentifier());								 +				else +					calcResult = Pair.newInstance(id.getValue().getValue(), id.getType()); + +			 +			} else { +				Logger.info("Find '" + MANDATE_NAT_PER_BPK_NAME + "' in AuthData. Use it what is is."); +				calcResult = Pair.newInstance(bpk, null); -				try {					 -					if (id.getType().equals(Constants.URN_PREFIX_BASEID)) {											 -						Pair<String, String> calcResult = new BPKBuilder().generateAreaSpecificPersonIdentifier(id.getValue().getValue(),  -								oaParam.getAreaSpecificTargetIdentifier()); -						bpk = calcResult.getFirst(); -						type = calcResult.getSecond(); -										 -					} else -						bpk = id.getValue().getValue(); -					 -					if (MiscUtil.isEmpty(bpk)) -						throw new UnavailableAttributeException(BPK_NAME); -						 -					if (type.startsWith(Constants.URN_PREFIX_WBPK)) -						type = type.substring((Constants.URN_PREFIX_WBPK + "+").length()); -					 -					else if (type.startsWith(Constants.URN_PREFIX_CDID))  -						type = type.substring((Constants.URN_PREFIX_CDID + "+").length()); -					 -					else if (type.startsWith(Constants.URN_PREFIX_EIDAS))  -						type = type.substring((Constants.URN_PREFIX_EIDAS + "+").length()); -					 -					if (bpk.length() > BPK_MAX_LENGTH) { -						bpk = bpk.substring(0, BPK_MAX_LENGTH); -					} -					 -					 -				} -				catch (BuildException | ConfigurationException e) { -					Logger.error("Failed to generate IdentificationType"); -					throw new NoMandateDataAttributeException(); -					 -				}  			} -			 -			Logger.trace("Authenticate user with bPK/wbPK " + bpk + " and Type=" + type); -			return g.buildStringAttribute(MANDATE_NAT_PER_BPK_FRIENDLY_NAME, MANDATE_NAT_PER_BPK_NAME, type + ":" + bpk);  		} -		return null; +		return calcResult;  	} -	 -	public <ATT> ATT buildEmpty(IAttributeGenerator<ATT> g) { -		return g.buildEmptyAttribute(MANDATE_NAT_PER_BPK_FRIENDLY_NAME, MANDATE_NAT_PER_BPK_NAME); -	} -	  } diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/MandateNaturalPersonBirthDateAttributeBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/MandateNaturalPersonBirthDateAttributeBuilder.java index b9ac891a9..ebba376f8 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/MandateNaturalPersonBirthDateAttributeBuilder.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/MandateNaturalPersonBirthDateAttributeBuilder.java @@ -48,6 +48,21 @@ public class MandateNaturalPersonBirthDateAttributeBuilder implements IPVPAttrib  	public <ATT> ATT build(IOAAuthParameters oaParam, IAuthData authData,  			IAttributeGenerator<ATT> g) throws AttributeException { +		 +		String attrValue = internalAttributGeneration(oaParam, authData); +		if (attrValue != null) +			return g.buildStringAttribute(MANDATE_NAT_PER_BIRTHDATE_FRIENDLY_NAME, MANDATE_NAT_PER_BIRTHDATE_NAME, attrValue);		 +		else  +			return null; +				 +	} +	 +	public <ATT> ATT buildEmpty(IAttributeGenerator<ATT> g) { +		return g.buildEmptyAttribute(MANDATE_NAT_PER_BIRTHDATE_FRIENDLY_NAME, MANDATE_NAT_PER_BIRTHDATE_NAME); +	} +	 +	 +	protected String internalAttributGeneration(IOAAuthParameters oaParam, IAuthData authData) throws InvalidDateFormatAttributeException, NoMandateDataAttributeException {		  		if (authData.isUseMandate()) {  			//get PVP attribute directly, if exists  @@ -98,14 +113,12 @@ public class MandateNaturalPersonBirthDateAttributeBuilder implements IPVPAttrib  			} -			return g.buildStringAttribute(MANDATE_NAT_PER_BIRTHDATE_FRIENDLY_NAME, MANDATE_NAT_PER_BIRTHDATE_NAME, birthDayString); +			return birthDayString;			 +			  		} -		return null; +		return null;  	} -	public <ATT> ATT buildEmpty(IAttributeGenerator<ATT> g) { -		return g.buildEmptyAttribute(MANDATE_NAT_PER_BIRTHDATE_FRIENDLY_NAME, MANDATE_NAT_PER_BIRTHDATE_NAME); -	}  } diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/MandateNaturalPersonFamilyNameAttributeBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/MandateNaturalPersonFamilyNameAttributeBuilder.java index d29df66e8..07e5c9d09 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/MandateNaturalPersonFamilyNameAttributeBuilder.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/MandateNaturalPersonFamilyNameAttributeBuilder.java @@ -62,7 +62,7 @@ public class MandateNaturalPersonFamilyNameAttributeBuilder  implements IPVPAttr  				}  				PhysicalPersonType physicalPerson = mandateObject.getMandator().getPhysicalPerson();  				if(physicalPerson == null) { -					Logger.info("No physicalPerson mandate"); +					Logger.debug("No physicalPerson mandate");  					throw new NoMandateDataAttributeException();  				} diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/MandateNaturalPersonGivenNameAttributeBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/MandateNaturalPersonGivenNameAttributeBuilder.java index 32efe061e..51a3d2e74 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/MandateNaturalPersonGivenNameAttributeBuilder.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/MandateNaturalPersonGivenNameAttributeBuilder.java @@ -59,7 +59,7 @@ public class MandateNaturalPersonGivenNameAttributeBuilder implements IPVPAttrib  				}  				PhysicalPersonType physicalPerson = mandateObject.getMandator().getPhysicalPerson();  				if (physicalPerson == null) { -					Logger.info("No physicalPerson mandate"); +					Logger.debug("No physicalPerson mandate");  					throw new NoMandateDataAttributeException();  				} diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/MandateNaturalPersonSourcePinAttributeBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/MandateNaturalPersonSourcePinAttributeBuilder.java index 6f0a49ce0..8be85415e 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/MandateNaturalPersonSourcePinAttributeBuilder.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/MandateNaturalPersonSourcePinAttributeBuilder.java @@ -55,7 +55,7 @@ public class MandateNaturalPersonSourcePinAttributeBuilder  implements IPVPAttri  			PhysicalPersonType physicalPerson = mandateObject.getMandator()  					.getPhysicalPerson();  			if (physicalPerson == null) { -				Logger.info("No physicalPerson mandate"); +				Logger.debug("No physicalPerson mandate");  				throw new NoMandateDataAttributeException();  			}  			IdentificationType id = null; diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/MandateNaturalPersonSourcePinTypeAttributeBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/MandateNaturalPersonSourcePinTypeAttributeBuilder.java index f7d1af33f..d89ae0225 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/MandateNaturalPersonSourcePinTypeAttributeBuilder.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/MandateNaturalPersonSourcePinTypeAttributeBuilder.java @@ -54,13 +54,13 @@ public class MandateNaturalPersonSourcePinTypeAttributeBuilder implements IPVPAt  			PhysicalPersonType physicalPerson = mandateObject.getMandator()  					.getPhysicalPerson();  			if (physicalPerson == null) { -				Logger.info("No physicalPerson mandate"); +				Logger.debug("No physicalPerson mandate");  				throw new NoMandateDataAttributeException();  			}  			IdentificationType id = null;  			id = physicalPerson.getIdentification().get(0);  			if(id == null) { -				Logger.error("Failed to generate IdentificationType"); +				Logger.info("Failed to generate IdentificationType");  				throw new NoMandateDataAttributeException();  			} | 
