/******************************************************************************* * 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.egiz.eaaf.core.impl.idp.auth.data; import java.io.IOException; import java.io.Serializable; import java.security.PublicKey; import javax.xml.transform.TransformerException; import org.w3c.dom.Element; import at.gv.egiz.eaaf.core.api.idp.auth.data.IIdentityLink; import at.gv.egiz.eaaf.core.impl.utils.DOMUtils; /** * Data contained in an identity link issued by BMI, relevant to the MOA ID component. *
"IdentityLink" is the translation of "Personenbindung". * * @author Paul Ivancsics * @version $Id$ */ public class IdentityLink implements Serializable, IIdentityLink{ private static final long serialVersionUID = 1L; /** * "identificationValue" is the translation of "Stammzahl". */ private String identificationValue; /** * "identificationType" type of the identificationValue in the IdentityLink. */ private String identificationType; /** * first name */ private String givenName; /** * family name */ private String familyName; /** * The name as (givenName + familyName) */ private String name; /** * date of birth */ private String dateOfBirth; /** * the original saml:Assertion-Element */ private Element samlAssertion; /** * the serializes saml:Assertion */ private String serializedSamlAssertion; /** * Element /saml:Assertion/saml:AttributeStatement/saml:Subject/saml:SubjectConfirmation/saml:SubjectConfirmationData/pr:Person */ private Element prPerson; /** * we need for each dsig:Reference Element all * transformation elements */ private Element[] dsigReferenceTransforms; /** * The issuing time of the identity link SAML assertion. */ private String issueInstant; /** * we need all public keys stored in * the identity link */ private PublicKey[] publicKey; /** * Constructor for IdentityLink */ public IdentityLink() { } /* (non-Javadoc) * @see at.gv.egovernment.moa.id.auth.data.IIdentityLink#getDateOfBirth() */ @Override public String getDateOfBirth() { return dateOfBirth; } /* (non-Javadoc) * @see at.gv.egovernment.moa.id.auth.data.IIdentityLink#getFamilyName() */ @Override public String getFamilyName() { return familyName; } /* (non-Javadoc) * @see at.gv.egovernment.moa.id.auth.data.IIdentityLink#getGivenName() */ @Override public String getGivenName() { return givenName; } /* (non-Javadoc) * @see at.gv.egovernment.moa.id.auth.data.IIdentityLink#getName() */ @Override public String getName() { if (name == null) { name = givenName + " " + familyName; } return name; } /* (non-Javadoc) * @see at.gv.egovernment.moa.id.auth.data.IIdentityLink#getIdentificationValue() */ @Override public String getIdentificationValue() { return identificationValue; } /* (non-Javadoc) * @see at.gv.egovernment.moa.id.auth.data.IIdentityLink#getIdentificationType() */ @Override public String getIdentificationType() { return identificationType; } /* (non-Javadoc) * @see at.gv.egovernment.moa.id.auth.data.IIdentityLink#setDateOfBirth(java.lang.String) */ @Override public void setDateOfBirth(String dateOfBirth) { this.dateOfBirth = dateOfBirth; } /* (non-Javadoc) * @see at.gv.egovernment.moa.id.auth.data.IIdentityLink#setFamilyName(java.lang.String) */ @Override public void setFamilyName(String familyName) { this.familyName = familyName; } /* (non-Javadoc) * @see at.gv.egovernment.moa.id.auth.data.IIdentityLink#setGivenName(java.lang.String) */ @Override public void setGivenName(String givenName) { this.givenName = givenName; } /* (non-Javadoc) * @see at.gv.egovernment.moa.id.auth.data.IIdentityLink#setIdentificationValue(java.lang.String) */ @Override public void setIdentificationValue(String identificationValue) { this.identificationValue = identificationValue; } /* (non-Javadoc) * @see at.gv.egovernment.moa.id.auth.data.IIdentityLink#setIdentificationType(java.lang.String) */ @Override public void setIdentificationType(String identificationType) { this.identificationType = identificationType; } /* (non-Javadoc) * @see at.gv.egovernment.moa.id.auth.data.IIdentityLink#getSamlAssertion() */ @Override public Element getSamlAssertion() { return samlAssertion; } /* (non-Javadoc) * @see at.gv.egovernment.moa.id.auth.data.IIdentityLink#getSerializedSamlAssertion() */ @Override public String getSerializedSamlAssertion() { return serializedSamlAssertion; } /* (non-Javadoc) * @see at.gv.egovernment.moa.id.auth.data.IIdentityLink#setSamlAssertion(org.w3c.dom.Element) */ @Override public void setSamlAssertion(Element samlAssertion) throws TransformerException, IOException { this.samlAssertion = samlAssertion; this.serializedSamlAssertion = DOMUtils.serializeNode(samlAssertion); } /* (non-Javadoc) * @see at.gv.egovernment.moa.id.auth.data.IIdentityLink#getDsigReferenceTransforms() */ @Override public Element[] getDsigReferenceTransforms() { return dsigReferenceTransforms; } /* (non-Javadoc) * @see at.gv.egovernment.moa.id.auth.data.IIdentityLink#setDsigReferenceTransforms(org.w3c.dom.Element[]) */ @Override public void setDsigReferenceTransforms(Element[] dsigReferenceTransforms) { this.dsigReferenceTransforms = dsigReferenceTransforms; } /* (non-Javadoc) * @see at.gv.egovernment.moa.id.auth.data.IIdentityLink#getPublicKey() */ @Override public PublicKey[] getPublicKey() { return publicKey; } /* (non-Javadoc) * @see at.gv.egovernment.moa.id.auth.data.IIdentityLink#setPublicKey(java.security.PublicKey[]) */ @Override public void setPublicKey(PublicKey[] publicKey) { this.publicKey = publicKey; } /* (non-Javadoc) * @see at.gv.egovernment.moa.id.auth.data.IIdentityLink#getPrPerson() */ @Override public Element getPrPerson() { return prPerson; } /* (non-Javadoc) * @see at.gv.egovernment.moa.id.auth.data.IIdentityLink#setPrPerson(org.w3c.dom.Element) */ @Override public void setPrPerson(Element prPerson) { this.prPerson = prPerson; } /* (non-Javadoc) * @see at.gv.egovernment.moa.id.auth.data.IIdentityLink#getIssueInstant() */ @Override public String getIssueInstant() { return issueInstant; } /* (non-Javadoc) * @see at.gv.egovernment.moa.id.auth.data.IIdentityLink#setIssueInstant(java.lang.String) */ @Override public void setIssueInstant(String issueInstant) { this.issueInstant = issueInstant; } }