All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.opensaml.common.binding.SAMLMessageContext Maven / Gradle / Ivy

Go to download

The OpenSAML-J library provides tools to support developers working with the Security Assertion Markup Language (SAML).

There is a newer version: 2.6.2
Show newest version
/*
 * Licensed to the University Corporation for Advanced Internet Development, 
 * Inc. (UCAID) under one or more contributor license agreements.  See the 
 * NOTICE file distributed with this work for additional information regarding
 * copyright ownership. The UCAID licenses this file to You under the Apache 
 * License, Version 2.0 (the "License"); you may not use this file except in 
 * compliance with the License.  You may obtain a copy of the License at
 *
 *    http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package org.opensaml.common.binding;

import javax.xml.namespace.QName;

import org.joda.time.DateTime;
import org.opensaml.common.SAMLObject;
import org.opensaml.saml2.metadata.Endpoint;
import org.opensaml.saml2.metadata.EntityDescriptor;
import org.opensaml.saml2.metadata.RoleDescriptor;
import org.opensaml.saml2.metadata.provider.MetadataProvider;
import org.opensaml.ws.message.MessageContext;
import org.opensaml.xml.security.credential.Credential;

/**
 * SAML specific extension to the more basic {@link MessageContext}.
 * 
 * @param  type of inbound SAML message
 * @param  type of outbound SAML message
 * @param  type of name identifier used for subjects
 */
public interface SAMLMessageContext
        extends MessageContext {

    /**
     * Gets the inbound SAML message. This may not be the same as the message returned from
     * {@link MessageContext#getInboundMessage()} if the SAML message was carried in another protocol (e.g. SOAP).
     * 
     * @return inbound SAML message
     */
    public InboundMessageType getInboundSAMLMessage();

    /**
     * Gets the ID of the inbound SAML message.
     * 
     * @return ID of the inbound SAML message
     */
    public String getInboundSAMLMessageId();

    /**
     * Gets the issue instant of the incomming SAML message.
     * 
     * @return issue instant of the incomming SAML message
     */
    public DateTime getInboundSAMLMessageIssueInstant();

    /**
     * Gets the protocol used by the peer entity to communicate with the local entity.
     * 
     * @return protocol used by the peer entity to communicate with the local entity
     */
    public String getInboundSAMLProtocol();

    /**
     * Gets the local entity's ID.
     * 
     * @return local entity's ID
     */
    public String getLocalEntityId();

    /**
     * Gets the local entity metadata.
     * 
     * @return local entity metadata
     */
    public EntityDescriptor getLocalEntityMetadata();

    /**
     * Gets the role of the local entity.
     * 
     * @return role of the local entity
     */
    public QName getLocalEntityRole();
    
    /**
     * Gets the role metadata of the local entity.
     * 
     * @return role metadata of the local entity
     */
    public RoleDescriptor getLocalEntityRoleMetadata();

    /**
     * Gets the metadata provider used to lookup information entity information.
     * 
     * @return metadata provider used to lookup information entity information
     */
    public MetadataProvider getMetadataProvider();

    /**
     * Gets the credential used to sign the outbound SAML message.
     * 
     * @return credential used to sign the outbound SAML message
     */
    public Credential getOuboundSAMLMessageSigningCredential();

    /**
     * Gets the artifact type to use for the outbound message.
     * 
     * @return artifact type to use for the outbound message
     */
    public byte[] getOutboundMessageArtifactType();

    /**
     * Gets the outbound SAML message. This may not be the same as the message returned from
     * {@link MessageContext#getOutboundMessage()} if the SAML message was carried in another protocol (e.g. SOAP).
     * 
     * @return outbound SAML message
     */
    public OutboundMessageType getOutboundSAMLMessage();

    /**
     * Gets the ID of the outbound SAML message.
     * 
     * @return ID of the outbound SAML message
     */
    public String getOutboundSAMLMessageId();

    /**
     * Gets the issue instant of the outbound SAML message.
     * 
     * @return issue instant of the outbound SAML message
     */
    public DateTime getOutboundSAMLMessageIssueInstant();

    /**
     * Gets the protocol used by the local entity to communicate with the peer entity.
     * 
     * @return protocol used by the local entity to communicate with the peer entity
     */
    public String getOutboundSAMLProtocol();

    /**
     * Gets the endpoint of for the peer entity.
     * 
     * @return endpoint of for the peer entity
     */
    public Endpoint getPeerEntityEndpoint();

    /**
     * Gets the peer's entity ID.
     * 
     * @return peer's entity ID
     */
    public String getPeerEntityId();

    /**
     * Gets the peer entity metadata.
     * 
     * @return peer entity metadata
     */
    public EntityDescriptor getPeerEntityMetadata();

    /**
     * Gets the role of the peer entity.
     * 
     * @return role of the peer entity
     */
    public QName getPeerEntityRole();

    /**
     * Gets the role of the peer entity.
     * 
     * @return role of the peer entity
     */
    public RoleDescriptor getPeerEntityRoleMetadata();

    /**
     * Gets the relay state associated with the message.
     * 
     * @return relay state associated with the message
     */
    public String getRelayState();

    /**
     * Gets the subject's SAML name identifier.
     * 
     * @return subject's SAML name identifier
     */
    public NameIdentifierType getSubjectNameIdentifier();

    /**
     * Gets whether the inbound SAML message has been authenticated.
     * 
     * @return whether the inbound SAML message has been authenticated
     */
    public boolean isInboundSAMLMessageAuthenticated();

    /**
     * Sets the inbound SAML message.
     * 
     * @param message inbound SAML message
     */
    public void setInboundSAMLMessage(InboundMessageType message);

    /**
     * Sets whether the inbound SAML message has been authenticated.
     * 
     * @param isAuthenticated whether the inbound SAML message has been authenticated
     */
    public void setInboundSAMLMessageAuthenticated(boolean isAuthenticated);

    /**
     * Sets the ID of the inbound SAML message.
     * 
     * @param id ID of the inbound SAML message
     */
    public void setInboundSAMLMessageId(String id);

    /**
     * Sets the issue instant of the incomming SAML message.
     * 
     * @param instant issue instant of the incomming SAML message
     */
    public void setInboundSAMLMessageIssueInstant(DateTime instant);

    /**
     * Sets the protocol used by the peer entity to communicate with the local entity.
     * 
     * @param protocol protocol used by the peer entity to communicate with the local entity
     */
    public void setInboundSAMLProtocol(String protocol);

    /**
     * Sets the local entity's ID.
     * 
     * @param id local entity's ID
     */
    public void setLocalEntityId(String id);

    /**
     * Sets the local entity metadata.
     * 
     * @param metadata local entity metadata
     */
    public void setLocalEntityMetadata(EntityDescriptor metadata);

    /**
     * Sets the role of the local entity.
     * 
     * @param role role of the local entity
     */
    public void setLocalEntityRole(QName role);

    /**
     * Sets the role metadata for the local entity.
     * 
     * @param role role metadata for the local entity
     */
    public void setLocalEntityRoleMetadata(RoleDescriptor role);

    /**
     * Sets the metadata provider used to lookup information entity information.
     * 
     * @param provider metadata provider used to lookup information entity information
     */
    public void setMetadataProvider(MetadataProvider provider);

    /**
     * Sets the artifact type to use for the outbound message.
     * 
     * @param type artifact type to use for the outbound message
     */
    public void setOutboundMessageArtifactType(byte[] type);

    /**
     * Sets the outbound SAML message.
     * 
     * @param message outbound SAML message
     */
    public void setOutboundSAMLMessage(OutboundMessageType message);

    /**
     * Sets the ID of the outbound SAML message.
     * 
     * @param id ID of the outbound SAML message
     */
    public void setOutboundSAMLMessageId(String id);

    /**
     * Sets the issue instant of the outbound SAML message.
     * 
     * @param instant issue instant of the outbound SAML message
     */
    public void setOutboundSAMLMessageIssueInstant(DateTime instant);

    /**
     * Sets the credential used to sign the outbound SAML message.
     * 
     * @param credential credential used to sign the outbound SAML message
     */
    public void setOutboundSAMLMessageSigningCredential(Credential credential);

    /**
     * Sets the protocol used by the local entity to communicate with the peer entity.
     * 
     * @param protocol protocol used by the local entity to communicate with the peer entity
     */
    public void setOutboundSAMLProtocol(String protocol);

    /**
     * Sets the endpoint of for the peer entity.
     * 
     * @param endpoint endpoint of for the peer entity
     */
    public void setPeerEntityEndpoint(Endpoint endpoint);

    /**
     * Sets the peer's entity ID.
     * 
     * @param id peer's entity ID
     */
    public void setPeerEntityId(String id);

    /**
     * Sets the peer entity metadata.
     * 
     * @param metadata peer entity metadata
     */
    public void setPeerEntityMetadata(EntityDescriptor metadata);

    /**
     * Sets the role of the peer entity.
     * 
     * @param role role of the peer entity
     */
    public void setPeerEntityRole(QName role);

    /**
     * Sets the role metadata for the peer entity.
     * 
     * @param role role metadata for the peer entity
     */
    public void setPeerEntityRoleMetadata(RoleDescriptor role);

    /**
     * Sets the relay state associated with the message.
     * 
     * @param relayState relay state associated with the message
     */
    public void setRelayState(String relayState);

    /**
     * Sets the subject's SAML name identifier.
     * 
     * @param identifier subject's SAML name identifier
     */
    public void setSubjectNameIdentifier(NameIdentifierType identifier);
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy