/*******************************************************************************
* 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;
/**
* 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
@Deprecated
public String getName() {
return givenName + " " + familyName;
}
/* (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;
}
}