001/**
002 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
003 *
004 * Copyright (c) 2006 Sun Microsystems Inc. All Rights Reserved
005 *
006 * The contents of this file are subject to the terms
007 * of the Common Development and Distribution License
008 * (the License). You may not use this file except in
009 * compliance with the License.
010 *
011 * You can obtain a copy of the License at
012 * https://opensso.dev.java.net/public/CDDLv1.0.html or
013 * opensso/legal/CDDLv1.0.txt
014 * See the License for the specific language governing
015 * permission and limitations under the License.
016 *
017 * When distributing Covered Code, include this CDDL
018 * Header Notice in each file and include the License file
019 * at opensso/legal/CDDLv1.0.txt.
020 * If applicable, add the following below the CDDL Header,
021 * with the fields enclosed by brackets [] replaced by
022 * your own identifying information:
023 * "Portions Copyrighted [year] [name of copyright owner]"
024 *
025 * $Id: AuthnRequest.java,v 1.2 2008/06/25 05:47:56 qcheng Exp $
026 *
027 */
028
029
030package com.sun.identity.saml2.protocol;
031
032import com.sun.identity.saml2.assertion.Conditions;
033import com.sun.identity.saml2.assertion.Subject;
034import com.sun.identity.saml2.common.SAML2Exception;
035
036/** 
037 *  The <code>AuthnRequest</code> interface defines methods for properties
038 *  required by an authentication request.
039 *
040 *  @supported.all.api
041 */
042
043public interface AuthnRequest extends RequestAbstract {
044    
045    /** 
046     * Returns the <code>Subject</code> object. 
047     *
048     * @return the <code>Subject</code> object. 
049     * @see #setSubject(Subject)
050     */
051    public Subject getSubject();
052    
053    /** 
054     * Sets the <code>Subject</code> object. 
055     *
056     * @param subject the new <code>Subject</code> object. 
057     * @throws SAML2Exception if the object is immutable.
058     * @see #getSubject
059     */
060    public void setSubject(Subject subject) throws SAML2Exception;
061    
062    /** 
063     * Returns the <code>NameIDPolicy</code> object.
064     *
065     * @return the <code>NameIDPolicy</code> object. 
066     * @see #setNameIDPolicy(NameIDPolicy)
067     */
068    public NameIDPolicy getNameIDPolicy();
069    
070    /** 
071     * Sets the <code>NameIDPolicy</code> object. 
072     *
073     * @param nameIDPolicy the new <code>NameIDPolicy</code> object. 
074     * @throws SAML2Exception if the object is immutable.
075     * @see #getNameIDPolicy
076     */
077    
078    public void setNameIDPolicy(NameIDPolicy nameIDPolicy) 
079    throws SAML2Exception;
080    
081    /** 
082     * Returns the <code>Conditions</code> object.
083     *
084     * @return the <code>Conditions</code> object. 
085     * @see #setConditions(Conditions)
086     */
087    public Conditions getConditions();
088    
089    /** 
090     * Sets the <code>Conditions</code> object. 
091     *
092     * @param conditions the new <code>Conditions</code> object.
093     * @throws SAML2Exception if the object is immutable.
094     * @see #getConditions
095     */
096    
097    public void setConditions(Conditions conditions) throws SAML2Exception;
098    
099    /** 
100     * Returns the <code>RequestedAuthnContext</code> object. 
101     *
102     * @return the <code>RequestAuthnContext</code> object. 
103     * @see #setRequestedAuthnContext(RequestedAuthnContext)
104     */
105    
106    public RequestedAuthnContext getRequestedAuthnContext();
107    
108    /** 
109     * Sets the <code>RequestedAuthnContext</code>. 
110     *
111     * @param reqAuthnContext the new <code>RequestedAuthnContext</code>
112     *        object.
113     * @throws SAML2Exception if the object is immutable.
114     * @see #getRequestedAuthnContext
115     */
116    public void setRequestedAuthnContext(RequestedAuthnContext reqAuthnContext)
117    throws SAML2Exception;
118    
119    /** 
120     * Sets the <code>Scoping</code> object. 
121     *
122     * @param scoping the new <code>Scoping</code> Object.
123     * @throws SAML2Exception if the object is immutable.
124     * @see #getScoping
125     */
126    public void setScoping(Scoping scoping) throws SAML2Exception;
127    
128    /** 
129     * Returns the <code>Scoping</code> object. 
130     *
131     * @return the <code>Scoping</code> object. 
132     * @see #setScoping(Scoping)
133     */
134    public Scoping getScoping();
135    
136    /** 
137     * Returns value of <code>isForceAuthn</code> attribute.
138     *
139     * @return value of <code>isForceAuthn</code> attribute.
140     */
141    public Boolean isForceAuthn();
142    
143    /** 
144     * Sets the value of the <code>ForceAuthn</code> attribute.
145     *
146     * @param value the value of <code>ForceAuthn</code> attribute.
147     * @throws SAML2Exception if the object is immutable.
148     */
149    public void setForceAuthn(Boolean value)    
150    throws SAML2Exception;
151    
152    /** 
153     * Returns the value of the <code>isPassive</code> attribute.
154     *
155     * @return value of <code>isPassive</code> attribute.
156     */
157    public Boolean isPassive();
158    
159    /** 
160     * Sets the value of the <code>IsPassive</code> attribute.
161     *
162     * @param value Value of <code>IsPassive</code> attribute.
163     * @throws SAML2Exception if the object is immutable.
164     */
165    public void setIsPassive(Boolean value)     
166    throws SAML2Exception;
167    
168    /** 
169     * Sets the value of the <code>ProtocolBinding</code> attribute.
170     *
171     * @param protocolBinding value of the <code>ProtocolBinding</code>
172     *        attribute.
173     * @throws SAML2Exception if the object is immutable.
174     * @see #getProtocolBinding
175     */
176    public void setProtocolBinding(String protocolBinding)   
177    throws SAML2Exception;
178    
179    /** 
180     * Returns the value of the <code>ProtocolBinding</code> attribute.
181     *
182     * @return the value of <code>ProtocolBinding</code> attribute.
183     * @see #setProtocolBinding(String)
184     */
185    public String getProtocolBinding();
186    
187    /** 
188     * Returns the value of the <code>AssertionConsumerServiceURL</code>
189     * attribute.
190     *
191     * @return the value of <code>AssertionConsumerServiceURL</code> attribute.
192     * @see #setAssertionConsumerServiceURL(String)
193     */
194    public String getAssertionConsumerServiceURL();
195    
196    /** 
197     * Sets the value of the <code>AssertionConsumerServiceURL</code> 
198     * attribute.
199     *
200     * @param url the value of <code>AssertionConsumerServiceURL</code> 
201     *        attribute.
202     * @throws SAML2Exception if the object is immutable.
203     * @see #getAssertionConsumerServiceURL
204     */
205    public void setAssertionConsumerServiceURL(String url) throws SAML2Exception;
206    
207    /** 
208     * Returns the value of the <code>AssertionConsumerServiceIndex</code> 
209     * attribute.
210     *
211     * @return value of the <code>AssertionConsumerServiceIndex<code> 
212     *         attribute.
213     * @see #setAssertionConsumerServiceIndex(Integer)
214     */
215    public Integer getAssertionConsumerServiceIndex();
216    
217    /** 
218     * Sets the value of the <code>AssertionConsumerServiceIndex</code> 
219     * attribute.
220     *
221     * @param index value of the <code>AssertionConsumerServiceIndex</code>
222     *        attribute.
223     * @throws SAML2Exception if the object is immutable.
224     * @see #getAssertionConsumerServiceIndex
225     */
226    public void setAssertionConsumerServiceIndex(Integer index)
227    throws SAML2Exception;
228    
229
230    /**
231     * Returns the value of the <code>AttributeConsumingServiceIndex</code>
232     * attribute.
233     *
234     * @return value of the <code>AttributeConsumingServiceIndex<code> 
235     *         attribute.
236     * @see #setAttributeConsumingServiceIndex(Integer)
237     */
238    public Integer getAttributeConsumingServiceIndex();
239
240    /**
241     * Sets the value of the <code>AttributeConsumingServiceIndex</code>
242     * attribute.
243     *
244     * @param index value of the <code>AttributeConsumingServiceIndex</code>
245     *        attribute.
246     * @throws SAML2Exception if the object is immutable.
247     * @see #getAttributeConsumingServiceIndex
248     */
249    public void setAttributeConsumingServiceIndex(Integer index)
250    throws SAML2Exception;
251
252    /** 
253     * Sets the <code>ProviderName</code> attribute value.
254     *
255     * @param providerName value of the <code>ProviderName</code> attribute.
256     * @throws SAML2Exception if the object is immutable.
257     * @see #getProviderName
258     */
259    public void setProviderName(String providerName) throws SAML2Exception;
260    
261    /** 
262     * Returns the <code>ProviderName</code> attribute value.
263     *
264     * @return value of the <code>ProviderName</code> attribute value.
265     * @see #setProviderName(String)
266     */
267    public String getProviderName();
268}