diff options
Diffstat (limited to 'id')
89 files changed, 1478 insertions, 1105 deletions
| diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/AuthenticationServer.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/AuthenticationServer.java index d7083ec81..a35bee2f8 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/AuthenticationServer.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/AuthenticationServer.java @@ -1415,127 +1415,6 @@ public class AuthenticationServer implements MOAIDAuthConstants {      }      /** -     * Builds the AuthenticationData object together with the corresponding -     * <code><saml:Assertion></code> -     * -     * @param session          authentication session -     * @param verifyXMLSigResp VerifyXMLSignatureResponse from MOA-SP -     * @param useUTC           uses correct UTC time format -     * @param useUTC           indicates that authenticated citizen is a foreigner -     * @param isForeigner      indicates whether Austrian (false) or foreigner (true) authenticates -     * @return AuthenticationData object -     * @throws ConfigurationException while accessing configuration data -     * @throws BuildException         while building the <code><saml:Assertion></code> -     */ -    public static AuthenticationData buildAuthenticationData( -            AuthenticationSession session, OAAuthParameter oaParam, String target) -            throws ConfigurationException, BuildException { - -		IdentityLink identityLink = session.getIdentityLink(); -		AuthenticationData authData = new AuthenticationData(); - -		VerifyXMLSignatureResponse verifyXMLSigResp = session.getXMLVerifySignatureResponse(); - -		boolean businessService = oaParam.getBusinessService(); - -		authData.setMajorVersion(1); -		authData.setMinorVersion(0); -		authData.setAssertionID(Random.nextRandom()); -		authData.setIssuer(session.getAuthURL()); - -		authData.setIssueInstant(DateTimeUtils.buildDateTimeUTC(Calendar -				.getInstance())); - -		//baseID or wbpk in case of BusinessService without SSO or BusinessService SSO -		authData.setIdentificationValue(identityLink.getIdentificationValue()); -		authData.setIdentificationType(identityLink.getIdentificationType()); - -		authData.setGivenName(identityLink.getGivenName()); -		authData.setFamilyName(identityLink.getFamilyName()); -		authData.setDateOfBirth(identityLink.getDateOfBirth()); -		authData.setQualifiedCertificate(verifyXMLSigResp -				.isQualifiedCertificate()); -		authData.setPublicAuthority(verifyXMLSigResp.isPublicAuthority()); -		authData.setPublicAuthorityCode(verifyXMLSigResp -				.getPublicAuthorityCode()); -		authData.setBkuURL(session.getBkuURL()); - -		try { - -			MISMandate mandate = session.getMISMandate(); -			 -			if (session.getUseMandate() && session.isOW()  -					&& mandate != null && MiscUtil.isNotEmpty(mandate.getOWbPK())) {				 -				authData.setBPK(mandate.getOWbPK()); -				authData.setBPKType(Constants.URN_PREFIX_CDID + "+" + "OW"); -				authData.setIdentityLink(identityLink); -				Logger.trace("Authenticated User is OW: " + mandate.getOWbPK()); - -            } else { - -                if (businessService) { -                    //since we have foreigner, wbPK is not calculated in BKU -                    if (identityLink.getIdentificationType().equals(Constants.URN_PREFIX_BASEID)) { - -                        String registerAndOrdNr = oaParam.getIdentityLinkDomainIdentifier(); - -                        if (registerAndOrdNr.startsWith(AuthenticationSession.REGISTERANDORDNR_PREFIX_)) { -                            // If domainIdentifier starts with prefix -                            // "urn:publicid:gv.at:wbpk+"; remove this prefix -                            registerAndOrdNr = registerAndOrdNr -                                    .substring(AuthenticationSession.REGISTERANDORDNR_PREFIX_.length()); -                            Logger.debug("Register and ordernumber prefix stripped off; resulting register string: " -                                    + registerAndOrdNr); -                        } - -                        String wbpkBase64 = new BPKBuilder().buildWBPK(identityLink.getIdentificationValue(), registerAndOrdNr); -                        authData.setBPK(wbpkBase64); -                        authData.setBPKType(Constants.URN_PREFIX_WBPK + "+" + registerAndOrdNr); - -                    } else { -                        authData.setBPK(identityLink.getIdentificationValue()); -                        authData.setBPKType(identityLink.getIdentificationType()); - -                    } - -                    Logger.trace("Authenticate user with wbPK " + authData.getBPK()); - -                    Element idlassertion = session.getIdentityLink().getSamlAssertion(); -                    //set bpk/wpbk; -                    Node prIdentification = XPathUtils.selectSingleNode(idlassertion, IdentityLinkAssertionParser.PERSON_IDENT_VALUE_XPATH); -                    prIdentification.getFirstChild().setNodeValue(authData.getBPK()); -                    //set bkp/wpbk type -                    Node prIdentificationType = XPathUtils.selectSingleNode(idlassertion, IdentityLinkAssertionParser.PERSON_IDENT_TYPE_XPATH); -                    prIdentificationType.getFirstChild().setNodeValue(authData.getBPKType()); - -                    IdentityLinkAssertionParser idlparser = new IdentityLinkAssertionParser(idlassertion); -                    IdentityLink idl = idlparser.parseIdentityLink(); -                    authData.setIdentityLink(idl); - -                } else { - -                    if (identityLink.getIdentificationType().equals(Constants.URN_PREFIX_BASEID)) { -                        // only compute bPK if online application is a public service and we have the Stammzahl -                        String bpkBase64 = new BPKBuilder().buildBPK(identityLink.getIdentificationValue(), target); -                        authData.setBPK(bpkBase64); -                        authData.setBPKType(Constants.URN_PREFIX_CDID + "+" + oaParam.getTarget()); -                    } - -                    Logger.trace("Authenticate user with bPK " + authData.getBPK()); - -                    authData.setIdentityLink(identityLink); -                } -            } - -            return authData; - -        } catch (Throwable ex) { -            throw new BuildException("builder.00", new Object[]{ -                    "AuthenticationData", ex.toString()}, ex); -        } -    } - -    /**       * Retrieves a session from the session store.       *       * @param id session ID diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/AuthenticationDataAssertionBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/AuthenticationDataAssertionBuilder.java index 531303300..4c824354c 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/AuthenticationDataAssertionBuilder.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/AuthenticationDataAssertionBuilder.java @@ -33,6 +33,7 @@ import at.gv.egovernment.moa.id.auth.data.ExtendedSAMLAttribute;  import at.gv.egovernment.moa.id.auth.exception.BuildException;  import at.gv.egovernment.moa.id.auth.exception.ParseException;  import at.gv.egovernment.moa.id.data.AuthenticationData; +import at.gv.egovernment.moa.id.protocols.saml1.SAML1AuthenticationData;  import at.gv.egovernment.moa.logging.Logger;  import at.gv.egovernment.moa.util.Constants;  import at.gv.egovernment.moa.util.DateTimeUtils; @@ -224,7 +225,7 @@ public class AuthenticationDataAssertionBuilder extends AuthenticationAssertionB     * @throws BuildException if an error occurs during the build process     */    public String build( -  	AuthenticationData authData,  +  	SAML1AuthenticationData authData,     	String xmlPersonData,     	String xmlAuthBlock,     	String xmlIdentityLink, @@ -344,7 +345,7 @@ public class AuthenticationDataAssertionBuilder extends AuthenticationAssertionB     * @throws BuildException if an error occurs during the build process     */    public String buildMandate( -  	AuthenticationData authData,  +  	SAML1AuthenticationData authData,     	String xmlPersonData,     	String xmlMandateData,    	String xmlAuthBlock,  diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/AuthenticationDataBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/AuthenticationDataBuilder.java new file mode 100644 index 000000000..00528f7a1 --- /dev/null +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/builder/AuthenticationDataBuilder.java @@ -0,0 +1,235 @@ +/* + * Copyright 2014 Federal Chancellery Austria + * MOA-ID has been developed in a cooperation between BRZ, the Federal + * Chancellery Austria - ICT staff unit, and Graz University of Technology. + * + * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by + * the European Commission - subsequent versions of the EUPL (the "Licence"); + * You may not use this work except in compliance with the Licence. + * You may obtain a copy of the Licence at: + * http://www.osor.eu/eupl/ + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the Licence is distributed on an "AS IS" basis, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the Licence for the specific language governing permissions and + * limitations under the Licence. + * + * This product combines work with different licenses. See the "NOTICE" text + * file for details on the various modules and licenses. + * The "NOTICE" text file is part of the distribution. Any derivative works + * that you distribute must include a readable copy of the "NOTICE" text file. + */ +package at.gv.egovernment.moa.id.auth.builder; + +import org.w3c.dom.Element; +import org.w3c.dom.Node; + +import at.gv.egovernment.moa.id.auth.MOAIDAuthConstants; +import at.gv.egovernment.moa.id.auth.data.AuthenticationSession; +import at.gv.egovernment.moa.id.auth.data.IdentityLink; +import at.gv.egovernment.moa.id.auth.data.VerifyXMLSignatureResponse; +import at.gv.egovernment.moa.id.auth.exception.BuildException; +import at.gv.egovernment.moa.id.auth.exception.WrongParametersException; +import at.gv.egovernment.moa.id.auth.parser.IdentityLinkAssertionParser; +import at.gv.egovernment.moa.id.config.ConfigurationException; +import at.gv.egovernment.moa.id.config.auth.AuthConfigurationProvider; +import at.gv.egovernment.moa.id.config.auth.OAAuthParameter; +import at.gv.egovernment.moa.id.data.AuthenticationData; +import at.gv.egovernment.moa.id.data.IAuthData; +import at.gv.egovernment.moa.id.moduls.IRequest; +import at.gv.egovernment.moa.id.protocols.saml1.SAML1AuthenticationData; +import at.gv.egovernment.moa.id.protocols.saml1.SAML1RequestImpl; +import at.gv.egovernment.moa.id.storage.AuthenticationSessionStoreage; +import at.gv.egovernment.moa.id.util.IdentityLinkReSigner; +import at.gv.egovernment.moa.id.util.ParamValidatorUtils; +import at.gv.egovernment.moa.id.util.client.mis.simple.MISMandate; +import at.gv.egovernment.moa.logging.Logger; +import at.gv.egovernment.moa.util.Constants; +import at.gv.egovernment.moa.util.MiscUtil; +import at.gv.egovernment.moa.util.XPathUtils; + +/** + * @author tlenz + * + */ +public class AuthenticationDataBuilder implements MOAIDAuthConstants { + +	public static IAuthData buildAuthenticationData(IRequest protocolRequest,  +            AuthenticationSession session) throws ConfigurationException, BuildException, WrongParametersException { +		 +		 +		String oaID = protocolRequest.getOAURL(); +		if (oaID == null) { +			throw new WrongParametersException("StartAuthentication", +					PARAM_OA, "auth.12"); +		} +		 +		// check parameter +		if (!ParamValidatorUtils.isValidOA(oaID)) +			throw new WrongParametersException("StartAuthentication", +					PARAM_OA, "auth.12"); + +		OAAuthParameter oaParam = AuthConfigurationProvider.getInstance() +			.getOnlineApplicationParameter(oaID); + +		  +		/* TODO: Support Mandate MODE! +		 * Insert functionality to translate mandates in case of SSO   +		 */ +		 +		 +		AuthenticationData authdata = null; +		if (protocolRequest instanceof SAML1RequestImpl) { +			//request is SAML1 +			SAML1AuthenticationData saml1authdata = new SAML1AuthenticationData(); +			saml1authdata.setExtendedSAMLAttributesOA(session.getExtendedSAMLAttributesOA()); +			 +			authdata = saml1authdata; +						 +		} else {			 +			authdata = new AuthenticationData(); +						 +		} +		 +			 +		if (protocolRequest.getInterfederationResponse() != null) { +			//get attributes from interfederated IDP +			 +			 +		} else { +			//build AuthenticationData from MOASession +			buildAuthDataFormMOASession(authdata, session, oaParam); +					 +		} +		 +		return authdata;								 +	} +	 +	private static void buildAuthDataFormMOASession(AuthenticationData authData, AuthenticationSession session,  +			OAAuthParameter oaParam) throws BuildException { + +		String target = oaParam.getTarget(); +		 +		IdentityLink identityLink = session.getIdentityLink(); + +		VerifyXMLSignatureResponse verifyXMLSigResp = session.getXMLVerifySignatureResponse(); + +		boolean businessService = oaParam.getBusinessService(); + +		authData.setIssuer(session.getAuthURL()); + +		//baseID or wbpk in case of BusinessService without SSO or BusinessService SSO +		authData.setIdentificationValue(identityLink.getIdentificationValue()); +		authData.setIdentificationType(identityLink.getIdentificationType()); + +		authData.setGivenName(identityLink.getGivenName()); +		authData.setFamilyName(identityLink.getFamilyName()); +		authData.setDateOfBirth(identityLink.getDateOfBirth()); +		authData.setQualifiedCertificate(verifyXMLSigResp +				.isQualifiedCertificate()); +		authData.setPublicAuthority(verifyXMLSigResp.isPublicAuthority()); +		authData.setPublicAuthorityCode(verifyXMLSigResp +				.getPublicAuthorityCode()); +		authData.setBkuURL(session.getBkuURL()); +		 +		authData.setStorkAttributes(session.getStorkAttributes()); +		authData.setStorkAuthnResponse(session.getStorkAuthnResponse()); +		authData.setStorkRequest(session.getStorkAuthnRequest()); +		 +		authData.setSignerCertificate(session.getEncodedSignerCertificate()); +		authData.setAuthBlock(session.getAuthBlock()); +		 +		authData.setForeigner(session.isForeigner()); +		authData.setQAALevel(session.getQAALevel()); +				 +		try { + +			authData.setSsoSession(AuthenticationSessionStoreage.isSSOSession(session.getSessionID())); +			 +			MISMandate mandate = session.getMISMandate(); +			authData.setMISMandate(mandate); +			authData.setUseMandate(session.getUseMandate()); +			authData.setMandateReferenceValue(session.getMandateReferenceValue()); +			 +			if (session.getUseMandate() && session.isOW()  +					&& mandate != null && MiscUtil.isNotEmpty(mandate.getOWbPK())) {				 +				authData.setBPK(mandate.getOWbPK()); +				authData.setBPKType(Constants.URN_PREFIX_CDID + "+" + "OW"); +				 +				//TODO: check in case of mandates for business services +				authData.setIdentityLink(identityLink); +				Logger.trace("Authenticated User is OW: " + mandate.getOWbPK()); + +            } else { + +                if (businessService) { +                    //since we have foreigner, wbPK is not calculated in BKU +                    if (identityLink.getIdentificationType().equals(Constants.URN_PREFIX_BASEID)) { + +                        String registerAndOrdNr = oaParam.getIdentityLinkDomainIdentifier(); + +                        if (registerAndOrdNr.startsWith(AuthenticationSession.REGISTERANDORDNR_PREFIX_)) { +                            // If domainIdentifier starts with prefix +                            // "urn:publicid:gv.at:wbpk+"; remove this prefix +                            registerAndOrdNr = registerAndOrdNr +                                    .substring(AuthenticationSession.REGISTERANDORDNR_PREFIX_.length()); +                            Logger.debug("Register and ordernumber prefix stripped off; resulting register string: " +                                    + registerAndOrdNr); +                        } + +                        String wbpkBase64 = new BPKBuilder().buildWBPK(identityLink.getIdentificationValue(), registerAndOrdNr); +                        authData.setBPK(wbpkBase64); +                        authData.setBPKType(Constants.URN_PREFIX_WBPK + "+" + registerAndOrdNr); + +                    } else { +                        authData.setBPK(identityLink.getIdentificationValue()); +                        authData.setBPKType(identityLink.getIdentificationType()); + +                    } + +                    Logger.trace("Authenticate user with wbPK " + authData.getBPK()); + +                    Element idlassertion = session.getIdentityLink().getSamlAssertion(); +                    //set bpk/wpbk; +                    Node prIdentification = XPathUtils.selectSingleNode(idlassertion, IdentityLinkAssertionParser.PERSON_IDENT_VALUE_XPATH); +                    prIdentification.getFirstChild().setNodeValue(authData.getBPK()); +                    //set bkp/wpbk type +                    Node prIdentificationType = XPathUtils.selectSingleNode(idlassertion, IdentityLinkAssertionParser.PERSON_IDENT_TYPE_XPATH); +                    prIdentificationType.getFirstChild().setNodeValue(authData.getBPKType()); + +                    IdentityLinkAssertionParser idlparser = new IdentityLinkAssertionParser(idlassertion); +                    IdentityLink idl = idlparser.parseIdentityLink(); +                                         +                    //resign IDL +    				IdentityLinkReSigner identitylinkresigner = IdentityLinkReSigner.getInstance();					 +    				Element resignedilAssertion; +    				resignedilAssertion = identitylinkresigner.resignIdentityLink(idl.getSamlAssertion());    				    				 +    				IdentityLinkAssertionParser resignedIDLParser = new IdentityLinkAssertionParser(resignedilAssertion); +    				IdentityLink resignedIDL = resignedIDLParser.parseIdentityLink(); +    				 +                    authData.setIdentityLink(resignedIDL); +    				 +                } else { + +                    if (identityLink.getIdentificationType().equals(Constants.URN_PREFIX_BASEID)) { +                        // only compute bPK if online application is a public service and we have the Stammzahl +                        String bpkBase64 = new BPKBuilder().buildBPK(identityLink.getIdentificationValue(), target); +                        authData.setBPK(bpkBase64); +                        authData.setBPKType(Constants.URN_PREFIX_CDID + "+" + oaParam.getTarget()); +                    } + +                    Logger.trace("Authenticate user with bPK " + authData.getBPK()); + +                    authData.setIdentityLink(identityLink); +                } +            } +			 +					 +        } catch (Throwable ex) { +            throw new BuildException("builder.00", new Object[]{ +                    "AuthenticationData", ex.toString()}, ex); +        } +		 +	} +} diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/data/AuthenticationSession.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/data/AuthenticationSession.java index 4bae0300b..58412b218 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/data/AuthenticationSession.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/auth/data/AuthenticationSession.java @@ -956,20 +956,7 @@ public class AuthenticationSession implements Serializable {  	public void setMISMandate(MISMandate mandate) {  		this.mandate = mandate;  	} -	 -	public Element getMandate() { -		try { -			byte[] byteMandate = mandate.getMandate(); -			String stringMandate = new String(byteMandate); -			return DOMUtils.parseDocument(stringMandate, false, null, null).getDocumentElement(); -			 -		} -		catch (Throwable e) { -			Logger.warn("Mandate content could not be generated from MISMandate."); -			return null; -		} -	} -	 +		  	/**  	 * @return the ssoRequested  	 */ diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/data/AuthenticationData.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/data/AuthenticationData.java index f9d3986d7..e73bac41c 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/data/AuthenticationData.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/data/AuthenticationData.java @@ -1,27 +1,5 @@ -/******************************************************************************* - * Copyright 2014 Federal Chancellery Austria - * MOA-ID has been developed in a cooperation between BRZ, the Federal - * Chancellery Austria - ICT staff unit, and Graz University of Technology. - *  - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - *  - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - *  - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - ******************************************************************************/  /* - * Copyright 2003 Federal Chancellery Austria + * Copyright 2014 Federal Chancellery Austria   * MOA-ID has been developed in a cooperation between BRZ, the Federal   * Chancellery Austria - ICT staff unit, and Graz University of Technology.   * @@ -42,455 +20,565 @@   * The "NOTICE" text file is part of the distribution. Any derivative works   * that you distribute must include a readable copy of the "NOTICE" text file.   */ - -  package at.gv.egovernment.moa.id.data;  import java.io.Serializable; +import java.text.DateFormat; +import java.text.ParseException; +import java.text.SimpleDateFormat;  import java.util.Date; +import org.w3c.dom.Element; + +import eu.stork.peps.auth.commons.IPersonalAttributeList; +import eu.stork.peps.auth.commons.STORKAuthnRequest; +  import at.gv.egovernment.moa.id.auth.data.IdentityLink; +import at.gv.egovernment.moa.id.util.client.mis.simple.MISMandate; +import at.gv.egovernment.moa.logging.Logger; +import at.gv.egovernment.moa.util.DOMUtils; +import at.gv.egovernment.moa.util.DateTimeUtils; +import at.gv.egovernment.moa.util.MiscUtil;  /** - * Encapsulates authentication data contained in a <code><saml:Assertion></code>. + * @author tlenz   * - * @author Paul Ivancsics - * @version $Id$   */ +public class AuthenticationData  implements IAuthData, Serializable { -public class AuthenticationData implements Serializable { -  /** -	 *  -	 */  	private static final long serialVersionUID = -1042697056735596866L; -/** -   * major version number of the SAML assertion -   */ -  private int majorVersion; -  /** -   * minor version number of the SAML assertion -   */ -  private int minorVersion; -  /** -   * identifier for this assertion -   */ -  private String assertionID; -  /** -   * URL of the MOA-ID Auth component issueing this assertion -   */ -  private String issuer; -  /** -   * time instant of issue of this assertion -   */ -  private String issueInstant; -  /** -   * user identification value (Stammzahl); <code>null</code>,  -   * if the authentication module is configured not to return this data -   */ -  private String identificationValue; +	public static final String IDENTITY_LINK_DATE_FORMAT = "yyyy-MM-dd"; +	 +	  /** +	   * URL of the MOA-ID Auth component issueing this assertion +	   */ +	  private String issuer; +	  /** +	   * time instant of issue of this assertion +	   */ +	  private Date issueInstant; +	  /** +	   * user identification value (Stammzahl); <code>null</code>,  +	   * if the authentication module is configured not to return this data +	   */ +	  private String identificationValue; +		/** +		 * user identification type +		 */ +	  private String identificationType; +		 +		/** +		 * user identityLink specialized to OAParamter +		 */ +	  private IdentityLink identityLink; +		 +	  /** +	   * application specific user identifier (bPK/wbPK) +	   */ +	  private String bPK; +	   +	  /** +	   * application specific user identifier type +	   */ +	  private String bPKType; +	   +	  /** +	   * given name of the user +	   */ +	  private String givenName; +	  /** +	   * family name of the user +	   */ +	  private String familyName; +	  /** +	   * date of birth of the user +	   */ +	  private Date dateOfBirth; +	  /** +	   * says whether the certificate is a qualified certificate or not +	   */ +	  private boolean qualifiedCertificate; +	  /** +	   * says whether the certificate is a public authority or not +	   */ +	  private boolean publicAuthority; +	  /** +	   * public authority code (Behördenkennzeichen - BKZ) +	   */ +	  private String publicAuthorityCode; + +	  /** +	   * URL of the BKU +	   */ +	  private String bkuURL; +	  /** +	   * the corresponding <code>lt;saml:Assertion></code> +	   */ + +	 /** +	  * STORK attributes from response +	  */ +	  private String ccc = null; +	  private IPersonalAttributeList storkAttributes = null; +	  private String storkAuthnResponse; +	  private STORKAuthnRequest storkRequest = null; +	   +	  private byte[] signerCertificate = null; +	  	   +	  private String authBlock = null;  + +	  private boolean useMandate = false; +	  private MISMandate mandate = null; +	  private String mandateReferenceValue = null; +	   +	  private boolean foreigner; +	  private String QAALevel = null; +	   +	  private boolean ssoSession; +	   +	  public AuthenticationData() { +		  issueInstant = new Date(); +	  } +	  	   +	  /** +	   * Returns the publicAuthority. +	   * @return boolean +	   */ +	  public boolean isPublicAuthority() { +	    return publicAuthority; +	  } + +	  /** +	   * Returns the publicAuthorityCode. +	   * @return String +	   */ +	  public String getPublicAuthorityCode() { +	    return publicAuthorityCode; +	  } + +	  /** +	   * Returns the qualifiedCertificate. +	   * @return boolean +	   */ +	  public boolean isQualifiedCertificate() { +	    return qualifiedCertificate; +	  } + +	  /** +	   * Returns the bPK. +	   * @return String +	   */ +	  public String getBPK() { +	    return bPK; +	  } + +	  /** +	   * Sets the publicAuthority. +	   * @param publicAuthority The publicAuthority to set +	   */ +	  public void setPublicAuthority(boolean publicAuthority) { +	    this.publicAuthority = publicAuthority; +	  } + +	  /** +	   * Sets the publicAuthorityCode. +	   * @param publicAuthorityIdentification The publicAuthorityCode to set +	   */ +	  public void setPublicAuthorityCode(String publicAuthorityIdentification) { +	    this.publicAuthorityCode = publicAuthorityIdentification; +	  } + +	  /** +	   * Sets the qualifiedCertificate. +	   * @param qualifiedCertificate The qualifiedCertificate to set +	   */ +	  public void setQualifiedCertificate(boolean qualifiedCertificate) { +	    this.qualifiedCertificate = qualifiedCertificate; +	  } + +	  /** +	   * Sets the bPK. +	   * @param bPK The bPK to set +	   */ +	  public void setBPK(String bPK) { +	    this.bPK = bPK; +	  } + +	  /** +	   * Returns the dateOfBirth. +	   * @return String +	   */ +	  public Date getDateOfBirth() { +	    return dateOfBirth; +	  } + +	  public String getFormatedDateOfBirth() { +			DateFormat pvpDateFormat = new SimpleDateFormat(IDENTITY_LINK_DATE_FORMAT); +			return pvpDateFormat.format(getDateOfBirth());	 +		} +	   +	  /** +	   * Returns the familyName. +	   * @return String +	   */ +	  public String getFamilyName() { +	    return familyName; +	  } + +	  /** +	   * Returns the givenName. +	   * @return String +	   */ +	  public String getGivenName() { +	    return givenName; +	  } + +	  /** +	   * Returns the identificationValue. +	   * @return String +	   */ +	  public String getIdentificationValue() { +	    return identificationValue; +	  } + +		/** +		 * Returns the identificationType +		 * @return String +		 */ +		public String getIdentificationType() { +			return identificationType; +		} + +	  /** +	   * Returns the issueInstant. +	   * @return String +	   */ +	  public String getIssueInstantString() { +	    return DateTimeUtils.buildDateTimeUTC(issueInstant); +	     +	  } + +	  /** +	   * Returns the issueInstant. +	   * @return String +	   */ +	  public Date getIssueInstant() { +	    return issueInstant; +	     +	  } +	   +	  public void setIssueInstant(Date date) { +		  this.issueInstant = date; +	  } +	   +	  /** +	   * Returns the issuer. +	   * @return String +	   */ +	  public String getIssuer() { +	    return issuer; +	  } +	   +	  /** +	   * Returns the BKU URL. +	   * @return String +	   */ +	  public String getBkuURL() { +	    return bkuURL; +	  } + +	  /** +	   * Sets the dateOfBirth. +	   * @param dateOfBirth The dateOfBirth to set +	   */ +	  public void setDateOfBirth(Date dateOfBirth) { +	    this.dateOfBirth = dateOfBirth; +	  } + +	  public void setDateOfBirth(String dateOfBirth) {		   +		  try {		   +			  if (MiscUtil.isNotEmpty(dateOfBirth)) { +				  DateFormat identityLinkFormat = new SimpleDateFormat(IDENTITY_LINK_DATE_FORMAT); +				  this.dateOfBirth = identityLinkFormat.parse(dateOfBirth); +			  } +			   +		  } catch (ParseException e) { +			  Logger.warn("Parse dateOfBirht from IdentityLink FAILED", e); +			   +		  }		   +	  } +	   +	  /** +	   * Sets the familyName. +	   * @param familyName The familyName to set +	   */ +	  public void setFamilyName(String familyName) { +	    this.familyName = familyName; +	  } + +	  /** +	   * Sets the givenName. +	   * @param givenName The givenName to set +	   */ +	  public void setGivenName(String givenName) { +	    this.givenName = givenName; +	  } + +	  /** +	   * Sets the identificationValue. +	   * @param identificationValue The identificationValue to set +	   */ +	  public void setIdentificationValue(String identificationValue) { +	    this.identificationValue = identificationValue; +	  } + +		/** +		 * Sets the identificationType. +		 * @param identificationType The identificationType to set +		 */ +		public void setIdentificationType(String identificationType) { +			this.identificationType = identificationType; +		} + +	  /** +	   * Sets the issuer. +	   * @param issuer The issuer to set +	   */ +	  public void setIssuer(String issuer) { +	    this.issuer = issuer; +	  } +	   +	  /** +	   * Sets the bkuURL +	   * @param url The BKU URL to set +	   */ +	  public void setBkuURL(String url) { +	    this.bkuURL = url; +	  } + +	public String getBPKType() { +		return bPKType; +	} + +	public void setBPKType(String bPKType) { +		this.bPKType = bPKType; +	} +  	/** -	 * user identification type +	 * @return the identityLink  	 */ -  private String identificationType; -	 +	public IdentityLink getIdentityLink() { +		return identityLink; +	} +  	/** -	 * user identityLink specialized to OAParamter +	 * @param identityLink the identityLink to set  	 */ -  private IdentityLink identityLink; +	public void setIdentityLink(IdentityLink identityLink) { +		this.identityLink = identityLink; +	} + + +	/** +	 * @return the storkAttributes +	 */ +	public IPersonalAttributeList getStorkAttributes() { +		return storkAttributes; +	} + + +	/** +	 * @param storkAttributes the storkAttributes to set +	 */ +	public void setStorkAttributes(IPersonalAttributeList storkAttributes) { +		this.storkAttributes = storkAttributes; +	} + + +	/** +	 * @return the signerCertificate +	 */ +	public byte[] getSignerCertificate() { +		return signerCertificate; +	} + + +	/** +	 * @param signerCertificate the signerCertificate to set +	 */ +	public void setSignerCertificate(byte[] signerCertificate) { +		this.signerCertificate = signerCertificate; +	} + + +	/** +	 * @return the authBlock +	 */ +	public String getAuthBlock() { +		return authBlock; +	} + + +	/** +	 * @param authBlock the authBlock to set +	 */ +	public void setAuthBlock(String authBlock) { +		this.authBlock = authBlock; +	} + + +	/** +	 * @return the mandate +	 */ +	public MISMandate getMISMandate() { +		return mandate; +	} + +	public Element getMandate() { +		try { +			byte[] byteMandate = mandate.getMandate(); +			String stringMandate = new String(byteMandate); +			return DOMUtils.parseDocument(stringMandate, false, null, null).getDocumentElement(); +			 +		} +		catch (Throwable e) { +			Logger.warn("Mandate content could not be generated from MISMandate."); +			return null; +		} +	} -  /** -   * application specific user identifier (bPK/wbPK) -   */ -  private String bPK; -   -  /** -   * application specific user identifier type -   */ -  private String bPKType; -   -  /** -   * given name of the user -   */ -  private String givenName; -  /** -   * family name of the user -   */ -  private String familyName; -  /** -   * date of birth of the user -   */ -  private String dateOfBirth; -  /** -   * says whether the certificate is a qualified certificate or not -   */ -  private boolean qualifiedCertificate; -  /** -   * says whether the certificate is a public authority or not -   */ -  private boolean publicAuthority; -  /** -   * public authority code (Behördenkennzeichen - BKZ) -   */ -  private String publicAuthorityCode; -  /** -   * The base64 encoded signer certificate. -   */ -  private String signerCertificate; -  /** -   * URL of the BKU -   */ -  private String bkuURL; -  /** -   * the corresponding <code>lt;saml:Assertion></code> -   */ -  private String samlAssertion; -   -  /** useUTC */ -//  private boolean useUTC; -  /** -   * creation timestamp -   */ -  Date timestamp; - -   -   -  	//this method is only required for MOA-ID Proxy 2.0 Release. -  	//TODO: remove it, if MOA-ID Proxy is not supported anymore. -  	public String getWBPK() { -  		return bPK; + +	/** +	 * @param mandate the mandate to set +	 */ +	public void setMISMandate(MISMandate mandate) { +		this.mandate = mandate;  	} -   -   -  /** -   * Constructor for AuthenticationData. -   */ -  public AuthenticationData() { -    timestamp = new Date(); -  } - -  /** -   * Returns the minorVersion. -   * @return int -   */ -  public int getMinorVersion() { -    return minorVersion; -  } - -  /** -   * Returns the publicAuthority. -   * @return boolean -   */ -  public boolean isPublicAuthority() { -    return publicAuthority; -  } - -  /** -   * Returns the publicAuthorityCode. -   * @return String -   */ -  public String getPublicAuthorityCode() { -    return publicAuthorityCode; -  } - -  /** -   * Returns the qualifiedCertificate. -   * @return boolean -   */ -  public boolean isQualifiedCertificate() { -    return qualifiedCertificate; -  } - -  /** -   * Returns the bPK. -   * @return String -   */ -  public String getBPK() { -    return bPK; -  } -     -//  /** -//   * Returns useUTC -//   * @return useUTC -//   */ -//  public boolean getUseUTC() { -//	  return useUTC; -//  } - -  /** -   * Sets the minorVersion. -   * @param minorVersion The minorVersion to set -   */ -  public void setMinorVersion(int minorVersion) { -    this.minorVersion = minorVersion; -  } - -  /** -   * Sets the publicAuthority. -   * @param publicAuthority The publicAuthority to set -   */ -  public void setPublicAuthority(boolean publicAuthority) { -    this.publicAuthority = publicAuthority; -  } - -  /** -   * Sets the publicAuthorityCode. -   * @param publicAuthorityIdentification The publicAuthorityCode to set -   */ -  public void setPublicAuthorityCode(String publicAuthorityIdentification) { -    this.publicAuthorityCode = publicAuthorityIdentification; -  } - -  /** -   * Sets the qualifiedCertificate. -   * @param qualifiedCertificate The qualifiedCertificate to set -   */ -  public void setQualifiedCertificate(boolean qualifiedCertificate) { -    this.qualifiedCertificate = qualifiedCertificate; -  } - -  /** -   * Sets the bPK. -   * @param bPK The bPK to set -   */ -  public void setBPK(String bPK) { -    this.bPK = bPK; -  } -   -//  /** -//   * Sets the wbPK. -//   * @param wbPK The wbPK to set -//   */ -//  public void setWBPK(String wbPK) { -//    this.wbPK = wbPK; -//  } - -//  public void setUseUTC(boolean useUTC) { -//	  this.useUTC = useUTC; -//  } -   -  /** -   * Returns the assertionID. -   * @return String -   */ -  public String getAssertionID() { -    return assertionID; -  } - -  /** -   * Returns the dateOfBirth. -   * @return String -   */ -  public String getDateOfBirth() { -    return dateOfBirth; -  } - -  /** -   * Returns the familyName. -   * @return String -   */ -  public String getFamilyName() { -    return familyName; -  } - -  /** -   * Returns the givenName. -   * @return String -   */ -  public String getGivenName() { -    return givenName; -  } - -  /** -   * Returns the identificationValue. -   * @return String -   */ -  public String getIdentificationValue() { -    return identificationValue; -  } +  	/** -	 * Returns the identificationType -	 * @return String +	 * @return the useMandate  	 */ -	public String getIdentificationType() { -		return identificationType; +	public boolean isUseMandate() { +		return useMandate;  	} -  /** -   * Returns the issueInstant. -   * @return String -   */ -  public String getIssueInstant() { -    return issueInstant; -  } - -  /** -   * Returns the issuer. -   * @return String -   */ -  public String getIssuer() { -    return issuer; -  } - -  /** -   * Returns the majorVersion. -   * @return int -   */ -  public int getMajorVersion() { -    return majorVersion; -  } -   -  /** -   * Returns the BKU URL. -   * @return String -   */ -  public String getBkuURL() { -    return bkuURL; -  } - -  /** -   * Returns the signer certificate. -   * @return String -   */ -  public String getSignerCertificate() { -    return signerCertificate; -  }  - -  /** -   * Sets the assertionID. -   * @param assertionID The assertionID to set -   */ -  public void setAssertionID(String assertionID) { -    this.assertionID = assertionID; -  } - -  /** -   * Sets the dateOfBirth. -   * @param dateOfBirth The dateOfBirth to set -   */ -  public void setDateOfBirth(String dateOfBirth) { -    this.dateOfBirth = dateOfBirth; -  } - -  /** -   * Sets the familyName. -   * @param familyName The familyName to set -   */ -  public void setFamilyName(String familyName) { -    this.familyName = familyName; -  } - -  /** -   * Sets the givenName. -   * @param givenName The givenName to set -   */ -  public void setGivenName(String givenName) { -    this.givenName = givenName; -  } - -  /** -   * Sets the identificationValue. -   * @param identificationValue The identificationValue to set -   */ -  public void setIdentificationValue(String identificationValue) { -    this.identificationValue = identificationValue; -  }  	/** -	 * Sets the identificationType. -	 * @param identificationType The identificationType to set +	 * @param useMandate the useMandate to set  	 */ -	public void setIdentificationType(String identificationType) { -		this.identificationType = identificationType; +	public void setUseMandate(boolean useMandate) { +		this.useMandate = useMandate;  	} -  /** -   * Sets the issueInstant. -   * @param issueInstant The issueInstant to set -   */ -  public void setIssueInstant(String issueInstant) { -    this.issueInstant = issueInstant; -  } - -  /** -   * Sets the issuer. -   * @param issuer The issuer to set -   */ -  public void setIssuer(String issuer) { -    this.issuer = issuer; -  } - -  /** -   * Sets the majorVersion. -   * @param majorVersion The majorVersion to set -   */ -  public void setMajorVersion(int majorVersion) { -    this.majorVersion = majorVersion; -  } -   -  /** -   * Sets the bkuURL -   * @param url The BKU URL to set -   */ -  public void setBkuURL(String url) { -    this.bkuURL = url; -  } -   -  /** -   * Sets the signer certificate -   * @param signerCertificate The signer certificate -   */ -  public void setSignerCertificate(String signerCertificate) { -    this.signerCertificate = signerCertificate; -  } - -  /** -   * Returns the samlAssertion. -   * @return String -   */ -  public String getSamlAssertion() { -    return samlAssertion; -  } - -  /** -   * Sets the samlAssertion. -   * @param samlAssertion The samlAssertion to set -   */ -  public void setSamlAssertion(String samlAssertion) { -    this.samlAssertion = samlAssertion; -  } - -  /** -   * Returns the timestamp. -   * @return Date -   */ -  public Date getTimestamp() { -    return timestamp; -  } - -public String getBPKType() { -	return bPKType; -} -public void setBPKType(String bPKType) { -	this.bPKType = bPKType; -} +	/** +	 * @return +	 */ +	public String getQAALevel() { +		return this.QAALevel; +	} -/** - * @return the identityLink - */ -public IdentityLink getIdentityLink() { -	return identityLink; -} -/** - * @param identityLink the identityLink to set - */ -public void setIdentityLink(IdentityLink identityLink) { -	this.identityLink = identityLink; -} +	/** +	 * @return +	 */ +	public boolean isForeigner() { +		return this.foreigner; +	} + +	/** +	 * @param foreigner the foreigner to set +	 */ +	public void setForeigner(boolean foreigner) { +		this.foreigner = foreigner; +	} + + +	/** +	 * @param qAALevel the qAALevel to set +	 */ +	public void setQAALevel(String qAALevel) { +		QAALevel = qAALevel; +	} + + +	/** +	 * @return the ssoSession +	 */ +	public boolean isSsoSession() { +		return ssoSession; +	} + + +	/** +	 * @param ssoSession the ssoSession to set +	 */ +	public void setSsoSession(boolean ssoSession) { +		this.ssoSession = ssoSession; +	} +	/** +	 * @param storkRequest the storkRequest to set +	 */ +	public void setStorkRequest(STORKAuthnRequest storkRequest) { +		this.storkRequest = storkRequest; +	} + +	/* (non-Javadoc) +	 * @see at.gv.egovernment.moa.id.data.IAuthData#getStorkAuthnRequest() +	 */ +	@Override +	public STORKAuthnRequest getStorkAuthnRequest() { +		return this.storkRequest; +	} + +	/** +	 * @return the storkAuthnResponse +	 */ +	public String getStorkAuthnResponse() { +		return storkAuthnResponse; +	} + +	/** +	 * @param storkAuthnResponse the storkAuthnResponse to set +	 */ +	public void setStorkAuthnResponse(String storkAuthnResponse) { +		this.storkAuthnResponse = storkAuthnResponse; +	} + +	/** +	 * @return the mandateReferenceValue +	 */ +	public String getMandateReferenceValue() { +		return mandateReferenceValue; +	} + +	/** +	 * @param mandateReferenceValue the mandateReferenceValue to set +	 */ +	public void setMandateReferenceValue(String mandateReferenceValue) { +		this.mandateReferenceValue = mandateReferenceValue; +	} + +	/** +	 * @return the ccc +	 */ +	public String getCcc() { +		return ccc; +	} + +	/** +	 * @param ccc the ccc to set +	 */ +	public void setCcc(String ccc) { +		this.ccc = ccc; +	} +	 +	 +	 +	 +	 -    } diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/data/IAuthData.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/data/IAuthData.java new file mode 100644 index 000000000..699bd871b --- /dev/null +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/data/IAuthData.java @@ -0,0 +1,79 @@ +/* + * Copyright 2014 Federal Chancellery Austria + * MOA-ID has been developed in a cooperation between BRZ, the Federal + * Chancellery Austria - ICT staff unit, and Graz University of Technology. + * + * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by + * the European Commission - subsequent versions of the EUPL (the "Licence"); + * You may not use this work except in compliance with the Licence. + * You may obtain a copy of the Licence at: + * http://www.osor.eu/eupl/ + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the Licence is distributed on an "AS IS" basis, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the Licence for the specific language governing permissions and + * limitations under the Licence. + * + * This product combines work with different licenses. See the "NOTICE" text + * file for details on the various modules and licenses. + * The "NOTICE" text file is part of the distribution. Any derivative works + * that you distribute must include a readable copy of the "NOTICE" text file. + */ +package at.gv.egovernment.moa.id.data; + +import java.util.Date; + +import org.w3c.dom.Element; + +import eu.stork.peps.auth.commons.IPersonalAttributeList; +import eu.stork.peps.auth.commons.STORKAuthnRequest; + +import at.gv.egovernment.moa.id.auth.data.IdentityLink; +import at.gv.egovernment.moa.id.util.client.mis.simple.MISMandate; + +/** + * @author tlenz + * + */ +public interface IAuthData { + +	 Date getIssueInstant(); +	 String getIssuer(); + +	 boolean isSsoSession(); +	 boolean isUseMandate(); +	  +	 String getFamilyName(); +	 String getGivenName(); +	 Date getDateOfBirth(); +	 String getFormatedDateOfBirth(); + +	 String getBPK(); +	 String getBPKType(); +	  +	 String getIdentificationValue(); +	 String getIdentificationType(); +	  +	 String getBkuURL(); + +	 IdentityLink getIdentityLink(); +	 byte[] getSignerCertificate(); +	 String getAuthBlock(); +	  +	 boolean isPublicAuthority(); +	 String getPublicAuthorityCode(); +	 boolean isQualifiedCertificate(); + +	 MISMandate getMISMandate(); +	 Element getMandate(); +	 String getMandateReferenceValue(); + +	 String getQAALevel(); +	  +	 boolean isForeigner(); +	 String getCcc(); +	 STORKAuthnRequest getStorkAuthnRequest(); +	 String getStorkAuthnResponse(); +	 IPersonalAttributeList getStorkAttributes();	 	  +} diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/entrypoints/DispatcherServlet.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/entrypoints/DispatcherServlet.java index 9fb2c7a69..31e19ee46 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/entrypoints/DispatcherServlet.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/entrypoints/DispatcherServlet.java @@ -25,18 +25,15 @@ package at.gv.egovernment.moa.id.entrypoints;  import java.io.IOException;  import java.util.Iterator; -import java.util.Map; -import java.util.Set; -import java.util.concurrent.ConcurrentHashMap;  import javax.servlet.ServletConfig;  import javax.servlet.ServletException;  import javax.servlet.http.HttpServletRequest;  import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession;  import at.gv.egovernment.moa.id.advancedlogging.StatisticLogger;  import at.gv.egovernment.moa.id.auth.MOAIDAuthInitializer; +import at.gv.egovernment.moa.id.auth.builder.AuthenticationDataBuilder;  import at.gv.egovernment.moa.id.auth.data.AuthenticationSession;  import at.gv.egovernment.moa.id.auth.exception.AuthenticationException;  import at.gv.egovernment.moa.id.auth.exception.MOAIDException; @@ -46,6 +43,7 @@ import at.gv.egovernment.moa.id.auth.servlet.AuthServlet;  import at.gv.egovernment.moa.id.commons.db.ConfigurationDBUtils;  import at.gv.egovernment.moa.id.config.auth.AuthConfigurationProvider;  import at.gv.egovernment.moa.id.config.auth.OAAuthParameter; +import at.gv.egovernment.moa.id.data.IAuthData;  import at.gv.egovernment.moa.id.data.SLOInformationInterface;  import at.gv.egovernment.moa.id.moduls.AuthenticationManager;  import at.gv.egovernment.moa.id.moduls.IAction; @@ -250,7 +248,8 @@ public class DispatcherServlet extends AuthServlet{  					try {  						protocolRequest = info.preProcess(req, resp, action); -						if (protocolRequest != null) { +						if (protocolRequest != null && +								MiscUtil.isEmpty(protocolRequest.getRequestID())) {  							//Start new Authentication  							protocolRequest.setAction(action); @@ -262,6 +261,10 @@ public class DispatcherServlet extends AuthServlet{  							Logger.debug(DispatcherServlet.class.getName()+": Create PendingRequest with ID " + protocolRequestID + "."); +						} else if (protocolRequest != null &&  +								protocolRequest.getInterfederationResponse() != null ) { +							Logger.info("PreProcessing of SSO interfederation response complete. "); +						  						} else {  							Logger.error("Failed to generate a valid protocol request!");  							resp.setContentType("text/html;charset=UTF-8"); @@ -297,11 +300,12 @@ public class DispatcherServlet extends AuthServlet{  				String moasessionID = null;  				String newSSOSessionId = null;  				AuthenticationSession moasession = null;	 +				IAuthData authData = null;  				//get SSO Cookie for Request  				String ssoId = ssomanager.getSSOSessionID(req); -				boolean needAuthentication = moduleAction.needAuthentication(protocolRequest, req, resp); +				boolean needAuthentication = moduleAction.needAuthentication(protocolRequest, req, resp);				  				if (needAuthentication) { @@ -405,11 +409,11 @@ public class DispatcherServlet extends AuthServlet{  						moasessionID = AuthenticationSessionStoreage.changeSessionID(moasession);  					} -					 - +					//build authenticationdata from session information and OA configuration +					authData = AuthenticationDataBuilder.buildAuthenticationData(protocolRequest, moasession);					  				} -		 -				SLOInformationInterface assertionID = moduleAction.processRequest(protocolRequest, req, resp, moasession); +										 +				SLOInformationInterface assertionID = moduleAction.processRequest(protocolRequest, req, resp, authData);  				RequestStorage.removePendingRequest(protocolRequestID); diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/moduls/AuthenticationManager.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/moduls/AuthenticationManager.java index b76863602..8a7a876a7 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/moduls/AuthenticationManager.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/moduls/AuthenticationManager.java @@ -115,9 +115,7 @@ public class AuthenticationManager extends AuthServlet {  			AuthenticationSession authSession;  			try {  				authSession = AuthenticationSessionStoreage.getSession(sessionID); -				 -	 -			 +							  				if (authSession != null) {  					Logger.info("MOASession found! A: "  							+ authSession.isAuthenticated() + ", AU " @@ -228,6 +226,7 @@ public class AuthenticationManager extends AuthServlet {  						idpEntity.getIDPSSODescriptor(SAMLConstants.SAML20P_NS).getSingleSignOnServices()) {  					// use POST binding as default if it exists  +					//TODO: maybe use RedirectBinding as default   					if (sss.getBinding().equals(SAMLConstants.SAML2_POST_BINDING_URI)) {   						redirectEndpoint = sss; diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/moduls/IAction.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/moduls/IAction.java index a2843d026..529e2ab81 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/moduls/IAction.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/moduls/IAction.java @@ -26,12 +26,13 @@ import javax.servlet.http.HttpServletRequest;  import javax.servlet.http.HttpServletResponse;  import at.gv.egovernment.moa.id.auth.MOAIDAuthConstants; -import at.gv.egovernment.moa.id.auth.data.AuthenticationSession;  import at.gv.egovernment.moa.id.auth.exception.MOAIDException; +import at.gv.egovernment.moa.id.data.AuthenticationData; +import at.gv.egovernment.moa.id.data.IAuthData;  import at.gv.egovernment.moa.id.data.SLOInformationInterface;  public interface IAction extends MOAIDAuthConstants { -	public SLOInformationInterface processRequest(IRequest req, HttpServletRequest httpReq, HttpServletResponse httpResp, AuthenticationSession moasession)  +	public SLOInformationInterface processRequest(IRequest req, HttpServletRequest httpReq, HttpServletResponse httpResp, IAuthData authData)   			throws MOAIDException;  	public boolean needAuthentication(IRequest req, HttpServletRequest httpReq, HttpServletResponse httpResp); diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/oauth20/attributes/OAuth20AttributeBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/oauth20/attributes/OAuth20AttributeBuilder.java index 394fd1430..9376e3d58 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/oauth20/attributes/OAuth20AttributeBuilder.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/oauth20/attributes/OAuth20AttributeBuilder.java @@ -27,9 +27,8 @@ import java.util.List;  import org.apache.commons.lang.StringUtils; -import at.gv.egovernment.moa.id.auth.data.AuthenticationSession;  import at.gv.egovernment.moa.id.config.auth.OAAuthParameter; -import at.gv.egovernment.moa.id.data.AuthenticationData; +import at.gv.egovernment.moa.id.data.IAuthData;  import at.gv.egovernment.moa.id.protocols.oauth20.Pair;  import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.BPKAttributeBuilder;  import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.EIDAuthBlock; @@ -173,10 +172,10 @@ public final class OAuth20AttributeBuilder {  	}  	private static void addAttibutes(final List<IAttributeBuilder> builders, final JsonObject jsonObject, -			final AuthenticationSession authSession, final OAAuthParameter oaParam, final AuthenticationData authData) { +			final OAAuthParameter oaParam, final IAuthData authData) {  		for (IAttributeBuilder b : builders) {  			try { -				Pair<String, JsonPrimitive> attribute = b.build(authSession, oaParam, authData, generator); +				Pair<String, JsonPrimitive> attribute = b.build(oaParam, authData, generator);  				if (attribute != null && !StringUtils.isEmpty(attribute.getSecond().getAsString())) {  					jsonObject.add(attribute.getFirst(), attribute.getSecond());  				} @@ -187,33 +186,33 @@ public final class OAuth20AttributeBuilder {  		}  	} -	public static void addScopeOpenId(final JsonObject jsonObject, final AuthenticationSession authSession, -			final OAAuthParameter oaParam, final AuthenticationData authData) { -		addAttibutes(buildersOpenId, jsonObject, authSession, oaParam, authData); +	public static void addScopeOpenId(final JsonObject jsonObject, +			final OAAuthParameter oaParam, final IAuthData authData) { +		addAttibutes(buildersOpenId, jsonObject, oaParam, authData);  	} -	public static void addScopeProfile(final JsonObject jsonObject, final AuthenticationSession authSession, -			final OAAuthParameter oaParam, final AuthenticationData authData) { -		addAttibutes(buildersProfile, jsonObject, authSession, oaParam, authData); +	public static void addScopeProfile(final JsonObject jsonObject, +			final OAAuthParameter oaParam, final IAuthData authData) { +		addAttibutes(buildersProfile, jsonObject, oaParam, authData);  	} -	public static void addScopeEID(final JsonObject jsonObject, final AuthenticationSession authSession, -			final OAAuthParameter oaParam, final AuthenticationData authData) { -		addAttibutes(buildersEID, jsonObject, authSession, oaParam, authData); +	public static void addScopeEID(final JsonObject jsonObject, +			final OAAuthParameter oaParam, final IAuthData authData) { +		addAttibutes(buildersEID, jsonObject, oaParam, authData);  	} -	public static void addScopeEIDGov(final JsonObject jsonObject, final AuthenticationSession authSession, -			final OAAuthParameter oaParam, final AuthenticationData authData) { -		addAttibutes(buildersEIDGov, jsonObject, authSession, oaParam, authData); +	public static void addScopeEIDGov(final JsonObject jsonObject, +			final OAAuthParameter oaParam, final IAuthData authData) { +		addAttibutes(buildersEIDGov, jsonObject, oaParam, authData);  	} -	public static void addScopeMandate(final JsonObject jsonObject, final AuthenticationSession authSession, -			final OAAuthParameter oaParam, final AuthenticationData authData) { -		addAttibutes(buildersMandate, jsonObject, authSession, oaParam, authData); +	public static void addScopeMandate(final JsonObject jsonObject, +			final OAAuthParameter oaParam, final IAuthData authData) { +		addAttibutes(buildersMandate, jsonObject, oaParam, authData);  	} -	public static void addScopeSTORK(final JsonObject jsonObject, final AuthenticationSession authSession, -			final OAAuthParameter oaParam, final AuthenticationData authData) { -		addAttibutes(buildersSTORK, jsonObject, authSession, oaParam, authData); +	public static void addScopeSTORK(final JsonObject jsonObject, +			final OAAuthParameter oaParam, final IAuthData authData) { +		addAttibutes(buildersSTORK, jsonObject, oaParam, authData);  	}  } diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/oauth20/attributes/OpenIdAuthenticationTimeAttribute.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/oauth20/attributes/OpenIdAuthenticationTimeAttribute.java index da1980896..121648499 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/oauth20/attributes/OpenIdAuthenticationTimeAttribute.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/oauth20/attributes/OpenIdAuthenticationTimeAttribute.java @@ -22,9 +22,8 @@   *******************************************************************************/  package at.gv.egovernment.moa.id.protocols.oauth20.attributes; -import at.gv.egovernment.moa.id.auth.data.AuthenticationSession;  import at.gv.egovernment.moa.id.config.auth.OAAuthParameter; -import at.gv.egovernment.moa.id.data.AuthenticationData; +import at.gv.egovernment.moa.id.data.IAuthData;  import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.IAttributeBuilder;  import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.IAttributeGenerator;  import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.AttributeException; @@ -35,9 +34,9 @@ public class OpenIdAuthenticationTimeAttribute implements IAttributeBuilder {  		return "auth_time";  	} -	public <ATT> ATT build(AuthenticationSession authSession, OAAuthParameter oaParam, AuthenticationData authData, +	public <ATT> ATT build(OAAuthParameter oaParam, IAuthData authData,  			IAttributeGenerator<ATT> g) throws AttributeException { -		return g.buildLongAttribute(this.getName(), "", ((long) (authData.getTimestamp().getTime() / 1000))); +		return g.buildLongAttribute(this.getName(), "", ((long) (authData.getIssueInstant().getTime() / 1000)));  	}  	public <ATT> ATT buildEmpty(IAttributeGenerator<ATT> g) { diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/oauth20/attributes/OpenIdExpirationTimeAttribute.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/oauth20/attributes/OpenIdExpirationTimeAttribute.java index e7a85705a..9230c0105 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/oauth20/attributes/OpenIdExpirationTimeAttribute.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/oauth20/attributes/OpenIdExpirationTimeAttribute.java @@ -24,9 +24,8 @@ package at.gv.egovernment.moa.id.protocols.oauth20.attributes;  import java.util.Date; -import at.gv.egovernment.moa.id.auth.data.AuthenticationSession;  import at.gv.egovernment.moa.id.config.auth.OAAuthParameter; -import at.gv.egovernment.moa.id.data.AuthenticationData; +import at.gv.egovernment.moa.id.data.IAuthData;  import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.IAttributeBuilder;  import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.IAttributeGenerator;  import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.AttributeException; @@ -39,7 +38,7 @@ public class OpenIdExpirationTimeAttribute implements IAttributeBuilder {  		return "exp";  	} -	public <ATT> ATT build(AuthenticationSession authSession, OAAuthParameter oaParam, AuthenticationData authData, +	public <ATT> ATT build(OAAuthParameter oaParam, IAuthData authData,  			IAttributeGenerator<ATT> g) throws AttributeException {  		return g.buildLongAttribute(this.getName(), "", (long) (new Date().getTime() / 1000 + expirationTime));  	} diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/oauth20/attributes/OpenIdIssueInstantAttribute.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/oauth20/attributes/OpenIdIssueInstantAttribute.java index a75dfd029..3bdda5c2a 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/oauth20/attributes/OpenIdIssueInstantAttribute.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/oauth20/attributes/OpenIdIssueInstantAttribute.java @@ -24,9 +24,8 @@ package at.gv.egovernment.moa.id.protocols.oauth20.attributes;  import java.util.Date; -import at.gv.egovernment.moa.id.auth.data.AuthenticationSession;  import at.gv.egovernment.moa.id.config.auth.OAAuthParameter; -import at.gv.egovernment.moa.id.data.AuthenticationData; +import at.gv.egovernment.moa.id.data.IAuthData;  import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.IAttributeBuilder;  import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.IAttributeGenerator;  import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.AttributeException; @@ -37,7 +36,7 @@ public class OpenIdIssueInstantAttribute implements IAttributeBuilder {  		return "iat";  	} -	public <ATT> ATT build(AuthenticationSession authSession, OAAuthParameter oaParam, AuthenticationData authData, +	public <ATT> ATT build(OAAuthParameter oaParam, IAuthData authData,  			IAttributeGenerator<ATT> g) throws AttributeException {  		return g.buildLongAttribute(this.getName(), "", (long) (new Date().getTime() / 1000));  	} diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/oauth20/attributes/OpenIdIssuerAttribute.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/oauth20/attributes/OpenIdIssuerAttribute.java index d21f1a5bb..85c46d5b2 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/oauth20/attributes/OpenIdIssuerAttribute.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/oauth20/attributes/OpenIdIssuerAttribute.java @@ -22,9 +22,8 @@   *******************************************************************************/  package at.gv.egovernment.moa.id.protocols.oauth20.attributes; -import at.gv.egovernment.moa.id.auth.data.AuthenticationSession;  import at.gv.egovernment.moa.id.config.auth.OAAuthParameter; -import at.gv.egovernment.moa.id.data.AuthenticationData; +import at.gv.egovernment.moa.id.data.IAuthData;  import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.IAttributeBuilder;  import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.IAttributeGenerator;  import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.AttributeException; @@ -35,7 +34,7 @@ public class OpenIdIssuerAttribute implements IAttributeBuilder {  		return "iss";  	} -	public <ATT> ATT build(AuthenticationSession authSession, OAAuthParameter oaParam, AuthenticationData authData, +	public <ATT> ATT build(OAAuthParameter oaParam, IAuthData authData,  			IAttributeGenerator<ATT> g) throws AttributeException {  		return g.buildStringAttribute(this.getName(), "", authData.getIssuer());  	} diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/oauth20/attributes/OpenIdSubjectIdentifierAttribute.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/oauth20/attributes/OpenIdSubjectIdentifierAttribute.java index bc48ce915..d5bda0dba 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/oauth20/attributes/OpenIdSubjectIdentifierAttribute.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/oauth20/attributes/OpenIdSubjectIdentifierAttribute.java @@ -22,9 +22,8 @@   *******************************************************************************/  package at.gv.egovernment.moa.id.protocols.oauth20.attributes; -import at.gv.egovernment.moa.id.auth.data.AuthenticationSession;  import at.gv.egovernment.moa.id.config.auth.OAAuthParameter; -import at.gv.egovernment.moa.id.data.AuthenticationData; +import at.gv.egovernment.moa.id.data.IAuthData;  import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.IAttributeBuilder;  import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.IAttributeGenerator;  import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.AttributeException; @@ -35,7 +34,7 @@ public class OpenIdSubjectIdentifierAttribute implements IAttributeBuilder {  		return "sub";  	} -	public <ATT> ATT build(AuthenticationSession authSession, OAAuthParameter oaParam, AuthenticationData authData, +	public <ATT> ATT build(OAAuthParameter oaParam, IAuthData authData,  			IAttributeGenerator<ATT> g) throws AttributeException {  		return g.buildStringAttribute(this.getName(), "", authData.getBPK());  	} diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/oauth20/attributes/ProfileDateOfBirthAttribute.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/oauth20/attributes/ProfileDateOfBirthAttribute.java index a92b0c12d..dd84536ed 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/oauth20/attributes/ProfileDateOfBirthAttribute.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/oauth20/attributes/ProfileDateOfBirthAttribute.java @@ -22,9 +22,8 @@   *******************************************************************************/  package at.gv.egovernment.moa.id.protocols.oauth20.attributes; -import at.gv.egovernment.moa.id.auth.data.AuthenticationSession;  import at.gv.egovernment.moa.id.config.auth.OAAuthParameter; -import at.gv.egovernment.moa.id.data.AuthenticationData; +import at.gv.egovernment.moa.id.data.IAuthData;  import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.IAttributeBuilder;  import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.IAttributeGenerator;  import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.AttributeException; @@ -35,9 +34,9 @@ public class ProfileDateOfBirthAttribute implements IAttributeBuilder {  		return "birthdate";  	} -	public <ATT> ATT build(AuthenticationSession authSession, OAAuthParameter oaParam, AuthenticationData authData, +	public <ATT> ATT build(OAAuthParameter oaParam, IAuthData authData,  			IAttributeGenerator<ATT> g) throws AttributeException { -		return g.buildStringAttribute(this.getName(), "", authData.getDateOfBirth()); +		return g.buildStringAttribute(this.getName(), "", authData.getFormatedDateOfBirth());  	}  	public <ATT> ATT buildEmpty(IAttributeGenerator<ATT> g) { diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/oauth20/attributes/ProfileFamilyNameAttribute.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/oauth20/attributes/ProfileFamilyNameAttribute.java index 5ce22a6c6..02cc66e4b 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/oauth20/attributes/ProfileFamilyNameAttribute.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/oauth20/attributes/ProfileFamilyNameAttribute.java @@ -22,9 +22,8 @@   *******************************************************************************/  package at.gv.egovernment.moa.id.protocols.oauth20.attributes; -import at.gv.egovernment.moa.id.auth.data.AuthenticationSession;  import at.gv.egovernment.moa.id.config.auth.OAAuthParameter; -import at.gv.egovernment.moa.id.data.AuthenticationData; +import at.gv.egovernment.moa.id.data.IAuthData;  import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.IAttributeBuilder;  import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.IAttributeGenerator;  import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.AttributeException; @@ -35,7 +34,7 @@ public class ProfileFamilyNameAttribute implements IAttributeBuilder {  		return "family_name";  	} -	public <ATT> ATT build(AuthenticationSession authSession, OAAuthParameter oaParam, AuthenticationData authData, +	public <ATT> ATT build(OAAuthParameter oaParam, IAuthData authData,  			IAttributeGenerator<ATT> g) throws AttributeException {  		return g.buildStringAttribute(this.getName(), "", authData.getFamilyName());  	} diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/oauth20/attributes/ProfileGivenNameAttribute.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/oauth20/attributes/ProfileGivenNameAttribute.java index 047bfa9a9..302ce8105 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/oauth20/attributes/ProfileGivenNameAttribute.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/oauth20/attributes/ProfileGivenNameAttribute.java @@ -22,9 +22,8 @@   *******************************************************************************/  package at.gv.egovernment.moa.id.protocols.oauth20.attributes; -import at.gv.egovernment.moa.id.auth.data.AuthenticationSession;  import at.gv.egovernment.moa.id.config.auth.OAAuthParameter; -import at.gv.egovernment.moa.id.data.AuthenticationData; +import at.gv.egovernment.moa.id.data.IAuthData;  import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.IAttributeBuilder;  import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.IAttributeGenerator;  import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.AttributeException; @@ -35,7 +34,7 @@ public class ProfileGivenNameAttribute implements IAttributeBuilder {  		return "given_name";  	} -	public <ATT> ATT build(AuthenticationSession authSession, OAAuthParameter oaParam, AuthenticationData authData, +	public <ATT> ATT build(OAAuthParameter oaParam, IAuthData authData,  			IAttributeGenerator<ATT> g) throws AttributeException {  		return g.buildStringAttribute(this.getName(), "", authData.getGivenName());  	} diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/oauth20/protocol/OAuth20AuthAction.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/oauth20/protocol/OAuth20AuthAction.java index 3cc12ff98..2a1fe0882 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/oauth20/protocol/OAuth20AuthAction.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/oauth20/protocol/OAuth20AuthAction.java @@ -30,13 +30,10 @@ import java.util.UUID;  import javax.servlet.http.HttpServletRequest;  import javax.servlet.http.HttpServletResponse; -import at.gv.egovernment.moa.id.auth.AuthenticationServer; -import at.gv.egovernment.moa.id.auth.data.AuthenticationSession;  import at.gv.egovernment.moa.id.auth.exception.MOAIDException; -import at.gv.egovernment.moa.id.commons.db.ex.MOADatabaseException;  import at.gv.egovernment.moa.id.config.auth.AuthConfigurationProvider;  import at.gv.egovernment.moa.id.config.auth.OAAuthParameter; -import at.gv.egovernment.moa.id.data.AuthenticationData; +import at.gv.egovernment.moa.id.data.IAuthData;  import at.gv.egovernment.moa.id.data.SLOInformationImpl;  import at.gv.egovernment.moa.id.data.SLOInformationInterface;  import at.gv.egovernment.moa.id.moduls.IAction; @@ -53,14 +50,13 @@ import at.gv.egovernment.moa.id.protocols.oauth20.json.OAuth20SignatureUtil;  import at.gv.egovernment.moa.id.protocols.oauth20.json.OAuthJsonToken;  import at.gv.egovernment.moa.id.protocols.oauth20.json.OAuthSigner;  import at.gv.egovernment.moa.id.storage.AssertionStorage; -import at.gv.egovernment.moa.id.storage.AuthenticationSessionStoreage;  import at.gv.egovernment.moa.id.util.Random;  import at.gv.egovernment.moa.logging.Logger;  class OAuth20AuthAction implements IAction {  	public SLOInformationInterface processRequest(IRequest req, HttpServletRequest httpReq, HttpServletResponse httpResp, -			AuthenticationSession moasession) throws MOAIDException { +			IAuthData authData) throws MOAIDException {  		OAuth20AuthRequest oAuthRequest = (OAuth20AuthRequest) req;		  		String responseType = oAuthRequest.getResponseType(); @@ -78,7 +74,7 @@ class OAuth20AuthAction implements IAction {  				o.setCode(code);  				//generate idToken from MOASession -				Map<String, Object> idToken = generateIDToken(o, oAuthRequest, moasession, accessToken); +				Map<String, Object> idToken = generateIDToken(o, oAuthRequest, authData, accessToken);  				o.setAuthDataSession(idToken);  			} else if (responseType.equals(OAuth20Constants.RESPONSE_TOKEN)) { @@ -124,7 +120,7 @@ class OAuth20AuthAction implements IAction {  	}  	private Map<String, Object> generateIDToken(OAuth20SessionObject auth20SessionObject,  -			OAuth20AuthRequest oAuthRequest, AuthenticationSession moasession, String accessToken) throws SignatureException, MOAIDException { +			OAuth20AuthRequest oAuthRequest, IAuthData authData, String accessToken) throws SignatureException, MOAIDException {  		// create response  		Map<String, Object> params = new HashMap<String, Object>(); @@ -134,7 +130,7 @@ class OAuth20AuthAction implements IAction {  		// build id token and scope  		Pair<String, String> pair = buildIdToken(auth20SessionObject.getScope(), oAuthRequest, -				moasession); +				authData);  		Logger.debug("RESPONSE ID_TOKEN: " + pair.getFirst());  		params.put(OAuth20Constants.RESPONSE_ID_TOKEN, pair.getFirst());  		Logger.debug("RESPONSE SCOPE: " + pair.getSecond()); @@ -144,34 +140,33 @@ class OAuth20AuthAction implements IAction {  	} -	private Pair<String, String> buildIdToken(String scope, OAuth20AuthRequest oAuthRequest, AuthenticationSession session) +	private Pair<String, String> buildIdToken(String scope, OAuth20AuthRequest oAuthRequest, IAuthData authData)  			throws MOAIDException, SignatureException {  		OAAuthParameter oaParam = AuthConfigurationProvider.getInstance().getOnlineApplicationParameter(oAuthRequest.getOAURL()); -		AuthenticationData authData = AuthenticationServer.buildAuthenticationData(session, oaParam, oAuthRequest.getTarget());  		OAuthSigner signer = OAuth20SignatureUtil.loadSigner(authData.getIssuer());  		OAuthJsonToken token = new OAuthJsonToken(signer);  		StringBuilder resultScopes = new StringBuilder();  		// always fill with open id -		OAuth20AttributeBuilder.addScopeOpenId(token.getPayloadAsJsonObject(), session, oaParam, authData); +		OAuth20AttributeBuilder.addScopeOpenId(token.getPayloadAsJsonObject(), oaParam, authData);  		resultScopes.append("openId");  		for (String s : scope.split(" ")) {  			if (s.equalsIgnoreCase("profile")) { -				OAuth20AttributeBuilder.addScopeProfile(token.getPayloadAsJsonObject(), session, oaParam, authData); +				OAuth20AttributeBuilder.addScopeProfile(token.getPayloadAsJsonObject(), oaParam, authData);  				resultScopes.append(" profile");  			} else if (s.equalsIgnoreCase("eID")) { -				OAuth20AttributeBuilder.addScopeEID(token.getPayloadAsJsonObject(), session, oaParam, authData); +				OAuth20AttributeBuilder.addScopeEID(token.getPayloadAsJsonObject(), oaParam, authData);  				resultScopes.append(" eID");  			} else if (s.equalsIgnoreCase("eID_gov")) { -				OAuth20AttributeBuilder.addScopeEIDGov(token.getPayloadAsJsonObject(), session, oaParam, authData); +				OAuth20AttributeBuilder.addScopeEIDGov(token.getPayloadAsJsonObject(), oaParam, authData);  				resultScopes.append(" eID_gov");  			} else if (s.equalsIgnoreCase("mandate")) { -				OAuth20AttributeBuilder.addScopeMandate(token.getPayloadAsJsonObject(), session, oaParam, authData); +				OAuth20AttributeBuilder.addScopeMandate(token.getPayloadAsJsonObject(), oaParam, authData);  				resultScopes.append(" mandate");  			} else if (s.equalsIgnoreCase("stork")) { -				OAuth20AttributeBuilder.addScopeSTORK(token.getPayloadAsJsonObject(), session, oaParam, authData); +				OAuth20AttributeBuilder.addScopeSTORK(token.getPayloadAsJsonObject(), oaParam, authData);  				resultScopes.append(" stork");  			}  		} diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/oauth20/protocol/OAuth20TokenAction.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/oauth20/protocol/OAuth20TokenAction.java index be320271a..944da38d0 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/oauth20/protocol/OAuth20TokenAction.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/oauth20/protocol/OAuth20TokenAction.java @@ -26,9 +26,9 @@ package at.gv.egovernment.moa.id.protocols.oauth20.protocol;  import javax.servlet.http.HttpServletRequest;  import javax.servlet.http.HttpServletResponse; -import at.gv.egovernment.moa.id.auth.data.AuthenticationSession;  import at.gv.egovernment.moa.id.auth.exception.MOAIDException;  import at.gv.egovernment.moa.id.commons.db.ex.MOADatabaseException; +import at.gv.egovernment.moa.id.data.IAuthData;  import at.gv.egovernment.moa.id.data.SLOInformationInterface;  import at.gv.egovernment.moa.id.moduls.IAction;  import at.gv.egovernment.moa.id.moduls.IRequest; @@ -44,7 +44,7 @@ import com.google.gson.JsonObject;  class OAuth20TokenAction implements IAction {  	public SLOInformationInterface processRequest(IRequest req, HttpServletRequest httpReq, HttpServletResponse httpResp, -			AuthenticationSession moasession) throws MOAIDException { +			IAuthData authData) throws MOAIDException {  		OAuth20SessionObject auth20SessionObject = null; diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/AuthenticationAction.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/AuthenticationAction.java index 1221e7234..7410e0624 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/AuthenticationAction.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/AuthenticationAction.java @@ -25,8 +25,8 @@ package at.gv.egovernment.moa.id.protocols.pvp2x;  import javax.servlet.http.HttpServletRequest;  import javax.servlet.http.HttpServletResponse; -import at.gv.egovernment.moa.id.auth.data.AuthenticationSession;  import at.gv.egovernment.moa.id.auth.exception.MOAIDException; +import at.gv.egovernment.moa.id.data.IAuthData;  import at.gv.egovernment.moa.id.data.SLOInformationImpl;  import at.gv.egovernment.moa.id.data.SLOInformationInterface;  import at.gv.egovernment.moa.id.moduls.IAction; @@ -36,10 +36,10 @@ import at.gv.egovernment.moa.id.protocols.pvp2x.requestHandler.RequestManager;  public class AuthenticationAction implements IAction {  	public SLOInformationInterface processRequest(IRequest req, HttpServletRequest httpReq, -			HttpServletResponse httpResp, AuthenticationSession moasession) throws MOAIDException { +			HttpServletResponse httpResp, IAuthData authData) throws MOAIDException {  		PVPTargetConfiguration pvpRequest = (PVPTargetConfiguration) req; -		SLOInformationImpl sloInformation = (SLOInformationImpl) RequestManager.getInstance().handle(pvpRequest.request, httpReq, httpResp, moasession); +		SLOInformationImpl sloInformation = (SLOInformationImpl) RequestManager.getInstance().handle(pvpRequest.request, httpReq, httpResp, authData);  		//set protocol type  		sloInformation.setProtocolType(req.requestedModule()); diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/MetadataAction.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/MetadataAction.java index fd501fde7..283142cda 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/MetadataAction.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/MetadataAction.java @@ -23,7 +23,6 @@  package at.gv.egovernment.moa.id.protocols.pvp2x;  import java.io.StringWriter; -import java.security.KeyStore;  import java.util.List;  import javax.servlet.http.HttpServletRequest; @@ -58,16 +57,15 @@ import org.opensaml.xml.security.SecurityHelper;  import org.opensaml.xml.security.credential.Credential;  import org.opensaml.xml.security.credential.UsageType;  import org.opensaml.xml.security.keyinfo.KeyInfoGenerator; -import org.opensaml.xml.security.x509.KeyStoreX509CredentialAdapter;  import org.opensaml.xml.security.x509.X509Credential;  import org.opensaml.xml.security.x509.X509KeyInfoGeneratorFactory;  import org.opensaml.xml.signature.Signature;  import org.opensaml.xml.signature.Signer;  import org.w3c.dom.Document; -import at.gv.egovernment.moa.id.auth.data.AuthenticationSession;  import at.gv.egovernment.moa.id.auth.exception.MOAIDException;  import at.gv.egovernment.moa.id.config.ConfigurationException; +import at.gv.egovernment.moa.id.data.IAuthData;  import at.gv.egovernment.moa.id.data.SLOInformationInterface;  import at.gv.egovernment.moa.id.moduls.IAction;  import at.gv.egovernment.moa.id.moduls.IRequest; @@ -77,14 +75,13 @@ import at.gv.egovernment.moa.id.protocols.pvp2x.signer.CredentialProvider;  import at.gv.egovernment.moa.id.protocols.pvp2x.signer.CredentialsNotAvailableException;  import at.gv.egovernment.moa.id.protocols.pvp2x.utils.SAML2Utils;  import at.gv.egovernment.moa.logging.Logger; -import at.gv.egovernment.moa.util.MiscUtil;  public class MetadataAction implements IAction {  	private static final int VALIDUNTIL_IN_HOURS = 24;  	public SLOInformationInterface processRequest(IRequest req, HttpServletRequest httpReq, -			HttpServletResponse httpResp, AuthenticationSession moasession) throws MOAIDException { +			HttpServletResponse httpResp, IAuthData authData) throws MOAIDException {  		try {  			EntitiesDescriptor idpEntitiesDescriptor =  diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/PVPAttributeBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/PVPAttributeBuilder.java index 39e35120c..57f01210d 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/PVPAttributeBuilder.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/PVPAttributeBuilder.java @@ -29,9 +29,8 @@ import java.util.List;  import org.opensaml.saml2.core.Attribute; -import at.gv.egovernment.moa.id.auth.data.AuthenticationSession;  import at.gv.egovernment.moa.id.config.auth.OAAuthParameter; -import at.gv.egovernment.moa.id.data.AuthenticationData; +import at.gv.egovernment.moa.id.data.IAuthData;  import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.BPKAttributeBuilder;  import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.BirthdateAttributeBuilder;  import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.EIDAuthBlock; @@ -150,11 +149,11 @@ public class PVPAttributeBuilder {  		addBuilder(new STORKTitleAttributBuilder());		  	} -	public static Attribute buildAttribute(String name, AuthenticationSession authSession, OAAuthParameter oaParam, -			AuthenticationData authData) throws PVP2Exception { +	public static Attribute buildAttribute(String name, OAAuthParameter oaParam, +			IAuthData authData) throws PVP2Exception {  		if (builders.containsKey(name)) {  			try { -				return builders.get(name).build(authSession, oaParam, authData, generator); +				return builders.get(name).build(oaParam, authData, generator);  			}  			catch (AttributeException e) {  				if (e instanceof UnavailableAttributeException) { diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/assertion/PVP2AssertionBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/assertion/PVP2AssertionBuilder.java index def0d9b80..5f16bcfce 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/assertion/PVP2AssertionBuilder.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/assertion/PVP2AssertionBuilder.java @@ -58,13 +58,12 @@ import at.gv.e_government.reference.namespace.mandates._20040701_.Mandate;  import at.gv.e_government.reference.namespace.persondata._20020228_.CorporateBodyType;  import at.gv.e_government.reference.namespace.persondata._20020228_.IdentificationType;  import at.gv.e_government.reference.namespace.persondata._20020228_.PhysicalPersonType; -import at.gv.egovernment.moa.id.auth.AuthenticationServer;  import at.gv.egovernment.moa.id.auth.builder.BPKBuilder;  import at.gv.egovernment.moa.id.auth.data.AuthenticationSession;  import at.gv.egovernment.moa.id.auth.exception.MOAIDException;  import at.gv.egovernment.moa.id.config.auth.AuthConfigurationProvider;  import at.gv.egovernment.moa.id.config.auth.OAAuthParameter; -import at.gv.egovernment.moa.id.data.AuthenticationData; +import at.gv.egovernment.moa.id.data.IAuthData;  import at.gv.egovernment.moa.id.data.SLOInformationImpl;  import at.gv.egovernment.moa.id.protocols.pvp2x.PVPConstants;  import at.gv.egovernment.moa.id.protocols.pvp2x.builder.PVPAttributeBuilder; @@ -83,7 +82,7 @@ import at.gv.egovernment.moa.util.Constants;  public class PVP2AssertionBuilder implements PVPConstants {  	public static Assertion buildAssertion(AuthnRequest authnRequest, -			AuthenticationSession authSession, EntityDescriptor peerEntity, DateTime date,  +			IAuthData authData, EntityDescriptor peerEntity, DateTime date,   			AssertionConsumerService assertionConsumerService, SLOInformationImpl sloInformation)  			throws MOAIDException {  		Assertion assertion = SAML2Utils.createSAMLObject(Assertion.class); @@ -99,7 +98,7 @@ public class PVP2AssertionBuilder implements PVPConstants {  						peerEntity.getEntityID());  		if (reqAuthnContext == null) { -			 authnContextClassRef.setAuthnContextClassRef(authSession.getQAALevel()); +			 authnContextClassRef.setAuthnContextClassRef(authData.getQAALevel());  		} else { @@ -110,7 +109,7 @@ public class PVP2AssertionBuilder implements PVPConstants {  			if (reqAuthnContextClassRefIt.size() == 0) { -				QAALevelVerifier.verifyQAALevel(authSession.getQAALevel(),  +				QAALevelVerifier.verifyQAALevel(authData.getQAALevel(),   						STORK_QAA_1_4);  				stork_qaa_1_4_found = true; @@ -124,20 +123,20 @@ public class PVP2AssertionBuilder implements PVPConstants {  							|| qaa_uri.trim().equals(STORK_QAA_1_2)  							|| qaa_uri.trim().equals(STORK_QAA_1_1)) { -						 if (authSession.isForeigner()) { -							 QAALevelVerifier.verifyQAALevel(authSession.getQAALevel(),  +						 if (authData.isForeigner()) { +							 QAALevelVerifier.verifyQAALevel(authData.getQAALevel(),   									 STORK_QAA_PREFIX + oaParam.getQaaLevel());  							 stork_qaa_1_4_found = true; -							 authnContextClassRef.setAuthnContextClassRef(authSession.getQAALevel()); +							 authnContextClassRef.setAuthnContextClassRef(authData.getQAALevel());  						 } else { -							 QAALevelVerifier.verifyQAALevel(authSession.getQAALevel(),  +							 QAALevelVerifier.verifyQAALevel(authData.getQAALevel(),   									 qaa_uri.trim());  							 stork_qaa_1_4_found = true; -							 authnContextClassRef.setAuthnContextClassRef(authSession.getQAALevel()); +							 authnContextClassRef.setAuthnContextClassRef(authData.getQAALevel());  						 }  						 break; @@ -172,10 +171,6 @@ public class PVP2AssertionBuilder implements PVPConstants {  		Subject subject = SAML2Utils.createSAMLObject(Subject.class); -		AuthenticationData authData = AuthenticationServer -				.buildAuthenticationData(authSession, oaParam, -						oaParam.getTarget()); -  		//add Attributes to Assertion  		if (spSSODescriptor.getAttributeConsumingServices() != null &&   				spSSODescriptor.getAttributeConsumingServices().size() > 0) { @@ -205,7 +200,7 @@ public class PVP2AssertionBuilder implements PVPConstants {  					RequestedAttribute reqAttribut = it.next();  					try {  						Attribute attr = PVPAttributeBuilder.buildAttribute( -								reqAttribut.getName(), authSession, oaParam, authData); +								reqAttribut.getName(), oaParam, authData);  						if (attr == null) {  							if (reqAttribut.isRequired()) {  								throw new UnprovideableAttributeException( @@ -222,6 +217,16 @@ public class PVP2AssertionBuilder implements PVPConstants {  							throw new UnprovideableAttributeException(  									reqAttribut.getName());  						} +						 +					} catch (Exception e) { +						Logger.error( +								"General Attribute generation failed! for " +										+ reqAttribut.getFriendlyName(), e); +						if (reqAttribut.isRequired()) { +							throw new UnprovideableAttributeException( +									reqAttribut.getName()); +						} +						  					}  				}  			} @@ -233,8 +238,8 @@ public class PVP2AssertionBuilder implements PVPConstants {  		NameID subjectNameID = SAML2Utils.createSAMLObject(NameID.class);  		//TLenz: set correct bPK Type and Value from AuthData -		if (authSession.getUseMandate()) { -			Element mandate = authSession.getMandate(); +		if (authData.isUseMandate()) { +			Element mandate = authData.getMandate();  			if(mandate == null) {  				throw new NoMandateDataAvailableException();  			} @@ -263,7 +268,7 @@ public class PVP2AssertionBuilder implements PVPConstants {  			if (bpktype.equals(Constants.URN_PREFIX_BASEID)) { -				if (authSession.getBusinessService()) {						     +				if (oaParam.getBusinessService()) {						      					subjectNameID.setValue(new BPKBuilder().buildWBPK(bpk, oaParam.getIdentityLinkDomainIdentifier()));  					if (oaParam.getIdentityLinkDomainIdentifier().startsWith(AuthenticationSession.REGISTERANDORDNR_PREFIX_))  						subjectNameID.setNameQualifier(oaParam.getIdentityLinkDomainIdentifier()); diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/BPKAttributeBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/BPKAttributeBuilder.java index 648651350..3dd1dd064 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/BPKAttributeBuilder.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/BPKAttributeBuilder.java @@ -22,9 +22,8 @@   *******************************************************************************/  package at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes; -import at.gv.egovernment.moa.id.auth.data.AuthenticationSession;  import at.gv.egovernment.moa.id.config.auth.OAAuthParameter; -import at.gv.egovernment.moa.id.data.AuthenticationData; +import at.gv.egovernment.moa.id.data.IAuthData;  import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.AttributeException;  import at.gv.egovernment.moa.logging.Logger;  import at.gv.egovernment.moa.util.Constants; @@ -35,7 +34,7 @@ public class BPKAttributeBuilder implements IPVPAttributeBuilder {  		return BPK_NAME;  	} -	public <ATT> ATT build(AuthenticationSession authSession, OAAuthParameter oaParam, AuthenticationData authData, +	public <ATT> ATT build(OAAuthParameter oaParam, IAuthData authData,  			IAttributeGenerator<ATT> g) throws AttributeException {  		String bpk = authData.getBPK();  		String type = authData.getBPKType(); diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/BirthdateAttributeBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/BirthdateAttributeBuilder.java index f3d815e7d..89ec383ce 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/BirthdateAttributeBuilder.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/BirthdateAttributeBuilder.java @@ -23,47 +23,31 @@  package at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes;  import java.text.DateFormat; -import java.text.ParseException;  import java.text.SimpleDateFormat; -import java.util.Date; -import at.gv.egovernment.moa.id.auth.data.AuthenticationSession;  import at.gv.egovernment.moa.id.config.auth.OAAuthParameter; -import at.gv.egovernment.moa.id.data.AuthenticationData; +import at.gv.egovernment.moa.id.data.IAuthData;  import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.AttributeException; -import at.gv.egovernment.moa.util.MiscUtil;  public class BirthdateAttributeBuilder implements IPVPAttributeBuilder { -	 -	public static final String IDENTITY_LINK_DATE_FORMAT = "yyyy-MM-dd"; -	 +		  	public String getName() {  		return BIRTHDATE_NAME;  	} -	public <ATT> ATT build(AuthenticationSession authSession, OAAuthParameter oaParam, AuthenticationData authData, +	public <ATT> ATT build(OAAuthParameter oaParam, IAuthData authData,  			IAttributeGenerator<ATT> g) throws AttributeException { -		try { -			DateFormat identityLinkFormat = new SimpleDateFormat(IDENTITY_LINK_DATE_FORMAT); +		 +		if (authData.getDateOfBirth() != null) {			 +			DateFormat pvpDateFormat = new SimpleDateFormat(BIRTHDATE_FORMAT_PATTERN); +			String dateString = pvpDateFormat.format(authData.getDateOfBirth()); +		 +			return g.buildStringAttribute(BIRTHDATE_FRIENDLY_NAME, BIRTHDATE_NAME, dateString); -			if (MiscUtil.isNotEmpty(authSession.getIdentityLink().getDateOfBirth())) {			 -				Date date = identityLinkFormat.parse(authSession.getIdentityLink().getDateOfBirth()); -				DateFormat pvpDateFormat = new SimpleDateFormat(BIRTHDATE_FORMAT_PATTERN); -				String dateString = pvpDateFormat.format(date); +		} else { +			//build empty attribute if no Birthday date is found (STORK2) +			return g.buildEmptyAttribute(BIRTHDATE_FRIENDLY_NAME, BIRTHDATE_NAME); -				return g.buildStringAttribute(BIRTHDATE_FRIENDLY_NAME, BIRTHDATE_NAME, dateString); -				 -			} else { -				//build empty attribute if no Birthday date is found (STORK2) -				return g.buildEmptyAttribute(BIRTHDATE_FRIENDLY_NAME, BIRTHDATE_NAME); -				 -			} -			 -			//return buildStringAttribute(BIRTHDATE_FRIENDLY_NAME, BIRTHDATE_NAME, dateString); -		} -		catch (ParseException e) { -			e.printStackTrace(); -			return null;  		}  	} diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/EIDAuthBlock.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/EIDAuthBlock.java index 56972248b..ded9e7166 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/EIDAuthBlock.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/EIDAuthBlock.java @@ -26,9 +26,8 @@ import iaik.util.logging.Log;  import java.io.IOException; -import at.gv.egovernment.moa.id.auth.data.AuthenticationSession;  import at.gv.egovernment.moa.id.config.auth.OAAuthParameter; -import at.gv.egovernment.moa.id.data.AuthenticationData; +import at.gv.egovernment.moa.id.data.IAuthData;  import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.AttributeException;  import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.UnavailableAttributeException;  import at.gv.egovernment.moa.util.Base64Utils; @@ -40,11 +39,11 @@ public class EIDAuthBlock implements IPVPAttributeBuilder {  		return EID_AUTH_BLOCK_NAME;  	} -	public <ATT> ATT build(AuthenticationSession authSession, OAAuthParameter oaParam, AuthenticationData authData, +	public <ATT> ATT build(OAAuthParameter oaParam, IAuthData authData,  			IAttributeGenerator<ATT> g) throws AttributeException {  		try { -			String authblock = authSession.getAuthBlock(); +			String authblock = authData.getAuthBlock();  			if (MiscUtil.isNotEmpty(authblock)) {  				return g.buildStringAttribute(EID_AUTH_BLOCK_FRIENDLY_NAME, EID_AUTH_BLOCK_NAME,  						Base64Utils.encode(authblock.getBytes())); diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/EIDCcsURL.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/EIDCcsURL.java index 7179dd090..2df5ec22e 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/EIDCcsURL.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/EIDCcsURL.java @@ -22,9 +22,8 @@   *******************************************************************************/  package at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes; -import at.gv.egovernment.moa.id.auth.data.AuthenticationSession;  import at.gv.egovernment.moa.id.config.auth.OAAuthParameter; -import at.gv.egovernment.moa.id.data.AuthenticationData; +import at.gv.egovernment.moa.id.data.IAuthData;  import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.AttributeException;  import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.UnavailableAttributeException;  import at.gv.egovernment.moa.util.MiscUtil; @@ -35,10 +34,10 @@ public class EIDCcsURL implements IPVPAttributeBuilder {  		return EID_CCS_URL_NAME;  	} -	public <ATT> ATT build(AuthenticationSession authSession, OAAuthParameter oaParam, AuthenticationData authData, +	public <ATT> ATT build(OAAuthParameter oaParam, IAuthData authData,  			IAttributeGenerator<ATT> g) throws AttributeException { -		String bkuurl = authSession.getBkuURL(); +		String bkuurl = authData.getBkuURL();  		if (MiscUtil.isNotEmpty(bkuurl))  			return g.buildStringAttribute(EID_CCS_URL_FRIENDLY_NAME, EID_CCS_URL_NAME, bkuurl);  		else diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/EIDCitizenQAALevelAttributeBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/EIDCitizenQAALevelAttributeBuilder.java index 02088eea1..365f36594 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/EIDCitizenQAALevelAttributeBuilder.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/EIDCitizenQAALevelAttributeBuilder.java @@ -22,9 +22,8 @@   *******************************************************************************/  package at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes; -import at.gv.egovernment.moa.id.auth.data.AuthenticationSession;  import at.gv.egovernment.moa.id.config.auth.OAAuthParameter; -import at.gv.egovernment.moa.id.data.AuthenticationData; +import at.gv.egovernment.moa.id.data.IAuthData;  import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.AttributeException;  public class EIDCitizenQAALevelAttributeBuilder implements IPVPAttributeBuilder { @@ -33,10 +32,17 @@ public class EIDCitizenQAALevelAttributeBuilder implements IPVPAttributeBuilder  		return EID_CITIZEN_QAA_LEVEL_NAME;  	} -	public <ATT> ATT build(AuthenticationSession authSession, OAAuthParameter oaParam, AuthenticationData authData, +	public <ATT> ATT build(OAAuthParameter oaParam, IAuthData authData,  			IAttributeGenerator<ATT> g) throws AttributeException { +		 +		String qaaLevel = null; +		if (authData.getQAALevel().startsWith(STORK_QAA_PREFIX)) +			qaaLevel = authData.getQAALevel().substring(STORK_QAA_PREFIX.length()); +		else +			qaaLevel = authData.getQAALevel(); +		  		return g.buildIntegerAttribute(EID_CITIZEN_QAA_LEVEL_FRIENDLY_NAME,  -				EID_CITIZEN_QAA_LEVEL_NAME, 4); +				EID_CITIZEN_QAA_LEVEL_NAME, Integer.valueOf(qaaLevel));  	} diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/EIDIdentityLinkBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/EIDIdentityLinkBuilder.java index 2d86586d2..531369e9a 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/EIDIdentityLinkBuilder.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/EIDIdentityLinkBuilder.java @@ -24,19 +24,11 @@ package at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes;  import java.io.IOException; -import javax.xml.transform.TransformerException; - -import org.w3c.dom.Element; - -import at.gv.egovernment.moa.id.auth.data.AuthenticationSession; -import at.gv.egovernment.moa.id.auth.exception.MOAIDException;  import at.gv.egovernment.moa.id.config.auth.OAAuthParameter; -import at.gv.egovernment.moa.id.data.AuthenticationData; +import at.gv.egovernment.moa.id.data.IAuthData;  import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.AttributeException; -import at.gv.egovernment.moa.id.util.IdentityLinkReSigner;  import at.gv.egovernment.moa.logging.Logger;  import at.gv.egovernment.moa.util.Base64Utils; -import at.gv.egovernment.moa.util.DOMUtils;  public class EIDIdentityLinkBuilder implements IPVPAttributeBuilder { @@ -44,36 +36,15 @@ public class EIDIdentityLinkBuilder implements IPVPAttributeBuilder {  		return EID_IDENTITY_LINK_NAME;  	} -	public <ATT> ATT build(AuthenticationSession authSession, OAAuthParameter oaParam, AuthenticationData authData, +	public <ATT> ATT build(OAAuthParameter oaParam, IAuthData authData,  			IAttributeGenerator<ATT> g) throws AttributeException {  		try {  			String ilAssertion = null; -			if (oaParam.getBusinessService()) { +			ilAssertion = authData.getIdentityLink().getSerializedSamlAssertion(); -				IdentityLinkReSigner identitylinkresigner = IdentityLinkReSigner.getInstance(); -						 -				Element resignedilAssertion; - -				resignedilAssertion = identitylinkresigner.resignIdentityLink(authData.getIdentityLink() -							.getSamlAssertion()); -				 -				ilAssertion = DOMUtils.serializeNode(resignedilAssertion); -				 -			} else -				ilAssertion = authData.getIdentityLink().getSerializedSamlAssertion(); -		 -		  			return g.buildStringAttribute(EID_IDENTITY_LINK_FRIENDLY_NAME,  					EID_IDENTITY_LINK_NAME, Base64Utils.encode(ilAssertion.getBytes())); -		} catch (MOAIDException e) { -			Logger.warn("IdentityLink serialization error.", e); -			return g.buildEmptyAttribute(EID_IDENTITY_LINK_FRIENDLY_NAME, -					EID_IDENTITY_LINK_NAME); -		} catch (TransformerException e) { -			Logger.warn("IdentityLink serialization error.", e); -			return g.buildEmptyAttribute(EID_IDENTITY_LINK_FRIENDLY_NAME, -					EID_IDENTITY_LINK_NAME);  		} catch (IOException e) {  			Logger.warn("IdentityLink serialization error.", e);  			return g.buildEmptyAttribute(EID_IDENTITY_LINK_FRIENDLY_NAME, diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/EIDIssuingNationAttributeBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/EIDIssuingNationAttributeBuilder.java index 39d4d29e7..6ad3017d1 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/EIDIssuingNationAttributeBuilder.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/EIDIssuingNationAttributeBuilder.java @@ -27,9 +27,8 @@ import iaik.x509.X509Certificate;  import javax.naming.ldap.LdapName;  import javax.naming.ldap.Rdn; -import at.gv.egovernment.moa.id.auth.data.AuthenticationSession;  import at.gv.egovernment.moa.id.config.auth.OAAuthParameter; -import at.gv.egovernment.moa.id.data.AuthenticationData; +import at.gv.egovernment.moa.id.data.IAuthData;  import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.AttributeException;  import at.gv.egovernment.moa.logging.Logger; @@ -39,21 +38,23 @@ public class EIDIssuingNationAttributeBuilder implements IPVPAttributeBuilder {  		return EID_ISSUING_NATION_NAME;  	} -	public <ATT> ATT build(AuthenticationSession authSession, OAAuthParameter oaParam, AuthenticationData authData, +	public <ATT> ATT build(OAAuthParameter oaParam, IAuthData authData,  			IAttributeGenerator<ATT> g) throws AttributeException {  		String countryCode = "AT"; -		if (authSession.getStorkAuthnRequest() != null) { -			countryCode = authSession.getStorkAuthnRequest() +		if (authData.getStorkAuthnRequest() != null) { +			countryCode = authData.getStorkAuthnRequest()  					.getCitizenCountryCode(); -		} else { -			//TODO: replace with TSL lookup when TSL is ready! -			X509Certificate certificate = authSession.getSignerCertificate(); +		} else { + +			try { +				//TODO: replace with TSL lookup when TSL is ready! +				X509Certificate certificate = new X509Certificate(authData.getSignerCertificate()); + +				if (certificate != null) { -			if (certificate != null) { -				try {  					LdapName ln = new LdapName(certificate.getIssuerDN()  							.getName());  					for (Rdn rdn : ln.getRdns()) { @@ -63,9 +64,11 @@ public class EIDIssuingNationAttributeBuilder implements IPVPAttributeBuilder {  							break;  						}  					} -				} catch (Exception e) { -					Logger.error("Failed to extract country code from certificate", e);  				} +				 +			} catch (Exception e) { +				Logger.error("Failed to extract country code from certificate", e); +				  			}  		} diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/EIDSTORKTOKEN.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/EIDSTORKTOKEN.java index e8fba6af2..9a65157a4 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/EIDSTORKTOKEN.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/EIDSTORKTOKEN.java @@ -22,9 +22,8 @@   *******************************************************************************/  package at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes; -import at.gv.egovernment.moa.id.auth.data.AuthenticationSession;  import at.gv.egovernment.moa.id.config.auth.OAAuthParameter; -import at.gv.egovernment.moa.id.data.AuthenticationData; +import at.gv.egovernment.moa.id.data.IAuthData;  import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.AttributeException;  import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.UnavailableAttributeException;  import at.gv.egovernment.moa.util.MiscUtil; @@ -35,15 +34,15 @@ public class EIDSTORKTOKEN implements IPVPAttributeBuilder  {  		return EID_STORK_TOKEN_NAME;  	} -	public <ATT> ATT build(AuthenticationSession authSession, OAAuthParameter oaParam, AuthenticationData authData, +	public <ATT> ATT build(OAAuthParameter oaParam, IAuthData authData,  			IAttributeGenerator<ATT> g) throws AttributeException { -		if (!authSession.isForeigner()) { +		if (!authData.isForeigner()) {  			throw new UnavailableAttributeException(EID_STORK_TOKEN_NAME);  		} else { -			String storkResponse = authSession.getStorkAuthnResponse(); +			String storkResponse = authData.getStorkAuthnResponse();  			if ( MiscUtil.isEmpty(storkResponse) ) {  				throw new UnavailableAttributeException(EID_STORK_TOKEN_NAME); diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/EIDSectorForIDAttributeBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/EIDSectorForIDAttributeBuilder.java index 807d59050..7f52e1d47 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/EIDSectorForIDAttributeBuilder.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/EIDSectorForIDAttributeBuilder.java @@ -22,9 +22,8 @@   *******************************************************************************/  package at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes; -import at.gv.egovernment.moa.id.auth.data.AuthenticationSession;  import at.gv.egovernment.moa.id.config.auth.OAAuthParameter; -import at.gv.egovernment.moa.id.data.AuthenticationData; +import at.gv.egovernment.moa.id.data.IAuthData;  import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.AttributeException;  public class EIDSectorForIDAttributeBuilder implements IPVPAttributeBuilder { @@ -33,7 +32,7 @@ public class EIDSectorForIDAttributeBuilder implements IPVPAttributeBuilder {  		return EID_SECTOR_FOR_IDENTIFIER_NAME;  	} -	public <ATT> ATT build(AuthenticationSession authSession, OAAuthParameter oaParam, AuthenticationData authData, +	public <ATT> ATT build(OAAuthParameter oaParam, IAuthData authData,  			IAttributeGenerator<ATT> g) throws AttributeException {  		String bpktype = authData.getBPKType();  		return g.buildStringAttribute(EID_SECTOR_FOR_IDENTIFIER_FRIENDLY_NAME, diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/EIDSignerCertificate.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/EIDSignerCertificate.java index 7cd415ada..df1bc1860 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/EIDSignerCertificate.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/EIDSignerCertificate.java @@ -26,9 +26,8 @@ import iaik.util.logging.Log;  import java.io.IOException; -import at.gv.egovernment.moa.id.auth.data.AuthenticationSession;  import at.gv.egovernment.moa.id.config.auth.OAAuthParameter; -import at.gv.egovernment.moa.id.data.AuthenticationData; +import at.gv.egovernment.moa.id.data.IAuthData;  import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.AttributeException;  import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.UnavailableAttributeException;  import at.gv.egovernment.moa.util.Base64Utils; @@ -39,11 +38,11 @@ public class EIDSignerCertificate implements IPVPAttributeBuilder {  		return EID_SIGNER_CERTIFICATE_NAME;  	} -	public <ATT> ATT build(AuthenticationSession authSession, OAAuthParameter oaParam, AuthenticationData authData, +	public <ATT> ATT build(OAAuthParameter oaParam, IAuthData authData,  			IAttributeGenerator<ATT> g) throws AttributeException {  		try { -			byte[] signerCertificate = authSession.getEncodedSignerCertificate(); +			byte[] signerCertificate = authData.getSignerCertificate();  			if (signerCertificate != null) {  				return g.buildStringAttribute(EID_SIGNER_CERTIFICATE_FRIENDLY_NAME, EID_SIGNER_CERTIFICATE_NAME, Base64Utils  						.encode(signerCertificate)); diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/EIDSourcePIN.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/EIDSourcePIN.java index 5bf65da04..a8b703fc2 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/EIDSourcePIN.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/EIDSourcePIN.java @@ -22,10 +22,10 @@   *******************************************************************************/  package at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes; -import at.gv.egovernment.moa.id.auth.data.AuthenticationSession;  import at.gv.egovernment.moa.id.config.auth.OAAuthParameter; -import at.gv.egovernment.moa.id.data.AuthenticationData; +import at.gv.egovernment.moa.id.data.IAuthData;  import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.AttributeException; +import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.AttributePolicyException;  import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.UnavailableAttributeException;  public class EIDSourcePIN implements IPVPAttributeBuilder  { @@ -34,11 +34,11 @@ public class EIDSourcePIN implements IPVPAttributeBuilder  {  		return EID_SOURCE_PIN_NAME;  	} -	public <ATT> ATT build(AuthenticationSession authSession, OAAuthParameter oaParam, AuthenticationData authData, +	public <ATT> ATT build(OAAuthParameter oaParam, IAuthData authData,  			IAttributeGenerator<ATT> g) throws AttributeException {  		if (oaParam.getBusinessService()) -			throw new UnavailableAttributeException(EID_SOURCE_PIN_NAME); +			throw new AttributePolicyException(EID_SOURCE_PIN_NAME);  		else {  			return g.buildStringAttribute(EID_SOURCE_PIN_FRIENDLY_NAME, EID_SOURCE_PIN_NAME, authData.getIdentificationValue()); diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/EIDSourcePINType.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/EIDSourcePINType.java index ec509f74b..0681419fc 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/EIDSourcePINType.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/EIDSourcePINType.java @@ -22,9 +22,8 @@   *******************************************************************************/  package at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes; -import at.gv.egovernment.moa.id.auth.data.AuthenticationSession;  import at.gv.egovernment.moa.id.config.auth.OAAuthParameter; -import at.gv.egovernment.moa.id.data.AuthenticationData; +import at.gv.egovernment.moa.id.data.IAuthData;  import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.AttributeException;  import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.UnavailableAttributeException; @@ -34,7 +33,7 @@ public class EIDSourcePINType implements IPVPAttributeBuilder {  		return EID_SOURCE_PIN_TYPE_NAME;  	} -	public <ATT> ATT build(AuthenticationSession authSession, OAAuthParameter oaParam, AuthenticationData authData, +	public <ATT> ATT build(OAAuthParameter oaParam, IAuthData authData,  			IAttributeGenerator<ATT> g) throws AttributeException {  		if (oaParam.getBusinessService()) diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/GivenNameAttributeBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/GivenNameAttributeBuilder.java index 7bd5e2db5..fcde1e9bd 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/GivenNameAttributeBuilder.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/GivenNameAttributeBuilder.java @@ -22,9 +22,8 @@   *******************************************************************************/  package at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes; -import at.gv.egovernment.moa.id.auth.data.AuthenticationSession;  import at.gv.egovernment.moa.id.config.auth.OAAuthParameter; -import at.gv.egovernment.moa.id.data.AuthenticationData; +import at.gv.egovernment.moa.id.data.IAuthData;  import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.AttributeException;  public class GivenNameAttributeBuilder implements IPVPAttributeBuilder { @@ -33,9 +32,9 @@ public class GivenNameAttributeBuilder implements IPVPAttributeBuilder {  		return GIVEN_NAME_NAME;  	} -	public <ATT> ATT build(AuthenticationSession authSession, OAAuthParameter oaParam, AuthenticationData authData, +	public <ATT> ATT build(OAAuthParameter oaParam, IAuthData authData,  			IAttributeGenerator<ATT> g) throws AttributeException { -		return g.buildStringAttribute(GIVEN_NAME_FRIENDLY_NAME, GIVEN_NAME_NAME, authSession.getIdentityLink().getGivenName()); +		return g.buildStringAttribute(GIVEN_NAME_FRIENDLY_NAME, GIVEN_NAME_NAME, authData.getGivenName());  	}  	public <ATT> ATT buildEmpty(IAttributeGenerator<ATT> g) { diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/IAttributeBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/IAttributeBuilder.java index 55b16edfb..d66b0ab02 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/IAttributeBuilder.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/IAttributeBuilder.java @@ -22,15 +22,14 @@   *******************************************************************************/  package at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes; -import at.gv.egovernment.moa.id.auth.data.AuthenticationSession;  import at.gv.egovernment.moa.id.config.auth.OAAuthParameter; -import at.gv.egovernment.moa.id.data.AuthenticationData; +import at.gv.egovernment.moa.id.data.IAuthData;  import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.AttributeException;  public interface IAttributeBuilder {  	public String getName(); -	public <ATT> ATT build(final AuthenticationSession authSession, final OAAuthParameter oaParam, final AuthenticationData authData, +	public <ATT> ATT build(final OAAuthParameter oaParam, final IAuthData authData,  			final IAttributeGenerator<ATT> g) throws AttributeException;  	public <ATT> ATT buildEmpty(final IAttributeGenerator<ATT> g); diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/MandateFullMandateAttributeBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/MandateFullMandateAttributeBuilder.java index 4528aa1fe..670398ff6 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/MandateFullMandateAttributeBuilder.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/MandateFullMandateAttributeBuilder.java @@ -29,6 +29,7 @@ import javax.xml.transform.TransformerException;  import at.gv.egovernment.moa.id.auth.data.AuthenticationSession;  import at.gv.egovernment.moa.id.config.auth.OAAuthParameter;  import at.gv.egovernment.moa.id.data.AuthenticationData; +import at.gv.egovernment.moa.id.data.IAuthData;  import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.AttributeException;  import at.gv.egovernment.moa.logging.Logger;  import at.gv.egovernment.moa.util.Base64Utils; @@ -40,13 +41,13 @@ public class MandateFullMandateAttributeBuilder implements IPVPAttributeBuilder  		return MANDATE_FULL_MANDATE_NAME;  	} -	public <ATT> ATT build(AuthenticationSession authSession, OAAuthParameter oaParam, AuthenticationData authData, +	public <ATT> ATT build(OAAuthParameter oaParam, IAuthData authData,  			IAttributeGenerator<ATT> g) throws AttributeException { -		if (authSession.getUseMandate()) { -			if (authSession.getMandate() != null) { +		if (authData.isUseMandate()) { +			if (authData.getMandate() != null) {  				String fullMandate;  				try { -					fullMandate = DOMUtils.serializeNode(authSession +					fullMandate = DOMUtils.serializeNode(authData  							.getMandate());  					return g.buildStringAttribute(MANDATE_FULL_MANDATE_FRIENDLY_NAME,  							MANDATE_FULL_MANDATE_NAME, Base64Utils.encode(fullMandate.getBytes())); diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/MandateLegalPersonFullNameAttributeBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/MandateLegalPersonFullNameAttributeBuilder.java index 9ab1de50d..9230e47fc 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/MandateLegalPersonFullNameAttributeBuilder.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/MandateLegalPersonFullNameAttributeBuilder.java @@ -26,9 +26,8 @@ import org.w3c.dom.Element;  import at.gv.e_government.reference.namespace.mandates._20040701_.Mandate;  import at.gv.e_government.reference.namespace.persondata._20020228_.CorporateBodyType; -import at.gv.egovernment.moa.id.auth.data.AuthenticationSession;  import at.gv.egovernment.moa.id.config.auth.OAAuthParameter; -import at.gv.egovernment.moa.id.data.AuthenticationData; +import at.gv.egovernment.moa.id.data.IAuthData;  import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.AttributeException;  import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.NoMandateDataAttributeException;  import at.gv.egovernment.moa.id.util.MandateBuilder; @@ -40,10 +39,10 @@ public class MandateLegalPersonFullNameAttributeBuilder implements IPVPAttribute  		return MANDATE_LEG_PER_FULL_NAME_NAME;  	} -	public <ATT> ATT build(AuthenticationSession authSession, OAAuthParameter oaParam, AuthenticationData authData, +	public <ATT> ATT build(OAAuthParameter oaParam, IAuthData authData,  			IAttributeGenerator<ATT> g) throws AttributeException { -		if (authSession.getUseMandate()) { -			Element mandate = authSession.getMandate(); +		if (authData.isUseMandate()) { +			Element mandate = authData.getMandate();  			if (mandate == null) {  				throw new NoMandateDataAttributeException();  			} diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/MandateLegalPersonSourcePinAttributeBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/MandateLegalPersonSourcePinAttributeBuilder.java index ca68704c9..04103f28a 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/MandateLegalPersonSourcePinAttributeBuilder.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/MandateLegalPersonSourcePinAttributeBuilder.java @@ -27,9 +27,8 @@ import org.w3c.dom.Element;  import at.gv.e_government.reference.namespace.mandates._20040701_.Mandate;  import at.gv.e_government.reference.namespace.persondata._20020228_.CorporateBodyType;  import at.gv.e_government.reference.namespace.persondata._20020228_.IdentificationType; -import at.gv.egovernment.moa.id.auth.data.AuthenticationSession;  import at.gv.egovernment.moa.id.config.auth.OAAuthParameter; -import at.gv.egovernment.moa.id.data.AuthenticationData; +import at.gv.egovernment.moa.id.data.IAuthData;  import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.AttributeException;  import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.NoMandateDataAttributeException;  import at.gv.egovernment.moa.id.util.MandateBuilder; @@ -41,10 +40,10 @@ public class MandateLegalPersonSourcePinAttributeBuilder  implements IPVPAttribu  		return MANDATE_LEG_PER_SOURCE_PIN_NAME;  	} -	public <ATT> ATT build(AuthenticationSession authSession, OAAuthParameter oaParam, AuthenticationData authData, +	public <ATT> ATT build(OAAuthParameter oaParam, IAuthData authData,  			IAttributeGenerator<ATT> g) throws AttributeException { -		if(authSession.getUseMandate()) { -			Element mandate = authSession.getMandate(); +		if(authData.isUseMandate()) { +			Element mandate = authData.getMandate();  			if(mandate == null) {  				throw new NoMandateDataAttributeException();  			} diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/MandateLegalPersonSourcePinTypeAttributeBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/MandateLegalPersonSourcePinTypeAttributeBuilder.java index 5656d1769..02e1d7ce0 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/MandateLegalPersonSourcePinTypeAttributeBuilder.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/MandateLegalPersonSourcePinTypeAttributeBuilder.java @@ -27,9 +27,8 @@ import org.w3c.dom.Element;  import at.gv.e_government.reference.namespace.mandates._20040701_.Mandate;  import at.gv.e_government.reference.namespace.persondata._20020228_.CorporateBodyType;  import at.gv.e_government.reference.namespace.persondata._20020228_.IdentificationType; -import at.gv.egovernment.moa.id.auth.data.AuthenticationSession;  import at.gv.egovernment.moa.id.config.auth.OAAuthParameter; -import at.gv.egovernment.moa.id.data.AuthenticationData; +import at.gv.egovernment.moa.id.data.IAuthData;  import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.AttributeException;  import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.NoMandateDataAttributeException;  import at.gv.egovernment.moa.id.util.MandateBuilder; @@ -41,10 +40,10 @@ public class MandateLegalPersonSourcePinTypeAttributeBuilder implements IPVPAttr  		return MANDATE_LEG_PER_SOURCE_PIN_TYPE_NAME;  	} -	public <ATT> ATT build(AuthenticationSession authSession, OAAuthParameter oaParam, AuthenticationData authData, +	public <ATT> ATT build(OAAuthParameter oaParam, IAuthData authData,  			IAttributeGenerator<ATT> g) throws AttributeException { -		if (authSession.getUseMandate()) { -			Element mandate = authSession.getMandate(); +		if (authData.isUseMandate()) { +			Element mandate = authData.getMandate();  			if (mandate == null) {  				throw new NoMandateDataAttributeException();  			} diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/MandateNaturalPersonBPKAttributeBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/MandateNaturalPersonBPKAttributeBuilder.java index 039fc8af8..38456302c 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/MandateNaturalPersonBPKAttributeBuilder.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/MandateNaturalPersonBPKAttributeBuilder.java @@ -28,10 +28,9 @@ import at.gv.e_government.reference.namespace.mandates._20040701_.Mandate;  import at.gv.e_government.reference.namespace.persondata._20020228_.IdentificationType;  import at.gv.e_government.reference.namespace.persondata._20020228_.PhysicalPersonType;  import at.gv.egovernment.moa.id.auth.builder.BPKBuilder; -import at.gv.egovernment.moa.id.auth.data.AuthenticationSession;  import at.gv.egovernment.moa.id.auth.exception.BuildException;  import at.gv.egovernment.moa.id.config.auth.OAAuthParameter; -import at.gv.egovernment.moa.id.data.AuthenticationData; +import at.gv.egovernment.moa.id.data.IAuthData;  import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.AttributeException;  import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.NoMandateDataAttributeException;  import at.gv.egovernment.moa.id.util.MandateBuilder; @@ -44,10 +43,10 @@ public class MandateNaturalPersonBPKAttributeBuilder implements IPVPAttributeBui  		return MANDATE_NAT_PER_BPK_NAME;  	} -	public <ATT> ATT build(AuthenticationSession authSession, OAAuthParameter oaParam, AuthenticationData authData, +	public <ATT> ATT build(OAAuthParameter oaParam, IAuthData authData,  			IAttributeGenerator<ATT> g) throws AttributeException { -		if (authSession.getUseMandate()) { -			Element mandate = authSession.getMandate(); +		if (authData.isUseMandate()) { +			Element mandate = authData.getMandate();  			if (mandate == null) {  				throw new NoMandateDataAttributeException();  			} @@ -62,11 +61,6 @@ public class MandateNaturalPersonBPKAttributeBuilder implements IPVPAttributeBui  			}  			IdentificationType id = null;  			id = physicalPerson.getIdentification().get(0); -			// if(authSession.getBusinessService()) { -			// id = MandateBuilder.getWBPKIdentification(physicalPerson); -			// } else { -			// id = MandateBuilder.getBPKIdentification(physicalPerson); -			// }  			if (id == null) {  				Logger.error("Failed to generate IdentificationType");  				throw new NoMandateDataAttributeException(); @@ -76,7 +70,7 @@ public class MandateNaturalPersonBPKAttributeBuilder implements IPVPAttributeBui  			try {  				if (id.getType().equals(Constants.URN_PREFIX_BASEID)) { -					if (authSession.getBusinessService()) { +					if (oaParam.getBusinessService()) {  						bpk = new BPKBuilder().buildWBPK(id.getValue().getValue(), oaParam.getIdentityLinkDomainIdentifier());  					} diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/MandateNaturalPersonBirthDateAttributeBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/MandateNaturalPersonBirthDateAttributeBuilder.java index f5dc277bd..4fcfd4650 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/MandateNaturalPersonBirthDateAttributeBuilder.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/MandateNaturalPersonBirthDateAttributeBuilder.java @@ -31,9 +31,8 @@ import org.w3c.dom.Element;  import at.gv.e_government.reference.namespace.mandates._20040701_.Mandate;  import at.gv.e_government.reference.namespace.persondata._20020228_.PhysicalPersonType; -import at.gv.egovernment.moa.id.auth.data.AuthenticationSession;  import at.gv.egovernment.moa.id.config.auth.OAAuthParameter; -import at.gv.egovernment.moa.id.data.AuthenticationData; +import at.gv.egovernment.moa.id.data.IAuthData;  import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.AttributeException;  import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.InvalidDateFormatAttributeException;  import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.NoMandateDataAttributeException; @@ -46,10 +45,10 @@ public class MandateNaturalPersonBirthDateAttributeBuilder implements IPVPAttrib  		return MANDATE_NAT_PER_BIRTHDATE_NAME;  	} -	public <ATT> ATT build(AuthenticationSession authSession, OAAuthParameter oaParam, AuthenticationData authData, +	public <ATT> ATT build(OAAuthParameter oaParam, IAuthData authData,  			IAttributeGenerator<ATT> g) throws AttributeException { -		if (authSession.getUseMandate()) { -			Element mandate = authSession.getMandate(); +		if (authData.isUseMandate()) { +			Element mandate = authData.getMandate();  			if (mandate == null) {  				throw new NoMandateDataAttributeException();  			} diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/MandateNaturalPersonFamilyNameAttributeBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/MandateNaturalPersonFamilyNameAttributeBuilder.java index 2a7bafdbc..3452d7ed0 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/MandateNaturalPersonFamilyNameAttributeBuilder.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/MandateNaturalPersonFamilyNameAttributeBuilder.java @@ -29,9 +29,8 @@ import org.w3c.dom.Element;  import at.gv.e_government.reference.namespace.mandates._20040701_.Mandate;  import at.gv.e_government.reference.namespace.persondata._20020228_.PersonNameType.FamilyName;  import at.gv.e_government.reference.namespace.persondata._20020228_.PhysicalPersonType; -import at.gv.egovernment.moa.id.auth.data.AuthenticationSession;  import at.gv.egovernment.moa.id.config.auth.OAAuthParameter; -import at.gv.egovernment.moa.id.data.AuthenticationData; +import at.gv.egovernment.moa.id.data.IAuthData;  import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.AttributeException;  import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.NoMandateDataAttributeException;  import at.gv.egovernment.moa.id.util.MandateBuilder; @@ -43,10 +42,10 @@ public class MandateNaturalPersonFamilyNameAttributeBuilder  implements IPVPAttr  		return MANDATE_NAT_PER_FAMILY_NAME_NAME;  	} -	public <ATT> ATT build(AuthenticationSession authSession, OAAuthParameter oaParam, AuthenticationData authData, +	public <ATT> ATT build(OAAuthParameter oaParam, IAuthData authData,  			IAttributeGenerator<ATT> g) throws AttributeException { -		if(authSession.getUseMandate()) { -			Element mandate = authSession.getMandate(); +		if(authData.isUseMandate()) { +			Element mandate = authData.getMandate();  			if(mandate == null) {  				throw new NoMandateDataAttributeException();  			} diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/MandateNaturalPersonGivenNameAttributeBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/MandateNaturalPersonGivenNameAttributeBuilder.java index 4707c385a..59d5c65fe 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/MandateNaturalPersonGivenNameAttributeBuilder.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/MandateNaturalPersonGivenNameAttributeBuilder.java @@ -28,9 +28,8 @@ import org.w3c.dom.Element;  import at.gv.e_government.reference.namespace.mandates._20040701_.Mandate;  import at.gv.e_government.reference.namespace.persondata._20020228_.PhysicalPersonType; -import at.gv.egovernment.moa.id.auth.data.AuthenticationSession;  import at.gv.egovernment.moa.id.config.auth.OAAuthParameter; -import at.gv.egovernment.moa.id.data.AuthenticationData; +import at.gv.egovernment.moa.id.data.IAuthData;  import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.AttributeException;  import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.NoMandateDataAttributeException;  import at.gv.egovernment.moa.id.util.MandateBuilder; @@ -42,10 +41,10 @@ public class MandateNaturalPersonGivenNameAttributeBuilder implements IPVPAttrib  		return MANDATE_NAT_PER_GIVEN_NAME_NAME;  	} -	public <ATT> ATT build(AuthenticationSession authSession, OAAuthParameter oaParam, AuthenticationData authData, +	public <ATT> ATT build(OAAuthParameter oaParam, IAuthData authData,  			IAttributeGenerator<ATT> g) throws AttributeException { -		if (authSession.getUseMandate()) { -			Element mandate = authSession.getMandate(); +		if (authData.isUseMandate()) { +			Element mandate = authData.getMandate();  			if (mandate == null) {  				throw new NoMandateDataAttributeException();  			} diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/MandateNaturalPersonSourcePinAttributeBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/MandateNaturalPersonSourcePinAttributeBuilder.java index 7fbbce9bc..444312759 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/MandateNaturalPersonSourcePinAttributeBuilder.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/MandateNaturalPersonSourcePinAttributeBuilder.java @@ -30,7 +30,9 @@ import at.gv.e_government.reference.namespace.persondata._20020228_.PhysicalPers  import at.gv.egovernment.moa.id.auth.data.AuthenticationSession;  import at.gv.egovernment.moa.id.config.auth.OAAuthParameter;  import at.gv.egovernment.moa.id.data.AuthenticationData; +import at.gv.egovernment.moa.id.data.IAuthData;  import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.AttributeException; +import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.AttributePolicyException;  import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.NoMandateDataAttributeException;  import at.gv.egovernment.moa.id.util.MandateBuilder;  import at.gv.egovernment.moa.logging.Logger; @@ -41,10 +43,10 @@ public class MandateNaturalPersonSourcePinAttributeBuilder  implements IPVPAttri  		return MANDATE_NAT_PER_SOURCE_PIN_NAME;  	} -	public <ATT> ATT build(AuthenticationSession authSession, OAAuthParameter oaParam, AuthenticationData authData, +	public <ATT> ATT build(OAAuthParameter oaParam, IAuthData authData,  			IAttributeGenerator<ATT> g) throws AttributeException { -		if(authSession.getUseMandate()) { -			Element mandate = authSession.getMandate(); +		if(authData.isUseMandate()) { +			Element mandate = authData.getMandate();  			if(mandate == null) {  				throw new NoMandateDataAttributeException();  			} @@ -61,12 +63,10 @@ public class MandateNaturalPersonSourcePinAttributeBuilder  implements IPVPAttri  			IdentificationType id = null;  			id = physicalPerson.getIdentification().get(0); -			if(authSession.getBusinessService()) { -				id = MandateBuilder.getWBPKIdentification(physicalPerson); -				 -//			} else { -//				id = MandateBuilder.getBPKIdentification(physicalPerson); +			if(oaParam.getBusinessService()) { +				throw new AttributePolicyException(this.getName());  			} +			  			if(id == null) {  				Logger.error("Failed to generate IdentificationType");  				throw new NoMandateDataAttributeException(); diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/MandateNaturalPersonSourcePinTypeAttributeBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/MandateNaturalPersonSourcePinTypeAttributeBuilder.java index 538cee048..6adc9b532 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/MandateNaturalPersonSourcePinTypeAttributeBuilder.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/MandateNaturalPersonSourcePinTypeAttributeBuilder.java @@ -27,9 +27,8 @@ import org.w3c.dom.Element;  import at.gv.e_government.reference.namespace.mandates._20040701_.Mandate;  import at.gv.e_government.reference.namespace.persondata._20020228_.IdentificationType;  import at.gv.e_government.reference.namespace.persondata._20020228_.PhysicalPersonType; -import at.gv.egovernment.moa.id.auth.data.AuthenticationSession;  import at.gv.egovernment.moa.id.config.auth.OAAuthParameter; -import at.gv.egovernment.moa.id.data.AuthenticationData; +import at.gv.egovernment.moa.id.data.IAuthData;  import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.AttributeException;  import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.NoMandateDataAttributeException;  import at.gv.egovernment.moa.id.util.MandateBuilder; @@ -41,10 +40,10 @@ public class MandateNaturalPersonSourcePinTypeAttributeBuilder implements IPVPAt  		return MANDATE_NAT_PER_SOURCE_PIN_TYPE_NAME;  	} -	public <ATT> ATT build(AuthenticationSession authSession, OAAuthParameter oaParam, AuthenticationData authData, +	public <ATT> ATT build(OAAuthParameter oaParam, IAuthData authData,  			IAttributeGenerator<ATT> g) throws AttributeException { -		if(authSession.getUseMandate()) { -			Element mandate = authSession.getMandate(); +		if(authData.isUseMandate()) { +			Element mandate = authData.getMandate();  			if(mandate == null) {  				throw new NoMandateDataAttributeException();  			} @@ -60,11 +59,6 @@ public class MandateNaturalPersonSourcePinTypeAttributeBuilder implements IPVPAt  			}  			IdentificationType id = null;  			id = physicalPerson.getIdentification().get(0); -			/*if(authSession.getBusinessService()) { -				id = MandateBuilder.getWBPKIdentification(physicalPerson); -			} else { -				id = MandateBuilder.getBPKIdentification(physicalPerson); -			}*/  			if(id == null) {  				Logger.error("Failed to generate IdentificationType");  				throw new NoMandateDataAttributeException(); diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/MandateProfRepDescAttributeBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/MandateProfRepDescAttributeBuilder.java index 814211b24..4c981cb24 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/MandateProfRepDescAttributeBuilder.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/MandateProfRepDescAttributeBuilder.java @@ -22,14 +22,12 @@   *******************************************************************************/  package at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes; -import org.w3c.dom.Element; - -import at.gv.egovernment.moa.id.auth.data.AuthenticationSession;  import at.gv.egovernment.moa.id.config.auth.OAAuthParameter; -import at.gv.egovernment.moa.id.data.AuthenticationData; +import at.gv.egovernment.moa.id.data.IAuthData;  import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.AttributeException;  import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.NoMandateDataAttributeException; -import at.gv.egovernment.moa.id.protocols.pvp2x.utils.AttributeExtractor; +import at.gv.egovernment.moa.id.util.client.mis.simple.MISMandate; +import at.gv.egovernment.moa.util.MiscUtil;  public class MandateProfRepDescAttributeBuilder implements IPVPAttributeBuilder { @@ -37,24 +35,24 @@ public class MandateProfRepDescAttributeBuilder implements IPVPAttributeBuilder  		return MANDATE_PROF_REP_DESC_NAME;  	} -	public <ATT> ATT build(AuthenticationSession authSession, OAAuthParameter oaParam, AuthenticationData authData, +	public <ATT> ATT build(OAAuthParameter oaParam, IAuthData authData,  			IAttributeGenerator<ATT> g) throws AttributeException { -		if(authSession.getUseMandate()) { -			Element mandate = authSession.getMandate(); +		if(authData.isUseMandate()) {			 +			MISMandate mandate = authData.getMISMandate(); + +			  			if(mandate == null) {  				throw new NoMandateDataAttributeException();  			} -			String text = AttributeExtractor.extractSAMLAttributeOA( -					EXT_SAML_MANDATE_OIDTEXTUALDESCRIPTION,   -					authSession); +			String text = mandate.getTextualDescriptionOfOID(); -			if(text == null) { +			if(MiscUtil.isEmpty(text)) {  				return null; -			} -			 -			return g.buildStringAttribute(MANDATE_PROF_REP_DESC_FRIENDLY_NAME,  -					MANDATE_PROF_REP_DESC_NAME, text); +				 +			} else				 +				return g.buildStringAttribute(MANDATE_PROF_REP_DESC_FRIENDLY_NAME,  +						MANDATE_PROF_REP_DESC_NAME, text);  		}  		return null; diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/MandateProfRepOIDAttributeBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/MandateProfRepOIDAttributeBuilder.java index b040072a6..1a3311c8a 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/MandateProfRepOIDAttributeBuilder.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/MandateProfRepOIDAttributeBuilder.java @@ -22,14 +22,12 @@   *******************************************************************************/  package at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes; -import org.w3c.dom.Element; - -import at.gv.egovernment.moa.id.auth.data.AuthenticationSession;  import at.gv.egovernment.moa.id.config.auth.OAAuthParameter; -import at.gv.egovernment.moa.id.data.AuthenticationData; +import at.gv.egovernment.moa.id.data.IAuthData;  import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.AttributeException;  import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.NoMandateDataAttributeException; -import at.gv.egovernment.moa.id.protocols.pvp2x.utils.AttributeExtractor; +import at.gv.egovernment.moa.id.util.client.mis.simple.MISMandate; +import at.gv.egovernment.moa.util.MiscUtil;  public class MandateProfRepOIDAttributeBuilder implements IPVPAttributeBuilder { @@ -37,21 +35,21 @@ public class MandateProfRepOIDAttributeBuilder implements IPVPAttributeBuilder {  		return MANDATE_PROF_REP_OID_NAME;  	} -	public <ATT> ATT build(AuthenticationSession authSession, OAAuthParameter oaParam, AuthenticationData authData, +	public <ATT> ATT build(OAAuthParameter oaParam, IAuthData authData,  			IAttributeGenerator<ATT> g) throws AttributeException { -		if (authSession.getUseMandate()) { -			Element mandate = authSession.getMandate(); +		if (authData.isUseMandate()) { +			 +			MISMandate mandate = authData.getMISMandate();  			if (mandate == null) {  				throw new NoMandateDataAttributeException();  			} -			String oid = AttributeExtractor.extractSAMLAttributeOA(EXT_SAML_MANDATE_OID, authSession); -			 -			if (oid == null) { -				return null; -			} -			 -			return g.buildStringAttribute(MANDATE_PROF_REP_OID_FRIENDLY_NAME, MANDATE_PROF_REP_OID_NAME, oid); +			String oid = mandate.getProfRep(); +						 +			if(MiscUtil.isEmpty(oid))  +				return null;				 +			else			 +				return g.buildStringAttribute(MANDATE_PROF_REP_OID_FRIENDLY_NAME, MANDATE_PROF_REP_OID_NAME, oid);  		}  		return null; diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/MandateReferenceValueAttributeBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/MandateReferenceValueAttributeBuilder.java index 7e7b57e4f..7b41e9bb6 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/MandateReferenceValueAttributeBuilder.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/MandateReferenceValueAttributeBuilder.java @@ -22,9 +22,8 @@   *******************************************************************************/  package at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes; -import at.gv.egovernment.moa.id.auth.data.AuthenticationSession;  import at.gv.egovernment.moa.id.config.auth.OAAuthParameter; -import at.gv.egovernment.moa.id.data.AuthenticationData; +import at.gv.egovernment.moa.id.data.IAuthData;  import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.AttributeException;  public class MandateReferenceValueAttributeBuilder implements IPVPAttributeBuilder { @@ -33,12 +32,12 @@ public class MandateReferenceValueAttributeBuilder implements IPVPAttributeBuild  		return MANDATE_REFERENCE_VALUE_NAME;  	} -	public <ATT> ATT build(AuthenticationSession authSession, OAAuthParameter oaParam, AuthenticationData authData, +	public <ATT> ATT build(OAAuthParameter oaParam, IAuthData authData,  			IAttributeGenerator<ATT> g) throws AttributeException { -		if (authSession.getUseMandate()) { +		if (authData.isUseMandate()) {  			return g.buildStringAttribute(MANDATE_REFERENCE_VALUE_FRIENDLY_NAME, MANDATE_REFERENCE_VALUE_NAME, -					authSession.getMandateReferenceValue()); +					authData.getMandateReferenceValue());  		}  		return null; diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/MandateTypeAttributeBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/MandateTypeAttributeBuilder.java index 4842141fc..63165f52a 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/MandateTypeAttributeBuilder.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/MandateTypeAttributeBuilder.java @@ -25,9 +25,8 @@ package at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes;  import org.w3c.dom.Element;  import at.gv.e_government.reference.namespace.mandates._20040701_.Mandate; -import at.gv.egovernment.moa.id.auth.data.AuthenticationSession;  import at.gv.egovernment.moa.id.config.auth.OAAuthParameter; -import at.gv.egovernment.moa.id.data.AuthenticationData; +import at.gv.egovernment.moa.id.data.IAuthData;  import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.AttributeException;  import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.NoMandateDataAttributeException;  import at.gv.egovernment.moa.id.util.MandateBuilder; @@ -38,10 +37,10 @@ public class MandateTypeAttributeBuilder implements IPVPAttributeBuilder {  		return MANDATE_TYPE_NAME;  	} -	public <ATT> ATT build(AuthenticationSession authSession, OAAuthParameter oaParam, AuthenticationData authData, +	public <ATT> ATT build(OAAuthParameter oaParam, IAuthData authData,  			IAttributeGenerator<ATT> g) throws AttributeException { -		if (authSession.getUseMandate()) { -			Element mandate = authSession.getMandate(); +		if (authData.isUseMandate()) { +			Element mandate = authData.getMandate();  			if (mandate == null) {  				throw new NoMandateDataAttributeException();  			} diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/PVPVersionAttributeBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/PVPVersionAttributeBuilder.java index e8c410555..674efa0d1 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/PVPVersionAttributeBuilder.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/PVPVersionAttributeBuilder.java @@ -22,9 +22,8 @@   *******************************************************************************/  package at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes; -import at.gv.egovernment.moa.id.auth.data.AuthenticationSession;  import at.gv.egovernment.moa.id.config.auth.OAAuthParameter; -import at.gv.egovernment.moa.id.data.AuthenticationData; +import at.gv.egovernment.moa.id.data.IAuthData;  import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.AttributeException;  public class PVPVersionAttributeBuilder implements IPVPAttributeBuilder { @@ -33,7 +32,7 @@ public class PVPVersionAttributeBuilder implements IPVPAttributeBuilder {  		return PVP_VERSION_NAME;  	} -	public <ATT> ATT build(AuthenticationSession authSession, OAAuthParameter oaParam, AuthenticationData authData, +	public <ATT> ATT build(OAAuthParameter oaParam, IAuthData authData,  			IAttributeGenerator<ATT> g) throws AttributeException {  		return g.buildStringAttribute(PVP_VERSION_FRIENDLY_NAME, PVP_VERSION_NAME, PVP_VERSION_2_1);  	} diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/PrincipalNameAttributeBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/PrincipalNameAttributeBuilder.java index c687b2bff..11fdeb232 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/PrincipalNameAttributeBuilder.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/PrincipalNameAttributeBuilder.java @@ -22,9 +22,8 @@   *******************************************************************************/  package at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes; -import at.gv.egovernment.moa.id.auth.data.AuthenticationSession;  import at.gv.egovernment.moa.id.config.auth.OAAuthParameter; -import at.gv.egovernment.moa.id.data.AuthenticationData; +import at.gv.egovernment.moa.id.data.IAuthData;  import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.AttributeException;  public class PrincipalNameAttributeBuilder implements IPVPAttributeBuilder { @@ -33,9 +32,9 @@ public class PrincipalNameAttributeBuilder implements IPVPAttributeBuilder {  		return PRINCIPAL_NAME_NAME;  	} -	public <ATT> ATT build(AuthenticationSession authSession, OAAuthParameter oaParam, AuthenticationData authData, +	public <ATT> ATT build(OAAuthParameter oaParam, IAuthData authData,  			IAttributeGenerator<ATT> g) throws AttributeException { -		return g.buildStringAttribute(PRINCIPAL_NAME_FRIENDLY_NAME, PRINCIPAL_NAME_NAME, authSession.getIdentityLink().getFamilyName()); +		return g.buildStringAttribute(PRINCIPAL_NAME_FRIENDLY_NAME, PRINCIPAL_NAME_NAME, authData.getFamilyName());  	}  	public <ATT> ATT buildEmpty(IAttributeGenerator<ATT> g) { diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/STORKAdoptedFamilyNameAttributBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/STORKAdoptedFamilyNameAttributBuilder.java index b81b30e5b..aff0fc0ef 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/STORKAdoptedFamilyNameAttributBuilder.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/STORKAdoptedFamilyNameAttributBuilder.java @@ -22,10 +22,9 @@   *******************************************************************************/  package at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes; -import at.gv.egovernment.moa.id.auth.data.AuthenticationSession;  import at.gv.egovernment.moa.id.auth.stork.STORKConstants;  import at.gv.egovernment.moa.id.config.auth.OAAuthParameter; -import at.gv.egovernment.moa.id.data.AuthenticationData; +import at.gv.egovernment.moa.id.data.IAuthData;  import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.AttributeException;  public class STORKAdoptedFamilyNameAttributBuilder implements IPVPAttributeBuilder  { @@ -34,11 +33,11 @@ public class STORKAdoptedFamilyNameAttributBuilder implements IPVPAttributeBuild  		return STORKConstants.ADOPTEDFAMILYNAME_NAME;  	} -	public <ATT> ATT build(AuthenticationSession authSession, OAAuthParameter oaParam, AuthenticationData authData, +	public <ATT> ATT build(OAAuthParameter oaParam, IAuthData authData,  			IAttributeGenerator<ATT> g) throws AttributeException {  		return g.buildStringAttribute(STORKConstants.ADOPTEDFAMILYNAME_FRIENDLYNAME, STORKConstants.ADOPTEDFAMILYNAME_NAME,  -				STORKAttributHelper.getAttribut(STORKConstants.ADOPTEDFAMILYNAME_NAME, authSession));  +				STORKAttributHelper.getAttribut(STORKConstants.ADOPTEDFAMILYNAME_NAME, authData));   	} diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/STORKAgeAttributBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/STORKAgeAttributBuilder.java index 98fe853ff..fb7c60a95 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/STORKAgeAttributBuilder.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/STORKAgeAttributBuilder.java @@ -22,10 +22,9 @@   *******************************************************************************/  package at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes; -import at.gv.egovernment.moa.id.auth.data.AuthenticationSession;  import at.gv.egovernment.moa.id.auth.stork.STORKConstants;  import at.gv.egovernment.moa.id.config.auth.OAAuthParameter; -import at.gv.egovernment.moa.id.data.AuthenticationData; +import at.gv.egovernment.moa.id.data.IAuthData;  import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.AttributeException;  public class STORKAgeAttributBuilder implements IPVPAttributeBuilder  { @@ -34,11 +33,11 @@ public class STORKAgeAttributBuilder implements IPVPAttributeBuilder  {  		return STORKConstants.AGE_NAME;  	} -	public <ATT> ATT build(AuthenticationSession authSession, OAAuthParameter oaParam, AuthenticationData authData, +	public <ATT> ATT build(OAAuthParameter oaParam, IAuthData authData,  			IAttributeGenerator<ATT> g) throws AttributeException {  		return g.buildStringAttribute(STORKConstants.AGE_FRIENDLYNAME, STORKConstants.AGE_NAME,  -				STORKAttributHelper.getAttribut(STORKConstants.AGE_NAME, authSession));  +				STORKAttributHelper.getAttribut(STORKConstants.AGE_NAME, authData));   	} diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/STORKAttributHelper.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/STORKAttributHelper.java index 6d2b031a5..387e49d25 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/STORKAttributHelper.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/STORKAttributHelper.java @@ -26,6 +26,7 @@ import eu.stork.peps.auth.commons.IPersonalAttributeList;  import eu.stork.peps.auth.commons.PersonalAttribute;  import at.gv.egovernment.moa.id.auth.data.AuthenticationSession;  import at.gv.egovernment.moa.id.auth.stork.STORKConstants; +import at.gv.egovernment.moa.id.data.IAuthData;  import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.UnavailableAttributeException;  import at.gv.egovernment.moa.logging.Logger; @@ -36,7 +37,7 @@ import at.gv.egovernment.moa.logging.Logger;  public class STORKAttributHelper {  	public static String getAttribut(String attributName, -			AuthenticationSession authSession) throws UnavailableAttributeException { +			IAuthData authSession) throws UnavailableAttributeException {  		if (!authSession.isForeigner()) {  			throw new UnavailableAttributeException(attributName); diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/STORKCanonicalResidenceAddressAttributBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/STORKCanonicalResidenceAddressAttributBuilder.java index c3d6f070d..ddfa63b51 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/STORKCanonicalResidenceAddressAttributBuilder.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/STORKCanonicalResidenceAddressAttributBuilder.java @@ -22,10 +22,9 @@   *******************************************************************************/  package at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes; -import at.gv.egovernment.moa.id.auth.data.AuthenticationSession;  import at.gv.egovernment.moa.id.auth.stork.STORKConstants;  import at.gv.egovernment.moa.id.config.auth.OAAuthParameter; -import at.gv.egovernment.moa.id.data.AuthenticationData; +import at.gv.egovernment.moa.id.data.IAuthData;  import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.AttributeException;  public class STORKCanonicalResidenceAddressAttributBuilder implements IPVPAttributeBuilder  { @@ -34,11 +33,11 @@ public class STORKCanonicalResidenceAddressAttributBuilder implements IPVPAttrib  		return STORKConstants.CANONICALRESIDENCEADDRESS_NAME;  	} -	public <ATT> ATT build(AuthenticationSession authSession, OAAuthParameter oaParam, AuthenticationData authData, +	public <ATT> ATT build(OAAuthParameter oaParam, IAuthData authData,  			IAttributeGenerator<ATT> g) throws AttributeException {  		return g.buildStringAttribute(STORKConstants.CANONICALRESIDENCEADDRESS_FRIENDLYNAME, STORKConstants.CANONICALRESIDENCEADDRESS_NAME,  -				STORKAttributHelper.getAttribut(STORKConstants.CANONICALRESIDENCEADDRESS_NAME, authSession));  +				STORKAttributHelper.getAttribut(STORKConstants.CANONICALRESIDENCEADDRESS_NAME, authData));   	} diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/STORKCountryCodeOfBirthAttributBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/STORKCountryCodeOfBirthAttributBuilder.java index c873a86ea..08cd65a6d 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/STORKCountryCodeOfBirthAttributBuilder.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/STORKCountryCodeOfBirthAttributBuilder.java @@ -22,10 +22,9 @@   *******************************************************************************/  package at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes; -import at.gv.egovernment.moa.id.auth.data.AuthenticationSession;  import at.gv.egovernment.moa.id.auth.stork.STORKConstants;  import at.gv.egovernment.moa.id.config.auth.OAAuthParameter; -import at.gv.egovernment.moa.id.data.AuthenticationData; +import at.gv.egovernment.moa.id.data.IAuthData;  import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.AttributeException;  public class STORKCountryCodeOfBirthAttributBuilder implements IPVPAttributeBuilder  { @@ -34,11 +33,11 @@ public class STORKCountryCodeOfBirthAttributBuilder implements IPVPAttributeBuil  		return STORKConstants.CONTRYCODEOFBIRTH_NAME;  	} -	public <ATT> ATT build(AuthenticationSession authSession, OAAuthParameter oaParam, AuthenticationData authData, +	public <ATT> ATT build(OAAuthParameter oaParam, IAuthData authData,  			IAttributeGenerator<ATT> g) throws AttributeException {  		return g.buildStringAttribute(STORKConstants.CONTRYCODEOFBIRTH_FRIENDLYNAME, STORKConstants.CONTRYCODEOFBIRTH_NAME,  -				STORKAttributHelper.getAttribut(STORKConstants.CONTRYCODEOFBIRTH_NAME, authSession));  +				STORKAttributHelper.getAttribut(STORKConstants.CONTRYCODEOFBIRTH_NAME, authData));   	} diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/STORKFiscalNumberAttributBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/STORKFiscalNumberAttributBuilder.java index 394bffa31..f3a77708b 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/STORKFiscalNumberAttributBuilder.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/STORKFiscalNumberAttributBuilder.java @@ -22,10 +22,9 @@   *******************************************************************************/  package at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes; -import at.gv.egovernment.moa.id.auth.data.AuthenticationSession;  import at.gv.egovernment.moa.id.auth.stork.STORKConstants;  import at.gv.egovernment.moa.id.config.auth.OAAuthParameter; -import at.gv.egovernment.moa.id.data.AuthenticationData; +import at.gv.egovernment.moa.id.data.IAuthData;  import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.AttributeException;  public class STORKFiscalNumberAttributBuilder implements IPVPAttributeBuilder  { @@ -34,11 +33,11 @@ public class STORKFiscalNumberAttributBuilder implements IPVPAttributeBuilder  {  		return STORKConstants.FISCALNUMBER_NAME;  	} -	public <ATT> ATT build(AuthenticationSession authSession, OAAuthParameter oaParam, AuthenticationData authData, +	public <ATT> ATT build(OAAuthParameter oaParam, IAuthData authData,  			IAttributeGenerator<ATT> g) throws AttributeException {  		return g.buildStringAttribute(STORKConstants.FISCALNUMBER_FRIENDLYNAME, STORKConstants.FISCALNUMBER_NAME,  -				STORKAttributHelper.getAttribut(STORKConstants.FISCALNUMBER_NAME, authSession));  +				STORKAttributHelper.getAttribut(STORKConstants.FISCALNUMBER_NAME, authData));   	} diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/STORKGenderAttributBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/STORKGenderAttributBuilder.java index 9209e73c4..6f62dbf89 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/STORKGenderAttributBuilder.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/STORKGenderAttributBuilder.java @@ -22,10 +22,9 @@   *******************************************************************************/  package at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes; -import at.gv.egovernment.moa.id.auth.data.AuthenticationSession;  import at.gv.egovernment.moa.id.auth.stork.STORKConstants;  import at.gv.egovernment.moa.id.config.auth.OAAuthParameter; -import at.gv.egovernment.moa.id.data.AuthenticationData; +import at.gv.egovernment.moa.id.data.IAuthData;  import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.AttributeException;  public class STORKGenderAttributBuilder implements IPVPAttributeBuilder  { @@ -34,11 +33,11 @@ public class STORKGenderAttributBuilder implements IPVPAttributeBuilder  {  		return STORKConstants.GENDER_NAME;  	} -	public <ATT> ATT build(AuthenticationSession authSession, OAAuthParameter oaParam, AuthenticationData authData, +	public <ATT> ATT build(OAAuthParameter oaParam, IAuthData authData,  			IAttributeGenerator<ATT> g) throws AttributeException {  		return g.buildStringAttribute(STORKConstants.GENDER_FRIENDLYNAME, STORKConstants.GENDER_NAME,  -				STORKAttributHelper.getAttribut(STORKConstants.GENDER_NAME, authSession));  +				STORKAttributHelper.getAttribut(STORKConstants.GENDER_NAME, authData));   	} diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/STORKInhertedFamilyNameAttributBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/STORKInhertedFamilyNameAttributBuilder.java index 59f345bd3..65bf9ff6e 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/STORKInhertedFamilyNameAttributBuilder.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/STORKInhertedFamilyNameAttributBuilder.java @@ -22,10 +22,9 @@   *******************************************************************************/  package at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes; -import at.gv.egovernment.moa.id.auth.data.AuthenticationSession;  import at.gv.egovernment.moa.id.auth.stork.STORKConstants;  import at.gv.egovernment.moa.id.config.auth.OAAuthParameter; -import at.gv.egovernment.moa.id.data.AuthenticationData; +import at.gv.egovernment.moa.id.data.IAuthData;  import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.AttributeException;  public class STORKInhertedFamilyNameAttributBuilder implements IPVPAttributeBuilder  { @@ -34,11 +33,11 @@ public class STORKInhertedFamilyNameAttributBuilder implements IPVPAttributeBuil  		return STORKConstants.INHERITEDFAMILYNAME_NAME;  	} -	public <ATT> ATT build(AuthenticationSession authSession, OAAuthParameter oaParam, AuthenticationData authData, +	public <ATT> ATT build(OAAuthParameter oaParam, IAuthData authData,  			IAttributeGenerator<ATT> g) throws AttributeException {  		return g.buildStringAttribute(STORKConstants.INHERITEDFAMILYNAME_FRIENDLYNAME, STORKConstants.INHERITEDFAMILYNAME_NAME,  -				STORKAttributHelper.getAttribut(STORKConstants.INHERITEDFAMILYNAME_NAME, authSession));  +				STORKAttributHelper.getAttribut(STORKConstants.INHERITEDFAMILYNAME_NAME, authData));   	} diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/STORKIsAgeOverAttributBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/STORKIsAgeOverAttributBuilder.java index d99833f13..a7a77d7b4 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/STORKIsAgeOverAttributBuilder.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/STORKIsAgeOverAttributBuilder.java @@ -22,10 +22,9 @@   *******************************************************************************/  package at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes; -import at.gv.egovernment.moa.id.auth.data.AuthenticationSession;  import at.gv.egovernment.moa.id.auth.stork.STORKConstants;  import at.gv.egovernment.moa.id.config.auth.OAAuthParameter; -import at.gv.egovernment.moa.id.data.AuthenticationData; +import at.gv.egovernment.moa.id.data.IAuthData;  import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.AttributeException;  public class STORKIsAgeOverAttributBuilder implements IPVPAttributeBuilder  { @@ -34,11 +33,11 @@ public class STORKIsAgeOverAttributBuilder implements IPVPAttributeBuilder  {  		return STORKConstants.ISAGEOVER_NAME;  	} -	public <ATT> ATT build(AuthenticationSession authSession, OAAuthParameter oaParam, AuthenticationData authData, +	public <ATT> ATT build(OAAuthParameter oaParam, IAuthData authData,  			IAttributeGenerator<ATT> g) throws AttributeException {  		return g.buildStringAttribute(STORKConstants.ISAGEOVER_FRIENDLYNAME, STORKConstants.ISAGEOVER_NAME,  -				STORKAttributHelper.getAttribut(STORKConstants.ISAGEOVER_NAME, authSession));  +				STORKAttributHelper.getAttribut(STORKConstants.ISAGEOVER_NAME, authData));   	} diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/STORKMaritalStatusAttributBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/STORKMaritalStatusAttributBuilder.java index 1e627e723..c6ce4e32a 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/STORKMaritalStatusAttributBuilder.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/STORKMaritalStatusAttributBuilder.java @@ -22,10 +22,9 @@   *******************************************************************************/  package at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes; -import at.gv.egovernment.moa.id.auth.data.AuthenticationSession;  import at.gv.egovernment.moa.id.auth.stork.STORKConstants;  import at.gv.egovernment.moa.id.config.auth.OAAuthParameter; -import at.gv.egovernment.moa.id.data.AuthenticationData; +import at.gv.egovernment.moa.id.data.IAuthData;  import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.AttributeException;  public class STORKMaritalStatusAttributBuilder implements IPVPAttributeBuilder  { @@ -34,11 +33,11 @@ public class STORKMaritalStatusAttributBuilder implements IPVPAttributeBuilder  		return STORKConstants.MARITALSTATUS_NAME;  	} -	public <ATT> ATT build(AuthenticationSession authSession, OAAuthParameter oaParam, AuthenticationData authData, +	public <ATT> ATT build(OAAuthParameter oaParam, IAuthData authData,  			IAttributeGenerator<ATT> g) throws AttributeException {  		return g.buildStringAttribute(STORKConstants.MARITALSTATUS_FRIENDLYNAME, STORKConstants.MARITALSTATUS_NAME,  -				STORKAttributHelper.getAttribut(STORKConstants.MARITALSTATUS_NAME, authSession));  +				STORKAttributHelper.getAttribut(STORKConstants.MARITALSTATUS_NAME, authData));   	} diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/STORKNationalityCodeAttributBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/STORKNationalityCodeAttributBuilder.java index d46219996..8db5ceeb8 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/STORKNationalityCodeAttributBuilder.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/STORKNationalityCodeAttributBuilder.java @@ -22,10 +22,9 @@   *******************************************************************************/  package at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes; -import at.gv.egovernment.moa.id.auth.data.AuthenticationSession;  import at.gv.egovernment.moa.id.auth.stork.STORKConstants;  import at.gv.egovernment.moa.id.config.auth.OAAuthParameter; -import at.gv.egovernment.moa.id.data.AuthenticationData; +import at.gv.egovernment.moa.id.data.IAuthData;  import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.AttributeException;  public class STORKNationalityCodeAttributBuilder implements IPVPAttributeBuilder  { @@ -34,11 +33,11 @@ public class STORKNationalityCodeAttributBuilder implements IPVPAttributeBuilder  		return STORKConstants.NATIONALITYCODE_NAME;  	} -	public <ATT> ATT build(AuthenticationSession authSession, OAAuthParameter oaParam, AuthenticationData authData, +	public <ATT> ATT build(OAAuthParameter oaParam, IAuthData authData,  			IAttributeGenerator<ATT> g) throws AttributeException {  		return g.buildStringAttribute(STORKConstants.NATIONALITYCODE_FRIENDLYNAME, STORKConstants.NATIONALITYCODE_NAME,  -				STORKAttributHelper.getAttribut(STORKConstants.NATIONALITYCODE_NAME, authSession));  +				STORKAttributHelper.getAttribut(STORKConstants.NATIONALITYCODE_NAME, authData));   	} diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/STORKPseudonymAttributBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/STORKPseudonymAttributBuilder.java index 7bf6716ec..421f8c28d 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/STORKPseudonymAttributBuilder.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/STORKPseudonymAttributBuilder.java @@ -22,10 +22,9 @@   *******************************************************************************/  package at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes; -import at.gv.egovernment.moa.id.auth.data.AuthenticationSession;  import at.gv.egovernment.moa.id.auth.stork.STORKConstants;  import at.gv.egovernment.moa.id.config.auth.OAAuthParameter; -import at.gv.egovernment.moa.id.data.AuthenticationData; +import at.gv.egovernment.moa.id.data.IAuthData;  import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.AttributeException;  public class STORKPseudonymAttributBuilder implements IPVPAttributeBuilder  { @@ -34,11 +33,11 @@ public class STORKPseudonymAttributBuilder implements IPVPAttributeBuilder  {  		return STORKConstants.PSEUDONYM_NAME;  	} -	public <ATT> ATT build(AuthenticationSession authSession, OAAuthParameter oaParam, AuthenticationData authData, +	public <ATT> ATT build(OAAuthParameter oaParam, IAuthData authData,  			IAttributeGenerator<ATT> g) throws AttributeException {  		return g.buildStringAttribute(STORKConstants.PSEUDONYM_FRIENDLYNAME, STORKConstants.PSEUDONYM_NAME,  -				STORKAttributHelper.getAttribut(STORKConstants.PSEUDONYM_NAME, authSession));  +				STORKAttributHelper.getAttribut(STORKConstants.PSEUDONYM_NAME, authData));   	} diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/STORKResidencePermitAttributBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/STORKResidencePermitAttributBuilder.java index d47de1ff9..ceff4cf4f 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/STORKResidencePermitAttributBuilder.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/STORKResidencePermitAttributBuilder.java @@ -22,10 +22,9 @@   *******************************************************************************/  package at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes; -import at.gv.egovernment.moa.id.auth.data.AuthenticationSession;  import at.gv.egovernment.moa.id.auth.stork.STORKConstants;  import at.gv.egovernment.moa.id.config.auth.OAAuthParameter; -import at.gv.egovernment.moa.id.data.AuthenticationData; +import at.gv.egovernment.moa.id.data.IAuthData;  import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.AttributeException;  public class STORKResidencePermitAttributBuilder implements IPVPAttributeBuilder  { @@ -34,11 +33,11 @@ public class STORKResidencePermitAttributBuilder implements IPVPAttributeBuilder  		return STORKConstants.RESIDENCEPERMIT_NAME;  	} -	public <ATT> ATT build(AuthenticationSession authSession, OAAuthParameter oaParam, AuthenticationData authData, +	public <ATT> ATT build(OAAuthParameter oaParam, IAuthData authData,  			IAttributeGenerator<ATT> g) throws AttributeException {  		return g.buildStringAttribute(STORKConstants.RESIDENCEPERMIT_FRIENDLYNAME, STORKConstants.RESIDENCEPERMIT_NAME,  -				STORKAttributHelper.getAttribut(STORKConstants.RESIDENCEPERMIT_NAME, authSession));  +				STORKAttributHelper.getAttribut(STORKConstants.RESIDENCEPERMIT_NAME, authData));   	} diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/STORKTextResidenceAddressAttributBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/STORKTextResidenceAddressAttributBuilder.java index c75d6b0fb..1344883bf 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/STORKTextResidenceAddressAttributBuilder.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/STORKTextResidenceAddressAttributBuilder.java @@ -22,10 +22,9 @@   *******************************************************************************/  package at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes; -import at.gv.egovernment.moa.id.auth.data.AuthenticationSession;  import at.gv.egovernment.moa.id.auth.stork.STORKConstants;  import at.gv.egovernment.moa.id.config.auth.OAAuthParameter; -import at.gv.egovernment.moa.id.data.AuthenticationData; +import at.gv.egovernment.moa.id.data.IAuthData;  import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.AttributeException;  public class STORKTextResidenceAddressAttributBuilder implements IPVPAttributeBuilder  { @@ -34,11 +33,11 @@ public class STORKTextResidenceAddressAttributBuilder implements IPVPAttributeBu  		return STORKConstants.TEXTRESIDENCEADDRESS_NAME;  	} -	public <ATT> ATT build(AuthenticationSession authSession, OAAuthParameter oaParam, AuthenticationData authData, +	public <ATT> ATT build(OAAuthParameter oaParam, IAuthData authData,  			IAttributeGenerator<ATT> g) throws AttributeException {  		return g.buildStringAttribute(STORKConstants.TEXTRESIDENCEADDRESS_FRIENDLYNAME, STORKConstants.TEXTRESIDENCEADDRESS_NAME,  -				STORKAttributHelper.getAttribut(STORKConstants.TEXTRESIDENCEADDRESS_NAME, authSession));  +				STORKAttributHelper.getAttribut(STORKConstants.TEXTRESIDENCEADDRESS_NAME, authData));   	} diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/STORKTitleAttributBuilder.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/STORKTitleAttributBuilder.java index 357b2fe0d..5209697d6 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/STORKTitleAttributBuilder.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/STORKTitleAttributBuilder.java @@ -22,10 +22,9 @@   *******************************************************************************/  package at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes; -import at.gv.egovernment.moa.id.auth.data.AuthenticationSession;  import at.gv.egovernment.moa.id.auth.stork.STORKConstants;  import at.gv.egovernment.moa.id.config.auth.OAAuthParameter; -import at.gv.egovernment.moa.id.data.AuthenticationData; +import at.gv.egovernment.moa.id.data.IAuthData;  import at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions.AttributeException;  public class STORKTitleAttributBuilder implements IPVPAttributeBuilder  { @@ -34,11 +33,11 @@ public class STORKTitleAttributBuilder implements IPVPAttributeBuilder  {  		return STORKConstants.TITLE_NAME;  	} -	public <ATT> ATT build(AuthenticationSession authSession, OAAuthParameter oaParam, AuthenticationData authData, +	public <ATT> ATT build(OAAuthParameter oaParam, IAuthData authData,  			IAttributeGenerator<ATT> g) throws AttributeException {  		return g.buildStringAttribute(STORKConstants.TITLE_FRIENDLYNAME, STORKConstants.TITLE_NAME,  -				STORKAttributHelper.getAttribut(STORKConstants.TITLE_NAME, authSession));  +				STORKAttributHelper.getAttribut(STORKConstants.TITLE_NAME, authData));   	} diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/exceptions/AttributePolicyException.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/exceptions/AttributePolicyException.java new file mode 100644 index 000000000..1e0e2ee51 --- /dev/null +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/builder/attributes/exceptions/AttributePolicyException.java @@ -0,0 +1,40 @@ +/******************************************************************************* + * Copyright 2014 Federal Chancellery Austria + * MOA-ID has been developed in a cooperation between BRZ, the Federal + * Chancellery Austria - ICT staff unit, and Graz University of Technology. + * + * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by + * the European Commission - subsequent versions of the EUPL (the "Licence"); + * You may not use this work except in compliance with the Licence. + * You may obtain a copy of the Licence at: + * http://www.osor.eu/eupl/ + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the Licence is distributed on an "AS IS" basis, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the Licence for the specific language governing permissions and + * limitations under the Licence. + * + * This product combines work with different licenses. See the "NOTICE" text + * file for details on the various modules and licenses. + * The "NOTICE" text file is part of the distribution. Any derivative works + * that you distribute must include a readable copy of the "NOTICE" text file. + *******************************************************************************/ +package at.gv.egovernment.moa.id.protocols.pvp2x.builder.attributes.exceptions; + +public class AttributePolicyException extends AttributeException { +	 +	private static final long serialVersionUID = 1L; +	 +	private String attributeName; +	 +	public AttributePolicyException(String attributeName) { +		super("Attribute " + attributeName + " is restricted by IDP policy."); +		this.attributeName = attributeName; +	} +	 +	public String getAttributeName() { +		return attributeName; +	} +	 +} diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/requestHandler/ArtifactResolution.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/requestHandler/ArtifactResolution.java index 210cb6be8..a1bf92592 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/requestHandler/ArtifactResolution.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/requestHandler/ArtifactResolution.java @@ -30,8 +30,8 @@ import org.opensaml.common.binding.artifact.SAMLArtifactMap.SAMLArtifactMapEntry  import org.opensaml.saml2.core.ArtifactResolve;  import org.opensaml.saml2.core.ArtifactResponse; -import at.gv.egovernment.moa.id.auth.data.AuthenticationSession;  import at.gv.egovernment.moa.id.auth.exception.MOAIDException; +import at.gv.egovernment.moa.id.data.IAuthData;  import at.gv.egovernment.moa.id.data.SLOInformationInterface;  import at.gv.egovernment.moa.id.protocols.pvp2x.PVPAssertionStorage;  import at.gv.egovernment.moa.id.protocols.pvp2x.messages.MOARequest; @@ -47,7 +47,7 @@ public class ArtifactResolution implements IRequestHandler {  	}  	public SLOInformationInterface process(MOARequest obj, HttpServletRequest req, -			HttpServletResponse resp, AuthenticationSession moasession) throws MOAIDException { +			HttpServletResponse resp, IAuthData authData) throws MOAIDException {  		if (!handleObject(obj)) {  			throw new MOAIDException("pvp2.13", null);  		} diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/requestHandler/AuthnRequestHandler.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/requestHandler/AuthnRequestHandler.java index 92c2cd585..c5f73a59f 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/requestHandler/AuthnRequestHandler.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/requestHandler/AuthnRequestHandler.java @@ -55,10 +55,10 @@ import org.opensaml.xml.security.criteria.UsageCriteria;  import org.opensaml.xml.security.keyinfo.KeyInfoGeneratorFactory;  import org.opensaml.xml.security.x509.X509Credential; - -import at.gv.egovernment.moa.id.auth.data.AuthenticationSession;  import at.gv.egovernment.moa.id.auth.exception.MOAIDException;  import at.gv.egovernment.moa.id.config.auth.AuthConfigurationProvider; +import at.gv.egovernment.moa.id.data.AuthenticationData; +import at.gv.egovernment.moa.id.data.IAuthData;  import at.gv.egovernment.moa.id.data.SLOInformationImpl;  import at.gv.egovernment.moa.id.data.SLOInformationInterface;  import at.gv.egovernment.moa.id.protocols.pvp2x.PVPConstants; @@ -83,7 +83,7 @@ public class AuthnRequestHandler implements IRequestHandler, PVPConstants {  	}  	public SLOInformationInterface process(MOARequest obj, HttpServletRequest req, -			HttpServletResponse resp, AuthenticationSession authSession) throws MOAIDException { +			HttpServletResponse resp, IAuthData authData) throws MOAIDException {  		if (!handleObject(obj)) {  			throw new MOAIDException("pvp2.13", null);  		} @@ -118,7 +118,7 @@ public class AuthnRequestHandler implements IRequestHandler, PVPConstants {  		SLOInformationImpl sloInformation = new SLOInformationImpl();  		//build Assertion -		Assertion assertion = PVP2AssertionBuilder.buildAssertion(authnRequest, authSession,  +		Assertion assertion = PVP2AssertionBuilder.buildAssertion(authnRequest, authData,   				peerEntity, date, consumerService, sloInformation);  		Response authResponse = SAML2Utils.createSAMLObject(Response.class); diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/requestHandler/IRequestHandler.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/requestHandler/IRequestHandler.java index 9356eb6ba..fb4f5134f 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/requestHandler/IRequestHandler.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/requestHandler/IRequestHandler.java @@ -25,8 +25,8 @@ package at.gv.egovernment.moa.id.protocols.pvp2x.requestHandler;  import javax.servlet.http.HttpServletRequest;  import javax.servlet.http.HttpServletResponse; -import at.gv.egovernment.moa.id.auth.data.AuthenticationSession;  import at.gv.egovernment.moa.id.auth.exception.MOAIDException; +import at.gv.egovernment.moa.id.data.IAuthData;  import at.gv.egovernment.moa.id.data.SLOInformationInterface;  import at.gv.egovernment.moa.id.protocols.pvp2x.messages.MOARequest; @@ -34,5 +34,5 @@ public interface IRequestHandler {  	public boolean handleObject(MOARequest obj);  	public SLOInformationInterface process(MOARequest obj, HttpServletRequest req, -			HttpServletResponse resp, AuthenticationSession moasession) throws MOAIDException; +			HttpServletResponse resp, IAuthData authData) throws MOAIDException;  } diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/requestHandler/RequestManager.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/requestHandler/RequestManager.java index 59353b9ee..563712907 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/requestHandler/RequestManager.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/pvp2x/requestHandler/RequestManager.java @@ -29,8 +29,9 @@ import java.util.List;  import javax.servlet.http.HttpServletRequest;  import javax.servlet.http.HttpServletResponse; -import at.gv.egovernment.moa.id.auth.data.AuthenticationSession;  import at.gv.egovernment.moa.id.auth.exception.MOAIDException; +import at.gv.egovernment.moa.id.data.AuthenticationData; +import at.gv.egovernment.moa.id.data.IAuthData;  import at.gv.egovernment.moa.id.data.SLOInformationInterface;  import at.gv.egovernment.moa.id.protocols.pvp2x.messages.MOARequest;  import at.gv.egovernment.moa.id.protocols.pvp2x.exceptions.SAMLRequestNotSupported; @@ -54,13 +55,13 @@ public class RequestManager {  		handler.add(new ArtifactResolution());  	} -	public SLOInformationInterface handle(MOARequest obj, HttpServletRequest req, HttpServletResponse resp, AuthenticationSession moasession)  +	public SLOInformationInterface handle(MOARequest obj, HttpServletRequest req, HttpServletResponse resp, IAuthData authData)   			throws SAMLRequestNotSupported, MOAIDException {  		Iterator<IRequestHandler> it = handler.iterator();  		while(it.hasNext()) {  			IRequestHandler handler = it.next();  			if(handler.handleObject(obj)) { -				return handler.process(obj, req, resp, moasession); +				return handler.process(obj, req, resp, authData);  			}  		} diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/saml1/GetArtifactAction.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/saml1/GetArtifactAction.java index 587ca04e7..6ce647ff8 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/saml1/GetArtifactAction.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/saml1/GetArtifactAction.java @@ -27,32 +27,26 @@ import java.util.List;  import javax.servlet.http.HttpServletRequest;  import javax.servlet.http.HttpServletResponse; -import at.gv.egovernment.moa.id.auth.AuthenticationServer; -import at.gv.egovernment.moa.id.auth.data.AuthenticationSession;  import at.gv.egovernment.moa.id.auth.data.ExtendedSAMLAttribute;  import at.gv.egovernment.moa.id.auth.exception.AuthenticationException; -import at.gv.egovernment.moa.id.auth.exception.WrongParametersException;  import at.gv.egovernment.moa.id.auth.servlet.RedirectServlet;  import at.gv.egovernment.moa.id.auth.stork.STORKResponseProcessor;  import at.gv.egovernment.moa.id.config.auth.AuthConfigurationProvider;  import at.gv.egovernment.moa.id.config.auth.OAAuthParameter; -import at.gv.egovernment.moa.id.data.AuthenticationData; +import at.gv.egovernment.moa.id.data.IAuthData;  import at.gv.egovernment.moa.id.data.SLOInformationImpl;  import at.gv.egovernment.moa.id.data.SLOInformationInterface;  import at.gv.egovernment.moa.id.moduls.IAction;  import at.gv.egovernment.moa.id.moduls.IRequest; -import at.gv.egovernment.moa.id.storage.AuthenticationSessionStoreage; -import at.gv.egovernment.moa.id.util.ParamValidatorUtils;  import at.gv.egovernment.moa.logging.Logger;  import at.gv.egovernment.moa.util.URLEncoder;  public class GetArtifactAction implements IAction {  	public SLOInformationInterface processRequest(IRequest req, HttpServletRequest httpReq, -			HttpServletResponse httpResp, AuthenticationSession session) throws AuthenticationException { +			HttpServletResponse httpResp, IAuthData obj) throws AuthenticationException {  		String oaURL = (String) req.getOAURL(); -		String target = (String) req.getTarget();  		String sourceID = null;  		if (req instanceof SAML1RequestImpl) { @@ -61,41 +55,31 @@ public class GetArtifactAction implements IAction {  		} -		try { -		 +		SAML1AuthenticationData authData; +		if (obj instanceof SAML1AuthenticationData) { +			authData = (SAML1AuthenticationData) obj; -			if (oaURL == null) { -				throw new WrongParametersException("StartAuthentication", -						PARAM_OA, "auth.12"); -			} -			 -			// check parameter -			if (!ParamValidatorUtils.isValidOA(oaURL)) -				throw new WrongParametersException("StartAuthentication", -						PARAM_OA, "auth.12"); -	 -			// TODO: Support Mandate MODE! +		} else { +			Logger.error("AuthDate is NOT of type SAML1AuthenticationData."); +			throw new AuthenticationException("AuthDate is NOT of type SAML1AuthenticationData.", new Object[]{}); +		} +					 +		try {  			OAAuthParameter oaParam = AuthConfigurationProvider.getInstance() -				.getOnlineApplicationParameter(oaURL); -				 -			SAML1AuthenticationServer saml1server = SAML1AuthenticationServer.getInstace(); -			 -			AuthenticationData authData = SAML1AuthenticationServer.buildAuthenticationData(session,  -					oaParam, -					target); +					.getOnlineApplicationParameter(oaURL); +			SAML1AuthenticationServer saml1server = SAML1AuthenticationServer.getInstace(); +						  			// add other stork attributes to MOA assertion if available -			if(null != session.getStorkAttributes()) { -				List<ExtendedSAMLAttribute> moaExtendedSAMLAttibutes = STORKResponseProcessor.addAdditionalSTORKAttributes(session.getStorkAttributes()); -				session.getExtendedSAMLAttributesOA().addAll(moaExtendedSAMLAttibutes); -				//produce MOA-Assertion and artifact                     -				AuthenticationServer.getInstance().getForeignAuthenticationData(session); +			if(null != authData.getStorkAttributes()) { +				List<ExtendedSAMLAttribute> moaExtendedSAMLAttibutes = STORKResponseProcessor.addAdditionalSTORKAttributes(authData.getStorkAttributes()); +				authData.getExtendedSAMLAttributesOA().addAll(moaExtendedSAMLAttibutes);  				Logger.info("MOA assertion assembled and SAML Artifact generated.");  			} -			String samlArtifactBase64 = saml1server.BuildSAMLArtifact(session, oaParam, authData, sourceID); +			String samlArtifactBase64 = saml1server.BuildSAMLArtifact(oaParam, authData, sourceID); -			if (AuthenticationSessionStoreage.isSSOSession(session.getSessionID())) { +			if (authData.isSsoSession()) {  				String url = "RedirectServlet";  				url = addURLParameter(url, RedirectServlet.REDIRCT_PARAM_URL, URLEncoder.encode(oaURL, "UTF-8"));  				if (!oaParam.getBusinessService()) diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/saml1/GetAuthenticationDataService.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/saml1/GetAuthenticationDataService.java index f622f4b94..66861afa3 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/saml1/GetAuthenticationDataService.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/saml1/GetAuthenticationDataService.java @@ -56,7 +56,6 @@ import org.w3c.dom.NodeList;  import at.gv.egovernment.moa.id.auth.builder.SAMLResponseBuilder;  import at.gv.egovernment.moa.id.auth.exception.AuthenticationException;  import at.gv.egovernment.moa.id.auth.exception.MOAIDException; -import at.gv.egovernment.moa.id.data.AuthenticationData;  import at.gv.egovernment.moa.id.util.MOAIDMessageProvider;  import at.gv.egovernment.moa.id.util.Random;  import at.gv.egovernment.moa.util.Constants; @@ -138,12 +137,9 @@ public class GetAuthenticationDataService implements Constants {  					try { -						AuthenticationData authData = saml1server.getSaml1AuthenticationData(samlArtifact); +						samlAssertion = saml1server.getSaml1AuthenticationData(samlArtifact); -//						useUTC = authData.getUseUTC(); -  						// success -						samlAssertion = authData.getSamlAssertion();  						statusCode = "samlp:Success";  						statusMessageCode = "1200";  					} diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/saml1/SAML1AuthenticationData.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/saml1/SAML1AuthenticationData.java new file mode 100644 index 000000000..7569eef84 --- /dev/null +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/saml1/SAML1AuthenticationData.java @@ -0,0 +1,179 @@ +/******************************************************************************* + * Copyright 2014 Federal Chancellery Austria + * MOA-ID has been developed in a cooperation between BRZ, the Federal + * Chancellery Austria - ICT staff unit, and Graz University of Technology. + *  + * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by + * the European Commission - subsequent versions of the EUPL (the "Licence"); + * You may not use this work except in compliance with the Licence. + * You may obtain a copy of the Licence at: + * http://www.osor.eu/eupl/ + *  + * Unless required by applicable law or agreed to in writing, software + * distributed under the Licence is distributed on an "AS IS" basis, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the Licence for the specific language governing permissions and + * limitations under the Licence. + *  + * This product combines work with different licenses. See the "NOTICE" text + * file for details on the various modules and licenses. + * The "NOTICE" text file is part of the distribution. Any derivative works + * that you distribute must include a readable copy of the "NOTICE" text file. + ******************************************************************************/ +/* + * Copyright 2003 Federal Chancellery Austria + * MOA-ID has been developed in a cooperation between BRZ, the Federal + * Chancellery Austria - ICT staff unit, and Graz University of Technology. + * + * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by + * the European Commission - subsequent versions of the EUPL (the "Licence"); + * You may not use this work except in compliance with the Licence. + * You may obtain a copy of the Licence at: + * http://www.osor.eu/eupl/ + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the Licence is distributed on an "AS IS" basis, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the Licence for the specific language governing permissions and + * limitations under the Licence. + * + * This product combines work with different licenses. See the "NOTICE" text + * file for details on the various modules and licenses. + * The "NOTICE" text file is part of the distribution. Any derivative works + * that you distribute must include a readable copy of the "NOTICE" text file. + */ + + +package at.gv.egovernment.moa.id.protocols.saml1; + +import java.text.DateFormat; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.List; + +import at.gv.egovernment.moa.id.auth.data.ExtendedSAMLAttribute; +import at.gv.egovernment.moa.id.data.AuthenticationData; +import at.gv.egovernment.moa.id.util.Random; +import at.gv.egovernment.moa.logging.Logger; +import at.gv.egovernment.moa.util.DateTimeUtils; + +/** + * Encapsulates authentication data contained in a <code><saml:Assertion></code>. + * + * @author Paul Ivancsics + * @version $Id$ + */ + +public class SAML1AuthenticationData extends AuthenticationData { +  /** +	 *  +	 */ +	private static final long serialVersionUID = -1042697056735596866L; +/** +   * major version number of the SAML assertion +   */ +  private int majorVersion; +  /** +   * minor version number of the SAML assertion +   */ +  private int minorVersion; +  /** +   * identifier for this assertion +   */ +  private String assertionID; +/** + * @return the majorVersion + */ +   +  private String samlAssertion = null; + +  private List<ExtendedSAMLAttribute> extendedSAMLAttributesOA; +   + +  public SAML1AuthenticationData() {	  	 +		this.setMajorVersion(1); +		this.setMinorVersion(0); +		this.setAssertionID(Random.nextRandom());	   +  } +   +   +	//this method is only required for MOA-ID Proxy 2.0 Release. +	//TODO: remove it, if MOA-ID Proxy is not supported anymore. +	public String getWBPK() { +		return getBPK(); +	} +   +public int getMajorVersion() { +	return majorVersion; +} +/** + * @param majorVersion the majorVersion to set + */ +public void setMajorVersion(int majorVersion) { +	this.majorVersion = majorVersion; +} +/** + * @return the minorVersion + */ +public int getMinorVersion() { +	return minorVersion; +} +/** + * @param minorVersion the minorVersion to set + */ +public void setMinorVersion(int minorVersion) { +	this.minorVersion = minorVersion; +} +/** + * @return the assertionID + */ +public String getAssertionID() { +	return assertionID; +} +/** + * @param assertionID the assertionID to set + */ +public void setAssertionID(String assertionID) { +	this.assertionID = assertionID; +} + +public void setIssueInstant(String date) { +	try { +		setIssueInstant(DateTimeUtils.parseDateTime(date)); +		 +	} catch (ParseException e) { +		Logger.error("Parse IssueInstant element FAILED.", e); +		 +	}	 +} + +/** + * @return the samlAssertion + */ +public String getSamlAssertion() { +	return samlAssertion; +} + +/** + * @param samlAssertion the samlAssertion to set + */ +public void setSamlAssertion(String samlAssertion) { +	this.samlAssertion = samlAssertion; +} + +/** + * @return the extendedSAMLAttributesOA + */ +public List<ExtendedSAMLAttribute> getExtendedSAMLAttributesOA() { +	return extendedSAMLAttributesOA; +} + +/** + * @param extendedSAMLAttributesOA the extendedSAMLAttributesOA to set + */ +public void setExtendedSAMLAttributesOA( +		List<ExtendedSAMLAttribute> extendedSAMLAttributesOA) { +	this.extendedSAMLAttributesOA = extendedSAMLAttributesOA; +} + +} diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/saml1/SAML1AuthenticationServer.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/saml1/SAML1AuthenticationServer.java index 6391860ff..52b9b40ab 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/saml1/SAML1AuthenticationServer.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/saml1/SAML1AuthenticationServer.java @@ -23,7 +23,6 @@  package at.gv.egovernment.moa.id.protocols.saml1;  import java.io.IOException; -import java.util.Date;  import java.util.List;  import javax.xml.parsers.ParserConfigurationException; @@ -116,7 +115,7 @@ public class SAML1AuthenticationServer extends AuthenticationServer {  	 *   	 * @return <code>AuthenticationData</code>  	 */ -	public AuthenticationData getSaml1AuthenticationData(String samlArtifact) +	public String getSaml1AuthenticationData(String samlArtifact)  			throws AuthenticationException {  		try {  			new SAMLArtifactParser(samlArtifact).parseAssertionHandle(); @@ -125,13 +124,13 @@ public class SAML1AuthenticationServer extends AuthenticationServer {  			throw new AuthenticationException("1205", new Object[] {  					samlArtifact, ex.toString() });  		} -		AuthenticationData authData = null; +		String authData = null;  		synchronized (authenticationDataStore) {  			// System.out.println("assertionHandle: " + assertionHandle);  			try {  				authData = authenticationDataStore -						.get(samlArtifact, AuthenticationData.class); +						.get(samlArtifact, String.class, authDataTimeOut);  			} catch (MOADatabaseException e) {  				Logger.error("Assertion not found for SAML Artifact: " + samlArtifact); @@ -140,12 +139,7 @@ public class SAML1AuthenticationServer extends AuthenticationServer {  		}  		authenticationDataStore.remove(samlArtifact); -		 -		long now = new Date().getTime(); -		 -		if (now - authData.getTimestamp().getTime() > authDataTimeOut) -			throw new AuthenticationException("1207", new Object[] { samlArtifact }); -		 +				  		Logger.debug("Assertion delivered for SAML Artifact: " + samlArtifact);  		return authData; @@ -163,9 +157,8 @@ public class SAML1AuthenticationServer extends AuthenticationServer {  		return samlArtifact;  	} -	public String BuildSAMLArtifact(AuthenticationSession session,  -			OAAuthParameter oaParam,  -			AuthenticationData authData, String sourceID)  +	public String BuildSAMLArtifact(OAAuthParameter oaParam,  +			SAML1AuthenticationData authData, String sourceID)   					throws ConfigurationException, BuildException, AuthenticationException {  		//Load SAML1 Parameter from OA config @@ -179,7 +172,7 @@ public class SAML1AuthenticationServer extends AuthenticationServer {  			//set BASE64 encoded signer certificate  			String signerCertificateBase64 = "";  			if (saml1parameter.isProvideCertificate()) { -				byte[] signerCertificate = session.getEncodedSignerCertificate(); +				byte[] signerCertificate = authData.getSignerCertificate();  				if (signerCertificate != null) {  						signerCertificateBase64 = Base64Utils @@ -195,41 +188,31 @@ public class SAML1AuthenticationServer extends AuthenticationServer {  					provideStammzahl);  			//set Authblock -			String authBlock = saml1parameter.isProvideAUTHBlock() ? session +			String authBlock = saml1parameter.isProvideAUTHBlock() ? authData  					.getAuthBlock() : "";  			//set IdentityLink for assortion  			String ilAssertion = "";  			if (saml1parameter.isProvideIdentityLink()) {		 -				if (oaParam.getBusinessService()) { -					//IdentityLinkReSigner identitylinkresigner = IdentityLinkReSigner.getInstance(); -					 -//					Element resignedilAssertion = identitylinkresigner.resignIdentityLink(authData.getIdentityLink() -//								.getSamlAssertion()); -//					 -//					ilAssertion = DOMUtils.serializeNode(resignedilAssertion); +				ilAssertion = authData.getIdentityLink().getSerializedSamlAssertion(); -				} else { -					ilAssertion = authData.getIdentityLink().getSerializedSamlAssertion(); -					 -					if (!saml1parameter.isProvideStammzahl()) -						ilAssertion = StringUtils.replaceAll(ilAssertion, authData.getIdentityLink() -								.getIdentificationValue(), ""); -					 -				} +				if (!saml1parameter.isProvideStammzahl()) +					ilAssertion = StringUtils.replaceAll(ilAssertion, authData.getIdentityLink() +							.getIdentificationValue(), "");					  			} +  			String samlAssertion; -			if (session.getUseMandate()) { -				List<ExtendedSAMLAttribute> oaAttributes = session.getExtendedSAMLAttributesOA(); +			if (authData.isUseMandate()) { +				List<ExtendedSAMLAttribute> oaAttributes = authData.getExtendedSAMLAttributesOA();  				if (saml1parameter.isProvideFullMandatorData()) {  					try {  						ExtendedSAMLAttribute[] extendedSAMLAttributes = addExtendedSamlAttributes( -								session.getMISMandate(), oaParam.getBusinessService(),  +								authData.getMISMandate(), oaParam.getBusinessService(),   								saml1parameter.isProvideStammzahl());  						if (extendedSAMLAttributes != null) { @@ -293,7 +276,7 @@ public class SAML1AuthenticationServer extends AuthenticationServer {  					}				  				} -				String mandateDate = generateMandateDate(session, oaParam, authData); +				String mandateDate = generateMandateDate(oaParam, authData);  				samlAssertion = new AuthenticationDataAssertionBuilder().buildMandate(  						authData,  @@ -301,7 +284,7 @@ public class SAML1AuthenticationServer extends AuthenticationServer {  						mandateDate,   						authBlock,   						ilAssertion,  -						session.getBkuURL(),  +						authData.getBkuURL(),   						signerCertificateBase64,   						oaParam.getBusinessService(),    						oaAttributes,  @@ -314,24 +297,23 @@ public class SAML1AuthenticationServer extends AuthenticationServer {  					prPerson,  					authBlock,  					ilAssertion,  -					session.getBkuURL(), +					authData.getBkuURL(),  					signerCertificateBase64,  					oaParam.getBusinessService(), -					session.getExtendedSAMLAttributesOA(),  +					authData.getExtendedSAMLAttributesOA(),   					useCondition,  					conditionLength);  			} -			authData.setSamlAssertion(samlAssertion); +			//authData.setSamlAssertion(samlAssertion);  			String samlArtifact = new SAMLArtifactBuilder().build( -			session.getAuthURL(), Random.nextRandom(), +			authData.getIssuer(), Random.nextRandom(),  			sourceID); -			storeAuthenticationData(samlArtifact, authData); +			storeAuthenticationData(samlArtifact, samlAssertion); -			Logger.info("Anmeldedaten zu MOASession " + session.getSessionID() -					+ " angelegt, SAML Artifakt " + samlArtifact); +			Logger.info("Anmeldedaten angelegt, SAML Artifakt " + samlArtifact);  			return samlArtifact;  		} catch (Throwable ex) { @@ -341,21 +323,20 @@ public class SAML1AuthenticationServer extends AuthenticationServer {  	} -	private String generateMandateDate(AuthenticationSession session,  -			OAAuthParameter oaParam, AuthenticationData authData +	private String generateMandateDate(OAAuthParameter oaParam, AuthenticationData authData  			) throws AuthenticationException, BuildException,  			ParseException, ConfigurationException, ServiceException,  			ValidateException { -		if (session == null) +		if (authData == null)  			throw new AuthenticationException("auth.10", new Object[] {  					REQ_VERIFY_AUTH_BLOCK, PARAM_SESSIONID });  		IdentityLink tempIdentityLink = null; -		Element mandate = session.getMandate(); +		Element mandate = authData.getMandate(); -		if (session.getUseMandate()) { +		if (authData.isUseMandate()) {  			tempIdentityLink = new IdentityLink();  			Element mandator = ParepUtils.extractMandator(mandate);  			String dateOfBirth = ""; @@ -432,7 +413,10 @@ public class SAML1AuthenticationServer extends AuthenticationServer {  			String oatargetType;  	        if(oaParam.getBusinessService()) { -	        	oatargetType = AuthenticationSession.REGISTERANDORDNR_PREFIX_+session.getDomainIdentifier(); +	        	if (oaParam.getIdentityLinkDomainIdentifier().startsWith(AuthenticationSession.REGISTERANDORDNR_PREFIX_)) +	        		oatargetType = oaParam.getIdentityLinkDomainIdentifier(); +	        	else +	        		oatargetType = AuthenticationSession.REGISTERANDORDNR_PREFIX_+oaParam.getIdentityLinkDomainIdentifier();  	        } else {  	        	oatargetType = AuthenticationSession.TARGET_PREFIX_ + oaParam.getTarget(); @@ -509,7 +493,7 @@ public class SAML1AuthenticationServer extends AuthenticationServer {  	 *             when SAML artifact is invalid  	 */  	private void storeAuthenticationData(String samlArtifact, -			AuthenticationData authData) throws AuthenticationException { +			String samlAssertion) throws AuthenticationException {  		try {  			SAMLArtifactParser parser = new SAMLArtifactParser(samlArtifact); @@ -523,7 +507,7 @@ public class SAML1AuthenticationServer extends AuthenticationServer {  			synchronized (authenticationDataStore) {  				Logger.debug("Assertion stored for SAML Artifact: "  						+ samlArtifact); -				authenticationDataStore.put(samlArtifact, authData); +				authenticationDataStore.put(samlArtifact, samlAssertion);  			}  		} catch (AuthenticationException ex) { diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/AttributeCollector.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/AttributeCollector.java index 20351749b..75f40c89e 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/AttributeCollector.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/AttributeCollector.java @@ -9,6 +9,7 @@ import at.gv.egovernment.moa.id.auth.exception.MOAIDException;  import at.gv.egovernment.moa.id.commons.db.ex.MOADatabaseException;  import at.gv.egovernment.moa.id.config.auth.AuthConfigurationProvider;  import at.gv.egovernment.moa.id.config.auth.OAAuthParameter; +import at.gv.egovernment.moa.id.data.IAuthData;  import at.gv.egovernment.moa.id.data.SLOInformationImpl;  import at.gv.egovernment.moa.id.data.SLOInformationInterface;  import at.gv.egovernment.moa.id.moduls.IAction; @@ -41,7 +42,7 @@ public class AttributeCollector implements IAction {      /* (non-Javadoc)       * @see at.gv.egovernment.moa.id.moduls.IAction#processRequest(at.gv.egovernment.moa.id.moduls.IRequest, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, at.gv.egovernment.moa.id.auth.data.AuthenticationSession)       */ -    public SLOInformationInterface processRequest(IRequest req, HttpServletRequest httpReq, HttpServletResponse httpResp, AuthenticationSession moasession) throws MOAIDException { +    public SLOInformationInterface processRequest(IRequest req, HttpServletRequest httpReq, HttpServletResponse httpResp, IAuthData authData) throws MOAIDException {  		// - fetch the container  		String artifactId = (String) httpReq.getParameter(ARTIFACT_ID); @@ -56,7 +57,7 @@ public class AttributeCollector implements IAction {          // read configuration parameters of OA          OAAuthParameter oaParam = AuthConfigurationProvider.getInstance().getOnlineApplicationParameter(container.getRequest().getAssertionConsumerServiceURL());          if (oaParam == null) -            throw new AuthenticationException("stork.12", new Object[]{moasession.getPublicOAURLPrefix()}); +            throw new AuthenticationException("stork.12", new Object[]{container.getRequest().getAssertionConsumerServiceURL()});          // find the attribute provider plugin that can handle the response          IPersonalAttributeList newAttributes = null; @@ -81,7 +82,7 @@ public class AttributeCollector implements IAction {          addOrUpdateAll(container.getResponse().getPersonalAttributeList(), newAttributes);          // see if we need some more attributes -        SLOInformationImpl sloInfo = (SLOInformationImpl) processRequest(container, httpReq, httpResp, moasession, oaParam); +        SLOInformationImpl sloInfo = (SLOInformationImpl) processRequest(container, httpReq, httpResp, authData, oaParam);          if (sloInfo == null) {          	sloInfo = new SLOInformationImpl(null, null, req.requestedModule()); @@ -99,7 +100,7 @@ public class AttributeCollector implements IAction {       * @return the string       * @throws MOAIDException       */ -    public SLOInformationInterface processRequest(DataContainer container, HttpServletRequest request, HttpServletResponse response, AuthenticationSession moasession, OAAuthParameter oaParam) throws MOAIDException { +    public SLOInformationInterface processRequest(DataContainer container, HttpServletRequest request, HttpServletResponse response, IAuthData authData, OAAuthParameter oaParam) throws MOAIDException {          // check if there are attributes we need to fetch          IPersonalAttributeList requestAttributeList = container.getRequest().getPersonalAttributeList(); @@ -131,7 +132,7 @@ public class AttributeCollector implements IAction {                      try {                          // - hand over control to the suitable plugin                      	Logger.info(currentProvider.getClass().getSimpleName() + " called to handle attribute '" + currentAttribute.getName() + "'"); -                        aquiredAttributes = currentProvider.acquire(currentAttribute, container.getRequest().getSpCountry(), moasession); +                        aquiredAttributes = currentProvider.acquire(currentAttribute, container.getRequest().getSpCountry(), authData);                      	Logger.info(currentProvider.getClass().getSimpleName() + " can handle attribute '" + currentAttribute.getName() + "'");                          break;                      } catch (UnsupportedAttributeException e) { diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/AttributeProvider.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/AttributeProvider.java index 2914d8f7d..b1eb3a021 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/AttributeProvider.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/AttributeProvider.java @@ -6,6 +6,7 @@ import javax.servlet.http.HttpServletResponse;  import at.gv.egovernment.moa.id.auth.data.AuthenticationSession;  import at.gv.egovernment.moa.id.auth.exception.MOAIDException;  import at.gv.egovernment.moa.id.config.auth.OAAuthParameter; +import at.gv.egovernment.moa.id.data.IAuthData;  import eu.stork.peps.auth.commons.IPersonalAttributeList;  import eu.stork.peps.auth.commons.PersonalAttribute; @@ -23,13 +24,13 @@ public interface AttributeProvider {  	 *  	 * @param attributes the list of attributes to be acquired  	 * @param spCountyCode the sp county code -	 * @param moasession the moasession +	 * @param authData the moasession  	 * @return the personal attribute  	 * @throws UnsupportedAttributeException the unsupported attribute exception  	 * @throws ExternalAttributeRequestRequiredException an attribute request to an external service has to be done  	 * @throws MOAIDException the mOAID exception  	 */ -	public IPersonalAttributeList acquire(PersonalAttribute attributes, String spCountyCode, AuthenticationSession moasession) throws UnsupportedAttributeException, ExternalAttributeRequestRequiredException, MOAIDException; +	public IPersonalAttributeList acquire(PersonalAttribute attributes, String spCountyCode, IAuthData authData) throws UnsupportedAttributeException, ExternalAttributeRequestRequiredException, MOAIDException;  	/**  	 * Perform redirect. diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/AuthenticationRequest.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/AuthenticationRequest.java index 7269e361c..a3996d52b 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/AuthenticationRequest.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/AuthenticationRequest.java @@ -5,6 +5,7 @@ import at.gv.egovernment.moa.id.auth.exception.AuthenticationException;  import at.gv.egovernment.moa.id.auth.exception.MOAIDException;  import at.gv.egovernment.moa.id.config.auth.AuthConfigurationProvider;  import at.gv.egovernment.moa.id.config.auth.OAAuthParameter; +import at.gv.egovernment.moa.id.data.IAuthData;  import at.gv.egovernment.moa.id.data.SLOInformationInterface;  import at.gv.egovernment.moa.id.moduls.IAction;  import at.gv.egovernment.moa.id.moduls.IRequest; @@ -34,13 +35,13 @@ public class AuthenticationRequest implements IAction {      private VelocityEngine velocityEngine; -    private AuthenticationSession moaSession = null; +    private IAuthData authData = null;      private MOASTORKRequest moaStorkRequest = null; -    public SLOInformationInterface processRequest(IRequest req, HttpServletRequest httpReq, HttpServletResponse httpResp, AuthenticationSession moasession) throws MOAIDException { +    public SLOInformationInterface processRequest(IRequest req, HttpServletRequest httpReq, HttpServletResponse httpResp, IAuthData authData) throws MOAIDException { -        this.moaSession = moasession; +        this.authData = authData;          if (req instanceof MOASTORKRequest) { @@ -49,9 +50,10 @@ public class AuthenticationRequest implements IAction {              Logger.debug("Entering MOASTORKRequest");              httpResp.reset(); -            OAAuthParameter oaParam = AuthConfigurationProvider.getInstance().getOnlineApplicationParameter(moasession.getPublicOAURLPrefix()); +            //TODO: CHECK: req.getOAURL() should return the unique OA identifier +            OAAuthParameter oaParam = AuthConfigurationProvider.getInstance().getOnlineApplicationParameter(req.getOAURL());              if (oaParam == null) -                throw new AuthenticationException("stork.12", new Object[]{moasession.getPublicOAURLPrefix()}); +                throw new AuthenticationException("stork.12", new Object[]{req.getOAURL()});              MOASTORKResponse moaStorkResponse = new MOASTORKResponse(); @@ -77,7 +79,7 @@ public class AuthenticationRequest implements IAction {                  }                  // Get personal attributtes from MOA/IdentityLink -                moaStorkResponse.setPersonalAttributeList(populateAttributes()); +                moaStorkResponse.setPersonalAttributeList(populateAttributes(oaParam));              } @@ -115,7 +117,7 @@ public class AuthenticationRequest implements IAction {              Logger.debug("Data container prepared");              //TODO: in case of Single LogOut -> SLO information has to be stored -            return (new AttributeCollector()).processRequest(container, httpReq, httpResp, moasession, oaParam); +            return (new AttributeCollector()).processRequest(container, httpReq, httpResp, authData, oaParam);          } else {              Logger.error("Could not recognize request.");              throw new MOAIDException("stork.15", null); @@ -137,16 +139,16 @@ public class AuthenticationRequest implements IAction {      // does nothing -    public void mandate(AuthenticationSession moasession) { +    public void mandate(IAuthData authData) { -        if (moasession.getUseMandate()) { +        if (authData.isUseMandate()) {              try { -                MISMandate mandate = moasession.getMISMandate(); +                MISMandate mandate = authData.getMISMandate();                  String owbpk = mandate.getOWbPK();                  byte[] mand = mandate.getMandate();                  String profprep = mandate.getProfRep();                  //String textdesc = mandate.getTextualDescriptionOfOID(); -                Element mndt = moasession.getMandate(); +                Element mndt = authData.getMandate();                  iterate(mndt.getAttributes());                  Logger.debug("mandate encoded: " + new String(org.bouncycastle.util.encoders.Base64.encode(mand))); @@ -158,14 +160,14 @@ public class AuthenticationRequest implements IAction {      } -    public PersonalAttributeList populateAttributes() { +    public PersonalAttributeList populateAttributes(OAAuthParameter oaParam) {          IPersonalAttributeList attrLst = moaStorkRequest.getStorkAuthnRequest().getPersonalAttributeList();          Logger.info("Found " + attrLst.size() + " personal attributes in the request.");          // Define attribute list to be populated          PersonalAttributeList attributeList = new PersonalAttributeList(); -        MOAAttributeProvider moaAttributeProvider = new MOAAttributeProvider(moaSession.getIdentityLink(), moaStorkRequest); +        MOAAttributeProvider moaAttributeProvider = new MOAAttributeProvider(authData.getIdentityLink(), moaStorkRequest);          try {              for (PersonalAttribute personalAttribute : attrLst) { @@ -176,10 +178,8 @@ public class AuthenticationRequest implements IAction {              Logger.error("Exception, attributes: " + e.getMessage());          } -        Logger.debug("AUTHBLOCK " + moaSession.getAuthBlock()); -        Logger.debug("TARGET " + moaSession.getTarget() + " " + moaSession.getTargetFriendlyName()); -        Logger.debug("SESSION IDENTIFIER " + moaSession.getCcc() + " " + moaSession.getDomainIdentifier()); -        Logger.debug("AUTHBLOCKTOKKEN" + moaSession.getAuthBlockTokken()); +        Logger.debug("AUTHBLOCK " + authData.getAuthBlock()); +        Logger.debug("SESSION IDENTIFIER " + authData.getCcc() + " " + oaParam.getIdentityLinkDomainIdentifier());          return attributeList;      } diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/ConsentEvaluator.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/ConsentEvaluator.java index a08872029..06e6a9038 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/ConsentEvaluator.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/ConsentEvaluator.java @@ -8,6 +8,7 @@ import at.gv.egovernment.moa.id.auth.exception.MOAIDException;  import at.gv.egovernment.moa.id.commons.db.ex.MOADatabaseException;  import at.gv.egovernment.moa.id.config.auth.AuthConfigurationProvider;  import at.gv.egovernment.moa.id.config.auth.OAAuthParameter; +import at.gv.egovernment.moa.id.data.IAuthData;  import at.gv.egovernment.moa.id.data.SLOInformationInterface;  import at.gv.egovernment.moa.id.moduls.IAction;  import at.gv.egovernment.moa.id.moduls.IRequest; @@ -41,7 +42,7 @@ public class ConsentEvaluator implements IAction {      /* (non-Javadoc)       * @see at.gv.egovernment.moa.id.moduls.IAction#processRequest(at.gv.egovernment.moa.id.moduls.IRequest, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, at.gv.egovernment.moa.id.auth.data.AuthenticationSession)       */ -    public SLOInformationInterface processRequest(IRequest req, HttpServletRequest httpReq, HttpServletResponse httpResp, AuthenticationSession moasession) throws MOAIDException { +    public SLOInformationInterface processRequest(IRequest req, HttpServletRequest httpReq, HttpServletResponse httpResp, IAuthData authData) throws MOAIDException {  		// - fetch the container  		String artifactId = (String) httpReq.getParameter(ARTIFACT_ID); diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/EHvdAttributeProviderPlugin.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/EHvdAttributeProviderPlugin.java index 370182e71..e7b5ebae4 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/EHvdAttributeProviderPlugin.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/EHvdAttributeProviderPlugin.java @@ -22,6 +22,7 @@ import at.gv.egovernment.moa.id.auth.builder.BPKBuilder;  import at.gv.egovernment.moa.id.auth.data.AuthenticationSession;  import at.gv.egovernment.moa.id.auth.exception.MOAIDException;  import at.gv.egovernment.moa.id.config.auth.OAAuthParameter; +import at.gv.egovernment.moa.id.data.IAuthData;  import at.gv.egovernment.moa.logging.Logger;  import eu.stork.peps.auth.commons.IPersonalAttributeList;  import eu.stork.peps.auth.commons.PersonalAttribute; @@ -54,7 +55,7 @@ public class EHvdAttributeProviderPlugin implements AttributeProvider {  	/* (non-Javadoc)  	 * @see at.gv.egovernment.moa.id.protocols.stork2.AttributeProvider#acquire(eu.stork.peps.auth.commons.PersonalAttribute)  	 */ -	public IPersonalAttributeList acquire(PersonalAttribute attribute, String spCountryCode, AuthenticationSession moasession) +	public IPersonalAttributeList acquire(PersonalAttribute attribute, String spCountryCode, IAuthData authData)  			throws UnsupportedAttributeException,  			ExternalAttributeRequestRequiredException, MOAIDException { @@ -97,7 +98,9 @@ public class EHvdAttributeProviderPlugin implements AttributeProvider {  			requestBodyElem.addAttribute(envelope.createName("xmlns"), "http://gesundheit.gv.at/BAGDAD/DataAccessService");  			SOAPElement requestBodyElem1 = requestBodyElem.addChildElement("bPK"); -			requestBodyElem1.addTextNode(new BPKBuilder().buildBPK(moasession.getIdentityLink().getIdentificationValue(), "GH")); +			 +			//TODO: CHECK: IdentificationValue containts wbPK if MOA-ID is used as VIDP  +			requestBodyElem1.addTextNode(new BPKBuilder().buildBPK(authData.getIdentificationValue(), "GH"));  			requestMessage.saveChanges(); @@ -193,7 +196,7 @@ public class EHvdAttributeProviderPlugin implements AttributeProvider {  			// add stork id for verification  			ArrayList<String> value = new ArrayList<String>(); -			value.add(new BPKBuilder().buildStorkeIdentifier(moasession.getIdentityLink(), spCountryCode)); +			value.add(new BPKBuilder().buildStorkeIdentifier(authData.getIdentityLink(), spCountryCode));  			result.add(new PersonalAttribute("eIdentifier", false, value, "Available"));  			return result; diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/MandateAttributeRequestProvider.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/MandateAttributeRequestProvider.java index 0e94600db..eda712467 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/MandateAttributeRequestProvider.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/MandateAttributeRequestProvider.java @@ -3,6 +3,7 @@ package at.gv.egovernment.moa.id.protocols.stork2;  import at.gv.egovernment.moa.id.auth.data.AuthenticationSession;  import at.gv.egovernment.moa.id.auth.exception.MOAIDException;  import at.gv.egovernment.moa.id.config.auth.OAAuthParameter; +import at.gv.egovernment.moa.id.data.IAuthData;  import at.gv.egovernment.moa.id.util.HTTPUtils;  import at.gv.egovernment.moa.id.util.VelocityProvider;  import at.gv.egovernment.moa.logging.Logger; @@ -45,7 +46,7 @@ public class MandateAttributeRequestProvider implements AttributeProvider {          return "MandateAttributeRequestProvider";      } -    public IPersonalAttributeList acquire(PersonalAttribute attribute, String spCountryCode, AuthenticationSession moasession) throws UnsupportedAttributeException, ExternalAttributeRequestRequiredException, MOAIDException { +    public IPersonalAttributeList acquire(PersonalAttribute attribute, String spCountryCode, IAuthData authData) throws UnsupportedAttributeException, ExternalAttributeRequestRequiredException, MOAIDException {          Logger.info("Acquiring attribute: " + attribute.getName() + ", by: " + getAttrProviderName());          this.spCountryCode = spCountryCode;          requestedAttributes = new PersonalAttributeList(1); diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/MandateRetrievalRequest.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/MandateRetrievalRequest.java index dea74aa75..a3b3263d6 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/MandateRetrievalRequest.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/MandateRetrievalRequest.java @@ -2,6 +2,7 @@ package at.gv.egovernment.moa.id.protocols.stork2;  import at.gv.egovernment.moa.id.auth.data.AuthenticationSession;  import at.gv.egovernment.moa.id.auth.exception.MOAIDException; +import at.gv.egovernment.moa.id.data.IAuthData;  import at.gv.egovernment.moa.id.data.SLOInformationInterface;  import at.gv.egovernment.moa.id.moduls.IAction;  import at.gv.egovernment.moa.id.moduls.IRequest; @@ -14,7 +15,7 @@ import javax.servlet.http.HttpServletResponse;   *   */  public class MandateRetrievalRequest implements IAction { -    public SLOInformationInterface processRequest(IRequest req, HttpServletRequest httpReq, HttpServletResponse httpResp, AuthenticationSession moasession) throws MOAIDException { +    public SLOInformationInterface processRequest(IRequest req, HttpServletRequest httpReq, HttpServletResponse httpResp, IAuthData authData) throws MOAIDException {          Logger.info("Entering mandateretrievalrequest");          return null;  //      } diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/STORKProtocol.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/STORKProtocol.java index 00f919c82..8c63b8cb1 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/STORKProtocol.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/STORKProtocol.java @@ -110,6 +110,7 @@ public class STORKProtocol implements IModulInfo, MOAIDAuthConstants {          STORK2Request.setSTORKAuthnRequest(authnRequest);          STORK2Request.setSTORKAttrRequest(attrRequest); +                  return STORK2Request;      } diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/SignedDocAttributeRequestProvider.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/SignedDocAttributeRequestProvider.java index 89eb07815..e522627be 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/SignedDocAttributeRequestProvider.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/SignedDocAttributeRequestProvider.java @@ -16,6 +16,7 @@ import org.apache.velocity.app.VelocityEngine;  import at.gv.egovernment.moa.id.auth.data.AuthenticationSession;  import at.gv.egovernment.moa.id.auth.exception.MOAIDException;  import at.gv.egovernment.moa.id.config.auth.OAAuthParameter; +import at.gv.egovernment.moa.id.data.IAuthData;  import at.gv.egovernment.moa.id.util.VelocityProvider;  import at.gv.egovernment.moa.logging.Logger;  import eu.stork.peps.auth.commons.IPersonalAttributeList; @@ -56,7 +57,7 @@ public class SignedDocAttributeRequestProvider implements AttributeProvider {  	 * at.gv.egovernment.moa.id.protocols.stork2.AttributeProvider#acquire(java  	 * .lang.String)  	 */ -	public IPersonalAttributeList acquire(PersonalAttribute attribute, String spCountyCode, AuthenticationSession moasession) throws UnsupportedAttributeException, +	public IPersonalAttributeList acquire(PersonalAttribute attribute, String spCountyCode, IAuthData authData) throws UnsupportedAttributeException,  			ExternalAttributeRequestRequiredException {  		if(!attributes.contains(attribute.getName())) {  			throw new UnsupportedAttributeException(); diff --git a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/StorkAttributeRequestProvider.java b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/StorkAttributeRequestProvider.java index c0e613b82..3999451cc 100644 --- a/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/StorkAttributeRequestProvider.java +++ b/id/server/idserverlib/src/main/java/at/gv/egovernment/moa/id/protocols/stork2/StorkAttributeRequestProvider.java @@ -11,6 +11,7 @@ import org.apache.velocity.app.VelocityEngine;  import at.gv.egovernment.moa.id.auth.data.AuthenticationSession;  import at.gv.egovernment.moa.id.auth.exception.MOAIDException;  import at.gv.egovernment.moa.id.config.auth.OAAuthParameter; +import at.gv.egovernment.moa.id.data.IAuthData;  import at.gv.egovernment.moa.id.util.HTTPUtils;  import at.gv.egovernment.moa.id.util.VelocityProvider;  import at.gv.egovernment.moa.logging.Logger; @@ -55,7 +56,7 @@ public class StorkAttributeRequestProvider implements AttributeProvider {  	/* (non-Javadoc)  	 * @see at.gv.egovernment.moa.id.protocols.stork2.AttributeProvider#acquire(java.lang.String)  	 */ -	public IPersonalAttributeList acquire(PersonalAttribute attribute, String spCountyCode, AuthenticationSession moasession) +	public IPersonalAttributeList acquire(PersonalAttribute attribute, String spCountyCode, IAuthData authData)  			throws UnsupportedAttributeException, ExternalAttributeRequestRequiredException {  		if (!attributes.contains(attribute.getName())) diff --git a/id/server/idserverlib/src/test/java/test/at/gv/egovernment/moa/id/proxy/parser/SAMLResponseParserTest.java b/id/server/idserverlib/src/test/java/test/at/gv/egovernment/moa/id/proxy/parser/SAMLResponseParserTest.java index e5bde81fd..3acf20a41 100644 --- a/id/server/idserverlib/src/test/java/test/at/gv/egovernment/moa/id/proxy/parser/SAMLResponseParserTest.java +++ b/id/server/idserverlib/src/test/java/test/at/gv/egovernment/moa/id/proxy/parser/SAMLResponseParserTest.java @@ -52,6 +52,7 @@ import test.at.gv.egovernment.moa.id.UnitTestCase;  import at.gv.egovernment.moa.id.data.AuthenticationData;  import at.gv.egovernment.moa.id.data.SAMLStatus; +import at.gv.egovernment.moa.id.protocols.saml1.SAML1AuthenticationData;  import at.gv.egovernment.moa.id.proxy.parser.SAMLResponseParser;  import at.gv.egovernment.moa.util.Constants;  import at.gv.egovernment.moa.util.DOMUtils; @@ -209,7 +210,7 @@ public class SAMLResponseParserTest extends UnitTestCase {      assertEquals("samlp:Success", status.getStatusCode());      assertEquals("samlp:Success", status.getSubStatusCode());      assertEquals("Ollas leiwand", status.getStatusMessage()); -    AuthenticationData authData = parser.parseAuthenticationData(); +    SAML1AuthenticationData authData = parser.parseAuthenticationData();      assertEquals(1, authData.getMajorVersion());      assertEquals(0, authData.getMinorVersion());      assertEquals("-4633313027464114584", authData.getAssertionID()); | 
