diff options
Diffstat (limited to 'id/server/idserverlib/src')
2 files changed, 43 insertions, 33 deletions
| diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/MandateLegalPersonSourcePinAttributeBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/MandateLegalPersonSourcePinAttributeBuilder.java index 46472c983..481690013 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/MandateLegalPersonSourcePinAttributeBuilder.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/builder/attributes/MandateLegalPersonSourcePinAttributeBuilder.java @@ -42,41 +42,12 @@ public class MandateLegalPersonSourcePinAttributeBuilder  implements IPVPAttribu  	public <ATT> ATT build(IOAAuthParameters oaParam, IAuthData authData,  			IAttributeGenerator<ATT> g) throws AttributeException { -		if(authData.isUseMandate()) { -			 -			//get PVP attribute directly, if exists  -			String sourcePin = authData.getGenericData(MANDATE_LEG_PER_SOURCE_PIN_NAME, String.class); -			 -			if (MiscUtil.isEmpty(sourcePin)) { -				Element mandate = authData.getMandate(); -				if(mandate == null) { -					throw new NoMandateDataAttributeException(); -					 -				} -				Mandate mandateObject = MandateBuilder.buildMandate(mandate); -				if(mandateObject == null) { -					throw new NoMandateDataAttributeException(); -					 -				} -				CorporateBodyType corporation = mandateObject.getMandator().getCorporateBody(); -				if(corporation == null) { -					Logger.error("No corporation mandate"); -					throw new NoMandateDataAttributeException(); -					 -				} -				if(corporation.getIdentification().size() == 0) { -					Logger.error("Failed to generate IdentificationType"); -					throw new NoMandateDataAttributeException(); -					 -				} -				 -				sourcePin =  corporation.getIdentification().get(0).getValue().getValue(); -				 -			} -				 +		if(authData.isUseMandate()) {				  			return g.buildStringAttribute(MANDATE_LEG_PER_SOURCE_PIN_FRIENDLY_NAME,  -					MANDATE_LEG_PER_SOURCE_PIN_NAME, sourcePin); +					MANDATE_LEG_PER_SOURCE_PIN_NAME, getLegalPersonIdentifierFromMandate(authData)); +			  		} +		  		return null;  	} @@ -84,4 +55,39 @@ public class MandateLegalPersonSourcePinAttributeBuilder  implements IPVPAttribu  	public <ATT> ATT buildEmpty(IAttributeGenerator<ATT> g) {  		return g.buildEmptyAttribute(MANDATE_LEG_PER_SOURCE_PIN_FRIENDLY_NAME, MANDATE_LEG_PER_SOURCE_PIN_NAME);  	} +	 +	 +	protected String getLegalPersonIdentifierFromMandate(IAuthData authData) throws NoMandateDataAttributeException { +		//get PVP attribute directly, if exists  +		String sourcePin = authData.getGenericData(MANDATE_LEG_PER_SOURCE_PIN_NAME, String.class); +		 +		if (MiscUtil.isEmpty(sourcePin)) { +			Element mandate = authData.getMandate(); +			if(mandate == null) { +				throw new NoMandateDataAttributeException(); +				 +			} +			Mandate mandateObject = MandateBuilder.buildMandate(mandate); +			if(mandateObject == null) { +				throw new NoMandateDataAttributeException(); +				 +			} +			CorporateBodyType corporation = mandateObject.getMandator().getCorporateBody(); +			if(corporation == null) { +				Logger.error("No corporation mandate"); +				throw new NoMandateDataAttributeException(); +				 +			} +			if(corporation.getIdentification().size() == 0) { +				Logger.error("Failed to generate IdentificationType"); +				throw new NoMandateDataAttributeException(); +				 +			} +			 +			sourcePin =  corporation.getIdentification().get(0).getValue().getValue(); +			 +		} +		 +		return sourcePin; +	}  } 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 df8f86f7e..f4e69749c 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 @@ -75,6 +75,10 @@ public class MandateNaturalPersonBPKAttributeBuilder implements IPVPAttributeBui  				try {					  					if (id.getType().equals(Constants.URN_PREFIX_BASEID)) { +												 +						/*TODO: some updates are required if we support bPKs in eIDAS context, because +						 * BPKBuilder().buildWBPK only supports Austrian wbPKs   +						 */						  						if (oaParam.getBusinessService()) {  							bpk = new BPKBuilder().buildWBPK(id.getValue().getValue(), oaParam.getIdentityLinkDomainIdentifier()); | 
