/*******************************************************************************
* 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.commons.api.data;
/**
* A SAML-Attribute to be appended to the final SAML-Assertion
* that will be passed to the online application.
*/
public interface ExtendedSAMLAttribute {
/**
* Add this attribute only to the SAML-Assertion
* passed to the online application, but not to
* the AUTH-Block.
*/
public final static int NOT_ADD_TO_AUTHBLOCK = 0;
/**
* Add this attribute to both, the AUTH-Block and the
* final SAML-Assertion passed to the online application.
*/
public final static int ADD_TO_AUTHBLOCK = 1;
/**
* Add this attribute to only the AUTH-Block, but not
* to the final SAML-Assertion passed to the online application.
*/
public final static int ADD_TO_AUTHBLOCK_ONLY = 2;
/**
* The value of the SAML-Attribute. This must be either a
* org.w3c.Element
or a java.lang.String
* object. Each other type will be ignored.
* If, for example, the type of the actual SAML-Attribute is a
* <xsd:boolean>
the value must be either the String
* "true"
or "false"
.
* Or the <xsd:integer>
number 273
* has to be the String "273"
.
*
* @return The value of the SAML-Attribute. Must not be null
.
*/
public Object getValue();
/**
* The name of the SAML-Attribute.
*
* @return The name of the SAML-Attribute. Must not be null
.
*/
public String getName();
/**
* The namespace of the SAML-Attribute.
* An application will use the context specific namespace URI for the attribute it returns.
* However, if the application cannot explicitely assign a namespace URI, the
* {@link at.gv.egovernment.moa.util.Constants#MOA_NS_URI default} MOA namespace URI
* should be used.
*
* @return The namespace of the SAML-Attribute. Must not be null
.
*/
public String getNameSpace();
/**
* Specifies if this SAML-Attribute should be added to the AUTH-Block.
*
* Depending on the returned value, this SAML-Attribute should be only added to the
* final SAML-Assertion passed to the online application (0), to both, the final
* assertion and the AUTH-Block (1) or to the AUTH-Block only (2).
*
* @return