package at.gv.egovernment.moa.id.auth.data;
import java.security.PublicKey;
import java.util.List;
import org.w3c.dom.Element;
/**
* Parameters for validating an infobox.
*
* This interface is used by MOA-ID to provide parameters to an
* {link at.gv.egovernment.moa.id.auth.validator.InfoboxValidator
* InfoboxValidator}.
*
* @author Harald Bratko
*/
public interface InfoboxValidatorParams {
/**
* Returns a list of {@link at.gv.egovernment.moa.id.auth.data.InfoboxToken InfoboxToken}
* objects. The first token in this list is the one to be validated. Each further token
* maybe needed to validate this first token.
*
* @return A list of {@link at.gv.egovernment.moa.id.auth.data.InfoboxToken InfoboxToken}
* objects.
*/
public List getInfoboxTokenList();
/**
* Returns the ID of the trust profile to be used for validating
* certificates. Maybe ignored by a validator, if no certificates
* has to be validated.
*
* @return The ID of a trust profile.
*/
public String getTrustProfileID();
/**
* Returns schema location URIs that may be needed by the
* validator to parse infobox tokens.
* Each entry in the list is a {@link Schema} specifying the location
* of an XML schema.
*
* @return A list of {@link Schema} objects each of them specifying the
* location of an XML schema.
*/
public List getSchemaLocations();
/**
* Returns the URL of the BKU.
* Maybe needed by a validator.
*
* @return The url of the BKU.
*/
public String getBkuURL();
/**
* Returns the target parameter.
* null
in the case of a business service.
*
* @return The target parameter.
*/
public String getTarget();
/**
* Returns true
if the application is a business
* service, otherwise false
. This may be useful
* for the validating application.
*
* @return True
if the application is a business
* service, otherwise false
*/
public boolean getBusinessApplication();
/**
* Returns the family name from the identity link.
* Maybe needed by a validator.
*
* @return The family name from the identity link.
*/
public String getFamilyName();
/**
* Returns the given name from the identity link.
* Maybe needed by a validator.
*
* @return The given name from the identity link.
*/
public String getGivenName();
/**
* The date of birth from the identity link.
* The method returns the value of the
* element from the identity link.
* Maybe needed by a validator.
*
* @return The date of birth from the identity link.
*/
public String getDateOfBirth();
/**
* Returns he identification value from the identity
* link. This may be the Stammzahl
* in the case of a public application or the
* wbPK
in the case of a business
* application. This parameter is only returned
* if specified within the config file.
*
* @return The identification value from the identity link.
*/
public String getIdentificationValue();
/**
* Returns the type of the identification value
* from the identity link. This may be
* especially of interest for business
* applications.
*
* @return The type of the identification value
* from the identity link.
*/
public String getIdentificationType();
/**
* Returns the public keys from the identity link.
* Maybe needed by the application.
*
* @return PublicKey[] The public keys from the
* identity link.
*/
public PublicKey[] getPublicKeys();
/**
* Returns the identity link.
* A validator may need other data from the identity link, than
* family name, given name, date of birth and identification value.
* The identity link element is only returned if specified within the
* config file.
*
* @return The identity link.
*/
public Element getIdentityLink();
/**
* Indicates whether source pins (Stammzahl
en) should be hidden or not.
* If an online application lying behind MOA-ID is not allowed to get source pins
* (Stammzahl
en), any source pins within SAML attributes
* returned by the validator must suppressed:
* If the parameter getHideStammzahl
is true
, then the validator
* MUST hide (replace by an empty string) any source pin (Stammzahl
)
* that may be included in a SAML attribute
returned by the validator.
*
* @return true
if source pins (Stammzahl
en) must be hidden,
* otherwise false
.
*/
public boolean getHideStammzahl();
/**
* Indicates if the infobox validator has to run in the so called compatibility mode
.
*
* The compatibility mode
is used when the final <saml:Assertion>
* sent to the online application should be rather built on the basis of a <pr:PersonData>
* structure returned by the infobox validator instead of the original identity link.
* This mode is mainly used within the Mandates
context
* (please refer MOA-ID specification for more details).
*
* @return True
the infobox validator has to run in the so called
* compatibility mode
, otherwise false
. The default value
* should be false.
*/
public boolean getCompMode();
/**
* Returns application specific parameters.
* Each child element of this element contains
* a validating application specific parameter. The
* element is passed as specified within the config
* file and its up to the implementing class to
* parse and interprete its children.
*
* @return Application specific parameters.
*/
public Element getApplicationSpecificParams();
}