a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster/**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Copyright (c) 2008 Sun Microsystems Inc. All Rights Reserved
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * The contents of this file are subject to the terms
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * of the Common Development and Distribution License
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * (the License). You may not use this file except in
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * compliance with the License.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * You can obtain a copy of the License at
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * https://opensso.dev.java.net/public/CDDLv1.0.html or
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * opensso/legal/CDDLv1.0.txt
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * See the License for the specific language governing
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * permission and limitations under the License.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * When distributing Covered Code, include this CDDL
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Header Notice in each file and include the License file
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * at opensso/legal/CDDLv1.0.txt.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * If applicable, add the following below the CDDL Header,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * with the fields enclosed by brackets [] replaced by
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * your own identifying information:
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * "Portions Copyrighted [year] [name of copyright owner]"
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * $Id: ConsumerSiteAttributeMapper.java,v 1.3 2009/01/21 19:04:34 weisun2 Exp $
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterpackage com.sun.identity.saml.plugins;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport com.sun.identity.saml.common.SAMLException;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport javax.servlet.http.HttpServletRequest;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport javax.servlet.http.HttpServletResponse;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterimport java.util.List;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster/**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * This interface needs to be implemented by an trusted assertion consumer site
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * (a partner) to return a list of <code>Attribute</code> objects to be
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * returned as <code>AttributeStatements</code> elements, as part of the
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Authentication Assertion returned to the partner during the
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * SSO scenario of Browser Artifact and POST profile.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * <p>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Different partner would need to have a different implementation
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * of the interface. The mappings between the partner source ID and
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * the implementation class are configured at the <code>Partner URLs</code>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * field in SAML service.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @supported.all.api
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterpublic interface ConsumerSiteAttributeMapper {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Returns <code>List</code> of <code>Attribute</code> objects
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param token User's session.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param request The HttpServletRerquest object of the request which
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * may contains query attributes to be included in the
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * Assertion. This could be null if unavailable.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param response The HttpServletResponse object. This could be null
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * if unavailable.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @param targetURL value for TARGET query parameter when the user
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * accessing the SAML aware servlet or post profile
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * servlet. This could be null if unavailabl
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @return <code>List</code> if <code>Attribute</code> objects.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * <code>Attribute</code> is defined in the SAML SDK as part of
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * <code>com.sun.identity.saml.assertion</code> package.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * @throws SAMLException if attributes cannot be obtained.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster public List getAttributes(Object token, HttpServletRequest request,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster HttpServletResponse response, String targetURL)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster throws SAMLException;
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster}