use the new session manager interface
[java-idp.git] / src / edu / internet2 / middleware / shibboleth / common / RelyingParty.java
1 /*
2  * Copyright [2005] [University Corporation for Advanced Internet Development, Inc.]
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17 package edu.internet2.middleware.shibboleth.common;
18
19 /**
20  * Defines a configuration relationship between service providers and an identity provider. In Shibboleth parlance, a
21  * relying party represents a SP or group of SPs (perhaps a federation).
22  * 
23  * @author Walter Hoehn
24  */
25 public interface RelyingParty {
26
27         /**
28          * Returns the appropriate identity provider to create assertions for this relying party.
29          * 
30          * @return the identity provider
31          */
32         public IdentityProvider getIdentityProvider();
33
34         /**
35          * A boolean indication of whether internal errors should be transmitted to this {@link RelyingParty}
36          */
37         public boolean passThruErrors();
38
39         /**
40          * A boolean indication of whether attributes should be pushed without regard for the profile (POST vs. Artifact).
41          * This should be be mutually exclusive with forceAttributeNoPush().
42          */
43         public boolean forceAttributePush();
44
45         /**
46          * A boolean indication of whether attributes should be NOT pushed without regard for the profile (POST vs.
47          * Artifact).
48          */
49         public boolean forceAttributeNoPush();
50
51         /**
52          * A boolean indication of whether the default SSO browser profile should be POST or Artifact. "true" indicates POST
53          * and "false" indicates Artifact.
54          */
55         public boolean defaultToPOSTProfile();
56
57         /**
58          * A boolean indication of whether assertions issued to this Relying Party should be digitally signed (This is in
59          * addition to profile-specific signing).
60          */
61         public boolean wantsAssertionsSigned();
62
63         /**
64          * A boolean indication of whether attributes sent with an authentication response should be included in the same
65          * assertion or left in a second assertion for compatibility with broken SAML products.
66          */
67         public boolean singleAssertion();
68
69         /**
70          * Returns the type of SAML Artifact that this appropriate for use with this Relying Party.
71          */
72         public int getPreferredArtifactType();
73
74         /**
75          * Returns the default "TARGET" attribute to be used with the artifact profile or null if none is specified.
76          */
77         public String getDefaultTarget();
78
79         /**
80          * Provides a mechanism for extension developers to pass relying party specific data into their extensions.
81          */
82         public String getCustomAttribute(String name);
83
84 }