package org.jboss.seam.security.external.saml.api;
import java.util.List;
import org.jboss.seam.security.external.saml.idp.SamlExternalServiceProvider;
/**
* API for the configuration of a SAML Identity Provider
*
* @author Marcel Kolsteren
*/
public interface SamlIdentityProviderConfigurationApi extends SamlEntityConfigurationApi {
/**
* This property indicates whether incoming authentication requests need to
* be signed. This property is disabled (false) by default.
*
* @return true iff the authentication requests need to be signed
*/
boolean isWantAuthnRequestsSigned();
/**
* See {@link #isWantAuthnRequestsSigned()}.
*/
void setWantAuthnRequestsSigned(boolean wantAuthnRequestsSigned);
/**
* This property indicates whether outgoing single logout messages are
* signed. True by default, and the advice is not to disable this property,
* unless you understand the security risks of doing so.
*
* @return true iff the single logout requests (sent to identity providers)
* are signed
*/
boolean isSingleLogoutMessagesSigned();
/**
* See {@link #isSingleLogoutMessagesSigned()}.
*/
void setSingleLogoutMessagesSigned(boolean singleLogoutMessagesSigned);
/**
* This property indicates whether incoming single logout requests are
* required to have a valid signature. True by default, and the advice is not
* to disable this property, unless you understand the security risks of
* doing so.
*
* @return true iff incoming single logout requests need to have a valid
* signature
*/
boolean isWantSingleLogoutMessagesSigned();
/**
* See {@link #isWantSingleLogoutMessagesSigned()}.
*/
void setWantSingleLogoutMessagesSigned(boolean wantSingleLogoutMessagesSigned);
/**
* Gets a list of all external service providers that have been added
* previously by calling
* {@link SamlEntityConfigurationApi#addExternalSamlEntity}.
*
* @return the list
*/
List<SamlExternalServiceProvider> getServiceProviders();
}