comparison libs/httpcomponents-client-4.0-beta1/javadoc/httpclient/org/apache/http/auth/AuthScheme.html @ 5:0be9d53a6967

editor for annotations
author dwinter
date Tue, 13 Dec 2011 17:43:46 +0100
parents
children
comparison
equal deleted inserted replaced
4:c32080f364c6 5:0be9d53a6967
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
2 <!--NewPage-->
3 <HTML>
4 <HEAD>
5 <!-- Generated by javadoc (build 1.5.0_11) on Sat Aug 23 11:49:50 GMT+01:00 2008 -->
6 <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
7 <TITLE>
8 AuthScheme (HttpClient 4.0-beta1 API)
9 </TITLE>
10
11 <META NAME="keywords" CONTENT="org.apache.http.auth.AuthScheme interface">
12
13 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
14
15 <SCRIPT type="text/javascript">
16 function windowTitle()
17 {
18 parent.document.title="AuthScheme (HttpClient 4.0-beta1 API)";
19 }
20 </SCRIPT>
21 <NOSCRIPT>
22 </NOSCRIPT>
23
24 </HEAD>
25
26 <BODY BGCOLOR="white" onload="windowTitle();">
27
28
29 <!-- ========= START OF TOP NAVBAR ======= -->
30 <A NAME="navbar_top"><!-- --></A>
31 <A HREF="#skip-navbar_top" title="Skip navigation links"></A>
32 <TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
33 <TR>
34 <TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
35 <A NAME="navbar_top_firstrow"><!-- --></A>
36 <TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
37 <TR ALIGN="center" VALIGN="top">
38 <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
39 <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
40 <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
41 <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/AuthScheme.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
42 <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
43 <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
44 <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
45 <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
46 </TR>
47 </TABLE>
48 </TD>
49 <TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
50 </EM>
51 </TD>
52 </TR>
53
54 <TR>
55 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
56 &nbsp;<A HREF="../../../../org/apache/http/auth/AuthenticationException.html" title="class in org.apache.http.auth"><B>PREV CLASS</B></A>&nbsp;
57 &nbsp;<A HREF="../../../../org/apache/http/auth/AuthSchemeFactory.html" title="interface in org.apache.http.auth"><B>NEXT CLASS</B></A></FONT></TD>
58 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
59 <A HREF="../../../../index.html?org/apache/http/auth/AuthScheme.html" target="_top"><B>FRAMES</B></A> &nbsp;
60 &nbsp;<A HREF="AuthScheme.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
61 &nbsp;<SCRIPT type="text/javascript">
62 <!--
63 if(window==top) {
64 document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
65 }
66 //-->
67 </SCRIPT>
68 <NOSCRIPT>
69 <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
70 </NOSCRIPT>
71
72
73 </FONT></TD>
74 </TR>
75 <TR>
76 <TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
77 SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
78 <TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
79 DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
80 </TR>
81 </TABLE>
82 <A NAME="skip-navbar_top"></A>
83 <!-- ========= END OF TOP NAVBAR ========= -->
84
85 <HR>
86 <!-- ======== START OF CLASS DATA ======== -->
87 <H2>
88 <FONT SIZE="-1">
89 org.apache.http.auth</FONT>
90 <BR>
91 Interface AuthScheme</H2>
92 <DL>
93 <DT><B>All Known Implementing Classes:</B> <DD><A HREF="../../../../org/apache/http/impl/auth/AuthSchemeBase.html" title="class in org.apache.http.impl.auth">AuthSchemeBase</A>, <A HREF="../../../../org/apache/http/impl/auth/BasicScheme.html" title="class in org.apache.http.impl.auth">BasicScheme</A>, <A HREF="../../../../org/apache/http/impl/auth/DigestScheme.html" title="class in org.apache.http.impl.auth">DigestScheme</A>, <A HREF="../../../../org/apache/http/impl/auth/NTLMScheme.html" title="class in org.apache.http.impl.auth">NTLMScheme</A>, <A HREF="../../../../org/apache/http/impl/auth/RFC2617Scheme.html" title="class in org.apache.http.impl.auth">RFC2617Scheme</A></DD>
94 </DL>
95 <HR>
96 <DL>
97 <DT><PRE>public interface <B>AuthScheme</B></DL>
98 </PRE>
99
100 <P>
101 <p>
102 This interface represents an abstract challenge-response oriented
103 authentication scheme.
104 </p>
105 <p>
106 An authentication scheme should be able to support the following
107 functions:
108 <ul>
109 <li>Parse and process the challenge sent by the targer server
110 in response to request for a protected resource
111 <li>Provide its textual designation
112 <li>Provide its parameters, if available
113 <li>Provide the realm this authentication scheme is applicable to,
114 if available
115 <li>Generate authorization string for the given set of credentials,
116 request method and URI as specificed in the HTTP request line
117 in response to the actual authorization challenge
118 </ul>
119 </p>
120 <p>
121 Authentication schemes may ignore method name and URI parameters
122 if they are not relevant for the given authentication mechanism
123 </p>
124 <p>
125 Authentication schemes may be stateful involving a series of
126 challenge-response exchanges
127 </p>
128 <P>
129
130 <P>
131 <DL>
132 <DT><B>Since:</B></DT>
133 <DD>4.0</DD>
134 <DT><B>Author:</B></DT>
135 <DD><a href="mailto:oleg at ural.ru">Oleg Kalnichevski</a>, <a href="mailto:adrian@ephox.com">Adrian Sutton</a></DD>
136 </DL>
137 <HR>
138
139 <P>
140
141 <!-- ========== METHOD SUMMARY =========== -->
142
143 <A NAME="method_summary"><!-- --></A>
144 <TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
145 <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
146 <TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
147 <B>Method Summary</B></FONT></TH>
148 </TR>
149 <TR BGCOLOR="white" CLASS="TableRowColor">
150 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
151 <CODE>&nbsp;org.apache.http.Header</CODE></FONT></TD>
152 <TD><CODE><B><A HREF="../../../../org/apache/http/auth/AuthScheme.html#authenticate(org.apache.http.auth.Credentials, org.apache.http.HttpRequest)">authenticate</A></B>(<A HREF="../../../../org/apache/http/auth/Credentials.html" title="interface in org.apache.http.auth">Credentials</A>&nbsp;credentials,
153 org.apache.http.HttpRequest&nbsp;request)</CODE>
154
155 <BR>
156 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Produces an authorization string for the given set of <A HREF="../../../../org/apache/http/auth/Credentials.html" title="interface in org.apache.http.auth"><CODE>Credentials</CODE></A>.</TD>
157 </TR>
158 <TR BGCOLOR="white" CLASS="TableRowColor">
159 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
160 <CODE>&nbsp;java.lang.String</CODE></FONT></TD>
161 <TD><CODE><B><A HREF="../../../../org/apache/http/auth/AuthScheme.html#getParameter(java.lang.String)">getParameter</A></B>(java.lang.String&nbsp;name)</CODE>
162
163 <BR>
164 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns authentication parameter with the given name, if available.</TD>
165 </TR>
166 <TR BGCOLOR="white" CLASS="TableRowColor">
167 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
168 <CODE>&nbsp;java.lang.String</CODE></FONT></TD>
169 <TD><CODE><B><A HREF="../../../../org/apache/http/auth/AuthScheme.html#getRealm()">getRealm</A></B>()</CODE>
170
171 <BR>
172 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns authentication realm.</TD>
173 </TR>
174 <TR BGCOLOR="white" CLASS="TableRowColor">
175 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
176 <CODE>&nbsp;java.lang.String</CODE></FONT></TD>
177 <TD><CODE><B><A HREF="../../../../org/apache/http/auth/AuthScheme.html#getSchemeName()">getSchemeName</A></B>()</CODE>
178
179 <BR>
180 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns textual designation of the given authentication scheme.</TD>
181 </TR>
182 <TR BGCOLOR="white" CLASS="TableRowColor">
183 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
184 <CODE>&nbsp;boolean</CODE></FONT></TD>
185 <TD><CODE><B><A HREF="../../../../org/apache/http/auth/AuthScheme.html#isComplete()">isComplete</A></B>()</CODE>
186
187 <BR>
188 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Authentication process may involve a series of challenge-response exchanges.</TD>
189 </TR>
190 <TR BGCOLOR="white" CLASS="TableRowColor">
191 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
192 <CODE>&nbsp;boolean</CODE></FONT></TD>
193 <TD><CODE><B><A HREF="../../../../org/apache/http/auth/AuthScheme.html#isConnectionBased()">isConnectionBased</A></B>()</CODE>
194
195 <BR>
196 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Tests if the authentication scheme is provides authorization on a per
197 connection basis instead of usual per request basis</TD>
198 </TR>
199 <TR BGCOLOR="white" CLASS="TableRowColor">
200 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
201 <CODE>&nbsp;void</CODE></FONT></TD>
202 <TD><CODE><B><A HREF="../../../../org/apache/http/auth/AuthScheme.html#processChallenge(org.apache.http.Header)">processChallenge</A></B>(org.apache.http.Header&nbsp;header)</CODE>
203
204 <BR>
205 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Processes the given challenge token.</TD>
206 </TR>
207 </TABLE>
208 &nbsp;
209 <P>
210
211 <!-- ============ METHOD DETAIL ========== -->
212
213 <A NAME="method_detail"><!-- --></A>
214 <TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
215 <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
216 <TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
217 <B>Method Detail</B></FONT></TH>
218 </TR>
219 </TABLE>
220
221 <A NAME="processChallenge(org.apache.http.Header)"><!-- --></A><H3>
222 processChallenge</H3>
223 <PRE>
224 void <B>processChallenge</B>(org.apache.http.Header&nbsp;header)
225 throws <A HREF="../../../../org/apache/http/auth/MalformedChallengeException.html" title="class in org.apache.http.auth">MalformedChallengeException</A></PRE>
226 <DL>
227 <DD>Processes the given challenge token. Some authentication schemes
228 may involve multiple challenge-response exchanges. Such schemes must be able
229 to maintain the state information when dealing with sequential challenges
230 <P>
231 <DD><DL>
232 <DT><B>Parameters:</B><DD><CODE>header</CODE> - the challenge header
233 <DT><B>Throws:</B>
234 <DD><CODE><A HREF="../../../../org/apache/http/auth/MalformedChallengeException.html" title="class in org.apache.http.auth">MalformedChallengeException</A></CODE></DL>
235 </DD>
236 </DL>
237 <HR>
238
239 <A NAME="getSchemeName()"><!-- --></A><H3>
240 getSchemeName</H3>
241 <PRE>
242 java.lang.String <B>getSchemeName</B>()</PRE>
243 <DL>
244 <DD>Returns textual designation of the given authentication scheme.
245 <P>
246 <DD><DL>
247
248 <DT><B>Returns:</B><DD>the name of the given authentication scheme</DL>
249 </DD>
250 </DL>
251 <HR>
252
253 <A NAME="getParameter(java.lang.String)"><!-- --></A><H3>
254 getParameter</H3>
255 <PRE>
256 java.lang.String <B>getParameter</B>(java.lang.String&nbsp;name)</PRE>
257 <DL>
258 <DD>Returns authentication parameter with the given name, if available.
259 <P>
260 <DD><DL>
261 <DT><B>Parameters:</B><DD><CODE>name</CODE> - The name of the parameter to be returned
262 <DT><B>Returns:</B><DD>the parameter with the given name</DL>
263 </DD>
264 </DL>
265 <HR>
266
267 <A NAME="getRealm()"><!-- --></A><H3>
268 getRealm</H3>
269 <PRE>
270 java.lang.String <B>getRealm</B>()</PRE>
271 <DL>
272 <DD>Returns authentication realm. If the concept of an authentication
273 realm is not applicable to the given authentication scheme, returns
274 <code>null</code>.
275 <P>
276 <DD><DL>
277
278 <DT><B>Returns:</B><DD>the authentication realm</DL>
279 </DD>
280 </DL>
281 <HR>
282
283 <A NAME="isConnectionBased()"><!-- --></A><H3>
284 isConnectionBased</H3>
285 <PRE>
286 boolean <B>isConnectionBased</B>()</PRE>
287 <DL>
288 <DD>Tests if the authentication scheme is provides authorization on a per
289 connection basis instead of usual per request basis
290 <P>
291 <DD><DL>
292
293 <DT><B>Returns:</B><DD><tt>true</tt> if the scheme is connection based, <tt>false</tt>
294 if the scheme is request based.</DL>
295 </DD>
296 </DL>
297 <HR>
298
299 <A NAME="isComplete()"><!-- --></A><H3>
300 isComplete</H3>
301 <PRE>
302 boolean <B>isComplete</B>()</PRE>
303 <DL>
304 <DD>Authentication process may involve a series of challenge-response exchanges.
305 This method tests if the authorization process has been completed, either
306 successfully or unsuccessfully, that is, all the required authorization
307 challenges have been processed in their entirety.
308 <P>
309 <DD><DL>
310
311 <DT><B>Returns:</B><DD><tt>true</tt> if the authentication process has been completed,
312 <tt>false</tt> otherwise.</DL>
313 </DD>
314 </DL>
315 <HR>
316
317 <A NAME="authenticate(org.apache.http.auth.Credentials, org.apache.http.HttpRequest)"><!-- --></A><H3>
318 authenticate</H3>
319 <PRE>
320 org.apache.http.Header <B>authenticate</B>(<A HREF="../../../../org/apache/http/auth/Credentials.html" title="interface in org.apache.http.auth">Credentials</A>&nbsp;credentials,
321 org.apache.http.HttpRequest&nbsp;request)
322 throws <A HREF="../../../../org/apache/http/auth/AuthenticationException.html" title="class in org.apache.http.auth">AuthenticationException</A></PRE>
323 <DL>
324 <DD>Produces an authorization string for the given set of <A HREF="../../../../org/apache/http/auth/Credentials.html" title="interface in org.apache.http.auth"><CODE>Credentials</CODE></A>.
325 <P>
326 <DD><DL>
327 <DT><B>Parameters:</B><DD><CODE>credentials</CODE> - The set of credentials to be used for athentication<DD><CODE>request</CODE> - The request being authenticated
328 <DT><B>Returns:</B><DD>the authorization string
329 <DT><B>Throws:</B>
330 <DD><CODE><A HREF="../../../../org/apache/http/auth/AuthenticationException.html" title="class in org.apache.http.auth">AuthenticationException</A></CODE> - if authorization string cannot
331 be generated due to an authentication failure</DL>
332 </DD>
333 </DL>
334 <!-- ========= END OF CLASS DATA ========= -->
335 <HR>
336
337
338 <!-- ======= START OF BOTTOM NAVBAR ====== -->
339 <A NAME="navbar_bottom"><!-- --></A>
340 <A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
341 <TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
342 <TR>
343 <TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
344 <A NAME="navbar_bottom_firstrow"><!-- --></A>
345 <TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
346 <TR ALIGN="center" VALIGN="top">
347 <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
348 <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
349 <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
350 <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/AuthScheme.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
351 <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
352 <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
353 <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
354 <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
355 </TR>
356 </TABLE>
357 </TD>
358 <TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
359 </EM>
360 </TD>
361 </TR>
362
363 <TR>
364 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
365 &nbsp;<A HREF="../../../../org/apache/http/auth/AuthenticationException.html" title="class in org.apache.http.auth"><B>PREV CLASS</B></A>&nbsp;
366 &nbsp;<A HREF="../../../../org/apache/http/auth/AuthSchemeFactory.html" title="interface in org.apache.http.auth"><B>NEXT CLASS</B></A></FONT></TD>
367 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
368 <A HREF="../../../../index.html?org/apache/http/auth/AuthScheme.html" target="_top"><B>FRAMES</B></A> &nbsp;
369 &nbsp;<A HREF="AuthScheme.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
370 &nbsp;<SCRIPT type="text/javascript">
371 <!--
372 if(window==top) {
373 document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
374 }
375 //-->
376 </SCRIPT>
377 <NOSCRIPT>
378 <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
379 </NOSCRIPT>
380
381
382 </FONT></TD>
383 </TR>
384 <TR>
385 <TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
386 SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
387 <TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
388 DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
389 </TR>
390 </TABLE>
391 <A NAME="skip-navbar_bottom"></A>
392 <!-- ======== END OF BOTTOM NAVBAR ======= -->
393
394 <HR>
395 Copyright © 1999-2008 <a href="http://www.apache.org/">Apache Software Foundation</a>. All Rights Reserved.
396 </BODY>
397 </HTML>