Final fixes for getting GSSWeb to work again.
[gssweb.git] / docs / js_api_design.html
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
2 <HTML>
3 <HEAD>
4         <META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=windows-1252">
5         <TITLE></TITLE>
6         <META NAME="GENERATOR" CONTENT="LibreOffice 4.1.4.2 (Windows)">
7         <META NAME="AUTHOR" CONTENT="Mark Donnelly">
8         <META NAME="CREATED" CONTENT="20140225;161057726000000">
9         <META NAME="CHANGEDBY" CONTENT="Mark Donnelly">
10         <META NAME="CHANGED" CONTENT="20140314;161316517000000">
11         <STYLE TYPE="text/css">
12         <!--
13                 @page { margin: 0.79in }
14                 P { margin-bottom: 0.08in }
15                 H3 { margin-bottom: 0.08in }
16                 H3.western { font-family: "Arial", sans-serif }
17                 H3.cjk { font-family: "Microsoft YaHei" }
18                 H3.ctl { font-family: "Mangal" }
19                 TD P { margin-bottom: 0in }
20                 TH P { margin-bottom: 0in }
21                 A:link { so-language: zxx }
22         -->
23         </STYLE>
24 </HEAD>
25 <BODY LANG="en-US" DIR="LTR">
26 <H3 CLASS="western" ALIGN=LEFT>The gssweb API</H3>
27 <P STYLE="margin-bottom: 0in">The gssweb web authentication libraries
28 implement user authentication using the gssweb protocols.  The
29 libraries add an a new gssweb getter on the window.navigator object,
30 which is the means of accessing the gssweb API. 
31 </P>
32 <P STYLE="margin-bottom: 0in"><BR>
33 </P>
34 <P STYLE="margin-top: 0.17in; page-break-after: avoid"><FONT FACE="Arial, sans-serif"><FONT SIZE=4>The
35 gssweb getter</FONT></FONT></P>
36 <P STYLE="margin-bottom: 0in">The gssweb getter is one call:</P>
37 <P STYLE="margin-bottom: 0in"><BR>
38 </P>
39 <TABLE WIDTH=100% CELLPADDING=4 CELLSPACING=0>
40         <COL WIDTH=256*>
41         <THEAD>
42                 <TR>
43                         <TH WIDTH=100% VALIGN=TOP BGCOLOR="#99ccff" STYLE="border: 1px solid #000000; padding: 0.04in">
44                                 <P STYLE="background: #99ccff">GSSWEB GETTER</P>
45                         </TH>
46                 </TR>
47         </THEAD>
48         <TBODY>
49                 <TR>
50                         <TD WIDTH=100% VALIGN=TOP STYLE="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; padding-top: 0in; padding-bottom: 0.04in; padding-left: 0.04in; padding-right: 0.04in">
51                                 <P><FONT FACE="Lucida Console, monospace"><FONT SIZE=2>gssweb =
52                                 navigator.gssweb(<FONT FACE="Lucida Console, monospace"><FONT SIZE=2>);</FONT></FONT></FONT></FONT></P>
53                         </TD>
54                 </TR>
55         </TBODY>
56 </TABLE>
57 <P STYLE="margin-bottom: 0in"><BR>
58 </P>
59 <P STYLE="margin-bottom: 0in">This method will return one gssweb
60 session object per origin.  Applications should not assume that this
61 object will represent an authenticated session.</P>
62 <H3 CLASS="western"><BR><BR>
63 </H3>
64 <H3 CLASS="western" STYLE="page-break-before: always">The gssweb
65 Object 
66 </H3>
67 <P STYLE="margin-top: 0.17in; page-break-after: avoid"><FONT FACE="Arial, sans-serif"><FONT SIZE=4>Properties</FONT></FONT></P>
68 <P STYLE="margin-bottom: 0in">The gssweb object provides the
69 following properties:</P>
70 <TABLE WIDTH=656 CELLPADDING=4 CELLSPACING=0>
71         <COL WIDTH=173>
72         <COL WIDTH=465>
73         <TR>
74                 <TH COLSPAN=2 WIDTH=646 VALIGN=TOP BGCOLOR="#99ccff" STYLE="border: 1px solid #000000; padding: 0.04in">
75                         <P>GSSWEB PROPERTIES</P>
76                 </TH>
77         </TR>
78         <TR VALIGN=TOP>
79                 <TD WIDTH=173 STYLE="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0in; padding-bottom: 0.04in; padding-left: 0.04in; padding-right: 0in">
80                         <P><FONT FACE="Lucida Console, monospace"><FONT SIZE=2>version</FONT></FONT></P>
81                 </TD>
82                 <TD WIDTH=465 STYLE="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; padding-top: 0in; padding-bottom: 0.04in; padding-left: 0.04in; padding-right: 0.04in">
83                         <P>The version of the gssweb library</P>
84                 </TD>
85         </TR>
86         <TR VALIGN=TOP>
87                 <TD WIDTH=173 STYLE="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0in; padding-bottom: 0.04in; padding-left: 0.04in; padding-right: 0in">
88                         <P><FONT FACE="Lucida Console, monospace"><FONT SIZE=2>serverPath</FONT></FONT></P>
89                 </TD>
90                 <TD WIDTH=465 STYLE="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; padding-top: 0in; padding-bottom: 0.04in; padding-left: 0.04in; padding-right: 0.04in">
91                         <P>The path on the web server where authentication and release can
92                         occur</P>
93                 </TD>
94         </TR>
95         <TR VALIGN=TOP>
96                 <TD WIDTH=173 STYLE="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0in; padding-bottom: 0.04in; padding-left: 0.04in; padding-right: 0in">
97                         <P><FONT FACE="Lucida Console, monospace"><FONT SIZE=2>authenticationState</FONT></FONT></P>
98                 </TD>
99                 <TD WIDTH=465 STYLE="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; padding-top: 0in; padding-bottom: 0.04in; padding-left: 0.04in; padding-right: 0.04in">
100                         <P>The current authentication state</P>
101                 </TD>
102         </TR>
103         <TR VALIGN=TOP>
104                 <TD WIDTH=173 STYLE="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0in; padding-bottom: 0.04in; padding-left: 0.04in; padding-right: 0in">
105                         <P><FONT FACE="Lucida Console, monospace"><FONT SIZE=2>credential</FONT></FONT></P>
106                 </TD>
107                 <TD WIDTH=465 STYLE="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; padding-top: 0in; padding-bottom: 0.04in; padding-left: 0.04in; padding-right: 0.04in">
108                         <P>The credential used for authentication, if known</P>
109                 </TD>
110         </TR>
111         <TR VALIGN=TOP>
112                 <TD WIDTH=173 STYLE="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0in; padding-bottom: 0.04in; padding-left: 0.04in; padding-right: 0in">
113                         <P><FONT FACE="Lucida Console, monospace"><FONT SIZE=2>onAuthenticateSuccess</FONT></FONT></P>
114                 </TD>
115                 <TD WIDTH=465 STYLE="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; padding-top: 0in; padding-bottom: 0.04in; padding-left: 0.04in; padding-right: 0.04in">
116                         <P>The function called upon successful authentication</P>
117                 </TD>
118         </TR>
119         <TR VALIGN=TOP>
120                 <TD WIDTH=173 STYLE="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0in; padding-bottom: 0.04in; padding-left: 0.04in; padding-right: 0in">
121                         <P><FONT FACE="Lucida Console, monospace"><FONT SIZE=2>onAuthenticateError</FONT></FONT></P>
122                 </TD>
123                 <TD WIDTH=465 STYLE="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; padding-top: 0in; padding-bottom: 0.04in; padding-left: 0.04in; padding-right: 0.04in">
124                         <P>The function called upon error in authentication</P>
125                 </TD>
126         </TR>
127         <TR VALIGN=TOP>
128                 <TD WIDTH=173 STYLE="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0in; padding-bottom: 0.04in; padding-left: 0.04in; padding-right: 0in">
129                         <P><FONT FACE="Lucida Console, monospace"><FONT SIZE=2>onRelease</FONT></FONT></P>
130                 </TD>
131                 <TD WIDTH=465 STYLE="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; padding-top: 0in; padding-bottom: 0.04in; padding-left: 0.04in; padding-right: 0.04in">
132                         <P>The function called upon release of the authentication session</P>
133                 </TD>
134         </TR>
135 </TABLE>
136 <P STYLE="margin-left: 0.98in; text-indent: -0.9in; margin-top: 0.17in; page-break-after: avoid">
137 <FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 10pt"><B>version</B></FONT></FONT></P>
138 <P STYLE="margin-left: 0.49in">The version property is the version
139 number for the gssweb library.</P>
140 <P STYLE="margin-left: 0.98in; text-indent: -0.9in; margin-top: 0.17in; page-break-after: avoid">
141 <FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 10pt"><B>serverPath</B></FONT></FONT></P>
142 <P STYLE="margin-left: 0.49in">The serverPath property specifies the
143 path to the gssweb endpoint on the server.  This endpoint must exist
144 on the origin server for the current web page.  The system will
145 append '<FONT FACE="Lucida Console, monospace"><FONT SIZE=2>/authenticate</FONT></FONT>'
146 and '<FONT FACE="Lucida Console, monospace"><FONT SIZE=2>/</FONT></FONT><FONT FACE="Lucida Console, monospace"><FONT SIZE=2>release</FONT></FONT>'
147 to the serverPath when issuing requests for the <FONT FACE="Lucida Console, monospace"><FONT SIZE=2>authenticate()</FONT></FONT>
148 and <FONT FACE="Lucida Console, monospace"><FONT SIZE=2>release()</FONT></FONT>
149 methods, respectively.  This defaults to '/gssweb'.</P>
150 <P STYLE="margin-left: 0.98in; text-indent: -0.9in; margin-top: 0.17in; page-break-after: avoid">
151 <FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 10pt"><B>authenticationState</B></FONT></FONT></P>
152 <P STYLE="margin-left: 0.49in">The authenticationState property holds
153 the current authentication state for this gssweb object.  Possible
154 values are <FONT FACE="Lucida Console, monospace"><FONT SIZE=2>true</FONT></FONT>
155 for authenticated and <FONT FACE="Lucida Console, monospace"><FONT SIZE=2>false</FONT></FONT>
156 for not authenticated.</P>
157 <P STYLE="margin-left: 0.98in; text-indent: -0.9in; margin-top: 0.17in; page-break-after: avoid">
158 <FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 10pt"><B>credential</B></FONT></FONT></P>
159 <P STYLE="margin-left: 0.49in">The credential property is an object
160 representing the credential currently held by the user.  It is
161 defined later in this document.</P>
162 <P STYLE="margin-left: 0.98in; text-indent: -0.9in; margin-top: 0.17in; page-break-after: avoid">
163 <FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 10pt"><B>onAuthenticateSuccess</B></FONT></FONT></P>
164 <P STYLE="margin-left: 0.49in">A callback function invoked upon
165 successful creation of the authentication session.  Applications
166 should use this callback to inform the user of the new authentication
167 status.  This function should have the following signature:</P>
168 <P STYLE="margin-left: 0.98in"><FONT FACE="Lucida Console, monospace"><FONT SIZE=2>function
169 onAuthenticateSuccess(data) {};</FONT></FONT></P>
170 <P STYLE="margin-left: 0.49in">Its parameter, data, is used to
171 communicate information about the authentication session from the
172 server to the client.  (This is intentionally left opaque at this
173 point.)</P>
174 <P STYLE="margin-left: 0.98in; text-indent: -0.9in; margin-top: 0.17in; page-break-after: avoid">
175 <FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 10pt"><B>onAuthenticateError</B></FONT></FONT></P>
176 <P STYLE="margin-left: 0.49in">A callback function invoked upon a
177 failed attempt to create the authentication session.  Applications
178 should use this callback to inform the user of the error in creating
179 the authentication session.  If this callback is not supplied, then a
180 default This function should have the following signature:</P>
181 <P STYLE="margin-left: 0.98in"><FONT FACE="Lucida Console, monospace"><FONT SIZE=2>function
182 onAuthenticate</FONT></FONT><FONT FACE="Lucida Console, monospace"><FONT SIZE=2>Error</FONT></FONT><FONT FACE="Lucida Console, monospace"><FONT SIZE=2>(</FONT></FONT><FONT FACE="Lucida Console, monospace"><FONT SIZE=2>err</FONT></FONT><FONT FACE="Lucida Console, monospace"><FONT SIZE=2>)
183 {};</FONT></FONT></P>
184 <P STYLE="margin-left: 0.49in">Its parameter, err, holds the error
185 that caused the failure in the creation of the authentication
186 session.  It should be used to inform the user of the error status.</P>
187 <P STYLE="margin-left: 0.98in; text-indent: -0.9in; margin-top: 0.17in; page-break-after: avoid">
188 <FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 10pt"><B>onRelease</B></FONT></FONT></P>
189 <P STYLE="margin-left: 0.49in">A callback function invoked upon the
190 release of the authentication session.  Applications should use this
191 callback to inform the user that the authentication session has been
192 released.  After this callback runs, the authenticationState property
193 will be reset to false, the credentials will be destroyed, and the
194 authentication session will be destroyed on the client.</P>
195 <P STYLE="margin-top: 0.17in; page-break-after: avoid"><FONT FACE="Arial, sans-serif"><FONT SIZE=4>Methods</FONT></FONT></P>
196 <P STYLE="margin-bottom: 0in">The gssweb object provides two methods:</P>
197 <P STYLE="margin-bottom: 0in"><BR>
198 </P>
199 <TABLE WIDTH=656 CELLPADDING=4 CELLSPACING=0>
200         <COL WIDTH=165>
201         <COL WIDTH=473>
202         <TR>
203                 <TH COLSPAN=2 WIDTH=646 VALIGN=TOP BGCOLOR="#99ccff" STYLE="border: 1px solid #000000; padding: 0.04in">
204                         <P>GSSWEB METHODS</P>
205                 </TH>
206         </TR>
207         <TR VALIGN=TOP>
208                 <TD WIDTH=165 STYLE="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0.04in; padding-bottom: 0.04in; padding-left: 0.04in; padding-right: 0in">
209                         <P><FONT FACE="Lucida Console, monospace"><FONT SIZE=2>authenticate</FONT></FONT></P>
210                 </TD>
211                 <TD WIDTH=473 STYLE="border: 1px solid #000000; padding: 0.04in">
212                         <P>Create an authentication session</P>
213                 </TD>
214         </TR>
215         <TR VALIGN=TOP>
216                 <TD WIDTH=165 STYLE="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0in; padding-bottom: 0.04in; padding-left: 0.04in; padding-right: 0in">
217                         <P><FONT FACE="Lucida Console, monospace"><FONT SIZE=2>release</FONT></FONT></P>
218                 </TD>
219                 <TD WIDTH=473 STYLE="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; padding-top: 0in; padding-bottom: 0.04in; padding-left: 0.04in; padding-right: 0.04in">
220                         <P>Destroy the current authentication session</P>
221                 </TD>
222         </TR>
223 </TABLE>
224 <P STYLE="margin-left: 0.49in; margin-bottom: 0in"><BR>
225 </P>
226 <P STYLE="margin-left: 0.98in; text-indent: -0.9in; margin-top: 0.17in; page-break-after: avoid">
227 <FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 10pt"><B>authenticate()</B></FONT></FONT></P>
228 <P STYLE="margin-left: 0.49in">The <FONT FACE="Lucida Console, monospace"><FONT SIZE=2>authenticate()</FONT></FONT>
229 method is invoked to request that the system authenticate the user. 
230 When processing is completed, either the <FONT FACE="Lucida Console, monospace"><FONT SIZE=2>authenticateSuccess</FONT></FONT>
231 or <FONT FACE="Lucida Console, monospace"><FONT SIZE=2>authenticateError</FONT></FONT>
232 callback will be invoked.</P>
233 <P STYLE="margin-left: 0.98in; text-indent: -0.9in; margin-top: 0.17in; page-break-after: avoid">
234 <FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 10pt"><B>release()</B></FONT></FONT></P>
235 <P STYLE="margin-left: 0.49in">The <FONT FACE="Lucida Console, monospace"><FONT SIZE=2>release()</FONT></FONT>
236 method is invoked to release the authentication credential from the
237 system.  When it completes, the <FONT FACE="Lucida Console, monospace"><FONT SIZE=2>release</FONT></FONT>
238 callback is invoked.  Unlike <FONT FACE="Lucida Console, monospace"><FONT SIZE=2>request()</FONT></FONT>,
239 there is no separate handling for an error state; the credential is
240 destroyed on the client even if an error occurs in its destruction on
241 the server.</P>
242 <P STYLE="margin-bottom: 0in"><BR>
243 </P>
244 <H3 CLASS="western"><BR><BR>
245 </H3>
246 <H3 CLASS="western" STYLE="page-break-before: always">The credential
247 Object 
248 </H3>
249 <P STYLE="margin-top: 0.17in; page-break-after: avoid"><FONT FACE="Arial, sans-serif"><FONT SIZE=4>Properties</FONT></FONT></P>
250 <P STYLE="margin-bottom: 0in">The credential object provides no
251 properties.</P>
252 <P STYLE="margin-bottom: 0in"><BR>
253 </P>
254 <P STYLE="margin-top: 0.17in; page-break-after: avoid"><FONT FACE="Arial, sans-serif"><FONT SIZE=4>Methods</FONT></FONT></P>
255 <P STYLE="margin-bottom: 0in">The credential object provides the
256 following methods:</P>
257 <P STYLE="margin-bottom: 0in"><BR>
258 </P>
259 <TABLE WIDTH=656 CELLPADDING=4 CELLSPACING=0>
260         <COL WIDTH=165>
261         <COL WIDTH=473>
262         <TR>
263                 <TH COLSPAN=2 WIDTH=646 VALIGN=TOP BGCOLOR="#99ccff" STYLE="border: 1px solid #000000; padding: 0.04in">
264                         <P>CREDENTIAL METHODS</P>
265                 </TH>
266         </TR>
267         <TR VALIGN=TOP>
268                 <TD WIDTH=165 STYLE="border-top: 1px solid #000000; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0.04in; padding-bottom: 0.04in; padding-left: 0.04in; padding-right: 0in">
269                         <P><FONT FACE="Lucida Console, monospace"><FONT SIZE=2>setUsername</FONT></FONT></P>
270                 </TD>
271                 <TD WIDTH=473 STYLE="border: 1px solid #000000; padding: 0.04in">
272                         <P>Set the username for this credential</P>
273                 </TD>
274         </TR>
275         <TR VALIGN=TOP>
276                 <TD WIDTH=165 STYLE="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0in; padding-bottom: 0.04in; padding-left: 0.04in; padding-right: 0in">
277                         <P><FONT FACE="Lucida Console, monospace"><FONT SIZE=2>getUsername</FONT></FONT></P>
278                 </TD>
279                 <TD WIDTH=473 STYLE="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; padding-top: 0in; padding-bottom: 0.04in; padding-left: 0.04in; padding-right: 0.04in">
280                         <P>Get the username from this credential</P>
281                 </TD>
282         </TR>
283         <TR VALIGN=TOP>
284                 <TD WIDTH=165 STYLE="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: none; padding-top: 0in; padding-bottom: 0.04in; padding-left: 0.04in; padding-right: 0in">
285                         <P><FONT FACE="Lucida Console, monospace"><FONT SIZE=2>setPassword</FONT></FONT></P>
286                 </TD>
287                 <TD WIDTH=473 STYLE="border-top: none; border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; padding-top: 0in; padding-bottom: 0.04in; padding-left: 0.04in; padding-right: 0.04in">
288                         <P>Set the password for this credential</P>
289                 </TD>
290         </TR>
291 </TABLE>
292 <P STYLE="margin-left: 0.49in; margin-bottom: 0in"><BR>
293 </P>
294 <P STYLE="margin-left: 0.98in; text-indent: -0.9in; margin-top: 0.17in; page-break-after: avoid">
295 <FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 10pt"><B>setUsername()</B></FONT></FONT></P>
296 <P STYLE="margin-left: 0.49in">The <FONT FACE="Lucida Console, monospace"><FONT SIZE=2>setUsername()</FONT></FONT>
297 method sets the username on the unauthenticated credential.  If
298 called with undefined, called without also calling <FONT FACE="Lucida Console, monospace"><FONT SIZE=2>setPassword()</FONT></FONT>,
299 or not called at all, the system will prompt the user to provide the
300 credentials for this authentication session.  Once the session has
301 been authenticated, the <FONT FACE="Lucida Console, monospace"><FONT SIZE=2>setUsername()</FONT></FONT>
302 function will return an error.</P>
303 <P STYLE="margin-left: 0.49in">This username should be in Network
304 Access Identifier form &ndash; generally speaking, &ldquo;user@realm&rdquo;.
305 </P>
306 <P STYLE="margin-left: 0.98in; text-indent: -0.9in; margin-top: 0.17in; page-break-after: avoid">
307 <FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 10pt"><B>getUsername()</B></FONT></FONT></P>
308 <P STYLE="margin-left: 0.49in">The g<FONT FACE="Lucida Console, monospace"><FONT SIZE=2>etUsername()</FONT></FONT>
309 method returns the current username of the credential.</P>
310 <P STYLE="margin-left: 0.98in; text-indent: -0.9in; margin-top: 0.17in; page-break-after: avoid">
311 <FONT FACE="Arial, sans-serif"><FONT SIZE=2 STYLE="font-size: 10pt"><B>setPassword()</B></FONT></FONT></P>
312 <P STYLE="margin-left: 0.49in">The <FONT FACE="Lucida Console, monospace"><FONT SIZE=2>setPassword</FONT></FONT><FONT FACE="Lucida Console, monospace"><FONT SIZE=2>()</FONT></FONT>
313 sets the password on the unauthenticated credential.  If the password
314 is set without the username being set, the password will be ignored. 
315 If <FONT FACE="Lucida Console, monospace"><FONT SIZE=2>setPassword()</FONT></FONT>
316 is called after the session has been authenticated, it will return an
317 error.</P>
318 <P STYLE="margin-bottom: 0in"><BR>
319 </P>
320 <H3 CLASS="western"><BR><BR>
321 </H3>
322 <H3 CLASS="western" STYLE="page-break-before: always">The GSS API</H3>
323 <P STYLE="margin-bottom: 0in">In addition, the library provides
324 access to GSS-API functions through a gss property on the <FONT FACE="Lucida Console, monospace"><FONT SIZE=2>gssweb</FONT></FONT>
325 object. While this API is available, it should be considered unstable
326 for application development, and is provided primarily as reference
327 for library implementation.</P>
328 <UL>
329         <LI><P STYLE="margin-bottom: 0in">navigator.<FONT FACE="Lucida Console, monospace"><FONT SIZE=2>gss_eap</FONT></FONT>.gss.init_sec_context</P>
330         <LI><P STYLE="margin-bottom: 0in">navigator.<FONT FACE="Lucida Console, monospace"><FONT SIZE=2>gss_eap</FONT></FONT>.gss.import_name</P>
331         <LI><P STYLE="margin-bottom: 0in">navigator.<FONT FACE="Lucida Console, monospace"><FONT SIZE=2>gss_eap</FONT></FONT>.gss.acquire_cred</P>
332         <LI><P STYLE="margin-bottom: 0in">navigator.<FONT FACE="Lucida Console, monospace"><FONT SIZE=2>gss_eap</FONT></FONT>.gss.wrap</P>
333         <LI><P STYLE="margin-bottom: 0in">navigator.<FONT FACE="Lucida Console, monospace"><FONT SIZE=2>gss_eap</FONT></FONT>.gss.unwrap</P>
334         <LI><P STYLE="margin-bottom: 0in">navigator.gss_eap.pseudo_random</P>
335         <LI><P STYLE="margin-bottom: 0in">navigator.gss_eap.get_mech</P>
336 </UL>
337 <P STYLE="margin-bottom: 0in"><BR>
338 </P>
339 <P STYLE="margin-bottom: 0in"><BR>
340 </P>
341 </BODY>
342 </HTML>