2 * The Shibboleth License, Version 1. Copyright (c) 2002 University Corporation for Advanced Internet Development, Inc.
3 * All rights reserved Redistribution and use in source and binary forms, with or without modification, are permitted
4 * provided that the following conditions are met: Redistributions of source code must retain the above copyright
5 * notice, this list of conditions and the following disclaimer. Redistributions in binary form must reproduce the above
6 * copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials
7 * provided with the distribution, if any, must include the following acknowledgment: "This product includes software
8 * developed by the University Corporation for Advanced Internet Development <http://www.ucaid.edu> Internet2 Project.
9 * Alternately, this acknowledegement may appear in the software itself, if and wherever such third-party
10 * acknowledgments normally appear. Neither the name of Shibboleth nor the names of its contributors, nor Internet2, nor
11 * the University Corporation for Advanced Internet Development, Inc., nor UCAID may be used to endorse or promote
12 * products derived from this software without specific prior written permission. For written permission, please contact
13 * shibboleth@shibboleth.org Products derived from this software may not be called Shibboleth, Internet2, UCAID, or the
14 * University Corporation for Advanced Internet Development, nor may Shibboleth appear in their name, without prior
15 * written permission of the University Corporation for Advanced Internet Development. THIS SOFTWARE IS PROVIDED BY THE
16 * COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND WITH ALL FAULTS. ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
17 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT ARE
18 * DISCLAIMED AND THE ENTIRE RISK OF SATISFACTORY QUALITY, PERFORMANCE, ACCURACY, AND EFFORT IS WITH LICENSEE. IN NO
19 * EVENT SHALL THE COPYRIGHT OWNER, CONTRIBUTORS OR THE UNIVERSITY CORPORATION FOR ADVANCED INTERNET DEVELOPMENT, INC.
20 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
21 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
22 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
23 * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 package edu.internet2.middleware.shibboleth.common;
32 * Defines a relationship between service providers and an identity provider. In Shibboleth parlance, a relying party
33 * represents a SP or group of SPs (perhaps a federation).
35 * @author Walter Hoehn
37 public interface RelyingParty extends ServiceProvider {
40 * Returns the name of the relying party. If the relying party is a Shibboleth SP (not a group), this function
41 * returns the same thing as {@link #getProviderId}.
43 * @return name of the relying party
45 public String getName();
48 * Returns the appropriate identity provider to create assertions for this relying party.
50 * @return the identity provider
52 public IdentityProvider getIdentityProvider();
55 * Returns the id of the name format that should be used in authentication assertions issued to this
56 * {@link RelyingParty}.
58 * @return the id for the format
60 public String getHSNameFormatId();
63 * Returns a boolean indication of whether this {@link RelyingParty}is running <= Shibboleth v1.1. Used to
64 * ensure backward compatibility.
66 public boolean isLegacyProvider();
69 * Returns the location of the Shibboleth Attribute Authority that should answer requests for this
70 * {@link RelyingParty}.
74 public URL getAAUrl();
77 * The authentication method that should be included in assertions to the {@link RelyingParty}, if one is not found
78 * in HTTP request headers.
80 * @return the identifier for the method
82 public URI getDefaultAuthMethod();
85 * A boolean indication of whether internal errors should be transmitted to this {@link RelyingParty}
87 public boolean passThruErrors();
90 * A boolean indication of whether attributes should be pushed without regard for the profile (POST vs. Artifact).
91 * This should be be mutually exclusive with forceAttributeNoPush().
93 public boolean forceAttributePush();
96 * A boolean indication of whether attributes should be NOT pushed without regard for the profile (POST vs.
99 public boolean forceAttributeNoPush();
102 * A boolean indication of whether the default SSO browser profile should be POST or Artifact. "true" indicates POST
103 * and "false" indicates Artifact.
105 public boolean defaultToPOSTProfile();
108 * A boolean indication of whether assertions issued to this Relying Party should be digitall signed (This is in
109 * addition to profile-specific signing).
111 public boolean wantsAssertionsSigned();