File:
[LON-CAPA] /
doc /
gutshtml /
SessionTwo.html
Revision
1.2:
download - view:
text,
annotated -
select for diffs
Tue Jul 22 14:47:00 2003 UTC (21 years, 7 months ago) by
bowersj2
Branches:
MAIN
CVS tags:
version_2_9_X,
version_2_9_99_0,
version_2_9_1,
version_2_9_0,
version_2_8_X,
version_2_8_99_1,
version_2_8_99_0,
version_2_8_2,
version_2_8_1,
version_2_8_0,
version_2_7_X,
version_2_7_99_1,
version_2_7_99_0,
version_2_7_1,
version_2_7_0,
version_2_6_X,
version_2_6_99_1,
version_2_6_99_0,
version_2_6_3,
version_2_6_2,
version_2_6_1,
version_2_6_0,
version_2_5_X,
version_2_5_99_1,
version_2_5_99_0,
version_2_5_2,
version_2_5_1,
version_2_5_0,
version_2_4_X,
version_2_4_99_0,
version_2_4_2,
version_2_4_1,
version_2_4_0,
version_2_3_X,
version_2_3_99_0,
version_2_3_2,
version_2_3_1,
version_2_3_0,
version_2_2_X,
version_2_2_99_1,
version_2_2_99_0,
version_2_2_2,
version_2_2_1,
version_2_2_0,
version_2_1_X,
version_2_1_99_3,
version_2_1_99_2,
version_2_1_99_1,
version_2_1_99_0,
version_2_1_3,
version_2_1_2,
version_2_1_1,
version_2_1_0,
version_2_12_X,
version_2_11_X,
version_2_11_6_msu,
version_2_11_6,
version_2_11_5_msu,
version_2_11_5,
version_2_11_4_uiuc,
version_2_11_4_msu,
version_2_11_4,
version_2_11_3_uiuc,
version_2_11_3_msu,
version_2_11_3,
version_2_11_2_uiuc,
version_2_11_2_msu,
version_2_11_2_educog,
version_2_11_2,
version_2_11_1,
version_2_11_0_RC3,
version_2_11_0_RC2,
version_2_11_0_RC1,
version_2_11_0,
version_2_10_X,
version_2_10_1,
version_2_10_0_RC2,
version_2_10_0_RC1,
version_2_10_0,
version_2_0_X,
version_2_0_99_1,
version_2_0_2,
version_2_0_1,
version_2_0_0,
version_1_99_3,
version_1_99_2,
version_1_99_1_tmcc,
version_1_99_1,
version_1_99_0_tmcc,
version_1_99_0,
version_1_3_X,
version_1_3_3,
version_1_3_2,
version_1_3_1,
version_1_3_0,
version_1_2_X,
version_1_2_99_1,
version_1_2_99_0,
version_1_2_1,
version_1_2_0,
version_1_1_X,
version_1_1_99_5,
version_1_1_99_4,
version_1_1_99_3,
version_1_1_99_2,
version_1_1_99_1,
version_1_1_99_0,
version_1_1_3,
version_1_1_2,
version_1_1_1,
version_1_1_0,
version_1_0_99_3,
version_1_0_99_2,
version_1_0_99_1,
version_1_0_99,
version_1_0_3,
version_1_0_2,
version_1_0_1,
version_1_0_0,
version_0_99_5,
version_0_99_4,
loncapaMITrelate_1,
language_hyphenation_merge,
language_hyphenation,
bz6209-base,
bz6209,
HEAD,
GCI_3,
GCI_2,
GCI_1,
BZ4492-merge,
BZ4492-feature_horizontal_radioresponse,
BZ4492-feature_Support_horizontal_radioresponse,
BZ4492-Support_horizontal_radioresponse
Convert GUTs HTML to PROPER line endings.
1: <html>
2: <head>
3: <meta name=Title content="Session Two: Apache Handlers (loncapa_apache">
4: <meta http-equiv=Content-Type content="text/html; charset=macintosh">
5: <title>Session Two: Apache Handlers (loncapa_apache</title>
6: <style><!--
7: .Section1
8: {page:Section1;}
9: .Section2
10: {page:Section2;}
11: -->
12: </style>
13: </head>
14: <body bgcolor=#FFFFFF class="Normal" lang=EN-US>
15: <div class=Section1>
16: <h2>Session Two: Apache Handlers (loncapa_apache.conf), Authentication and Access
17: Control, Session Environment (Matthew)</h2>
18: <h3><a name="_Toc470397993"></a><a name="_Toc514840845"></a><a
19: name="_Toc421867046"><span>Server Content Resource Areas</span></a></h3>
20: <p>Internally, all resources are identified primarily by their URL. Different
21: logical areas of the server are distinguished by the beginning part of the
22: URL: </p>
23: <ul type=disc>
24: <li><span
25: style='font-family:"Courier New"'>/adm: </span>publicly available content,
26: logos, manual pages, etc.<i></i></li>
27: </ul>
28: <ul type=disc>
29: <li><span
30: style='font-family:"Courier New"'>/res/<i>domainname</i></span><span
31: style='font-family:"Courier New"'>/<i>authorname</i></span><span
32: style='font-family:"Courier New"'>/..: </span>the resource area, holding
33: course maps, HTML pages, homework, movies, applets, etc. Access to these
34: files is restricted by the cookie-based authentication mechanism. Content
35: in this area will be served by type-dependent handlers, for example, one
36: handlers to serve homework problems, and another one for TeX resources.
37: The structure of this area of the server is exactly the same on every server,
38: even though not all resources might be present everywhere.</li>
39: </ul>
40: <ul type=disc>
41: <li><span
42: style='font-family:"Courier New"'>/raw/<i>domainname</i></span><span
43: style='font-family:"Courier New"'>/<i>authorname</i></span><span
44: style='font-family:"Courier New"'>/..: </span>internally, this is just a
45: symbolic link to the <span style='font-family:"Courier New"'>res</span>
46: directory, however, no content handlers are called when serving a resource
47: and access is controlled by IP rather than cookies. This structure is used
48: for replication of resources between servers.</li>
49: </ul>
50: <ul type=disc>
51: <li><span
52: style='font-family:"Courier New"'>/~<i>authorname</i></span><span
53: style='font-family:"Courier New"'>/.., /priv<i>/authorname</i></span><span
54: style='font-family:"Courier New"'>: </span>the content construction space.<span
55: style='font-family:"Courier New"'> </span>This is normal UNIX filespace,
56: which however can only by viewed on the web by the authors themselves through
57: the cookie based authentication. Content handlers are active for this space.
58: This space can be mounted on other UNIX machines, as well as AppleShare
59: and Windows. Below the <span style='font-family:"Courier New"'><i>authorname</i></span>,
60: this directory has the same structure as the resource space of the author.</li>
61: </ul>
62: <ul type=disc>
63: <li><span
64: style='font-family:"Courier New"'>/lon-status/..: </span>LON-CAPA status
65: information Ð behind basic http authentication so it is not dependent on
66: system functions</li>
67: </ul>
68: <p>Authors can only write-access the<i> </i><span
69: style='font-family:"Courier New";font-style:normal'>/~</span><span
70: style='font-family:"Courier New"'><i>authorname</i></span><span
71: style='font-family:"Courier New"'>/</span> space. They can copy resources into
72: the resource area through the publication step, and move them back through
73: a retrieve step. Authors do not have direct write-access to their resource
74: space.</p>
75: <h3><a name="_Toc514840846"></a><a name="_Toc421867047">Apache Request Cycle
76: and Handlers</a></h3>
77: <p>The standard mode in which the Apache web server is used is that a URL corresponds
78: to some static file on the file system, which then more or less gets sent
79: out as-is. Slight deviations from that simple principle are however already
80: the directory listing function, virtual servers, and the cgi-bin directory.
81: In the latter case, Apache executes the file in a new process and provides
82: both the input to the process in the environment, and routes the output to
83: the client. Other deviations are the error messages.</p>
84: <p>In a more general view, URLs to Apache are URIs (Uniform Resource Identifiers),
85: which may are may not correspond to a physical file, which in turn may or
86: may not be sent out as-is.</p>
87: <p>As a request for a URI gets sent to the Apache server, it goes through several
88: phases. At each phase (ÒstageÓ) along the process, handler modules can be
89: defined to deal with the request. Details about these phases are given in
90: the Eagle book Chapter 3 (page 60).</p>
91: <p>These handler modules are not like cgi-scripts executed in a separate process,
92: but are dynamically linked into the Apache child processes themselves Ð they
93: run inside of Apache. The mod_perl mechanism in addition links the Perl interpreter
94: into the Apache child process. Modules are pre-interpreted (ÒcompiledÓ) by
95: the Perl interpreter when they are first loaded, and the pre-interpreted code
96: stays permanently in the memory allocated to that Apache child process. The
97: result is a significant speed-up, and through the flexible mechanism of module
98: registration and different stages of the process, a high degree of customizability.</p>
99: <p>LON-CAPA does not use Apache::Registry, and so in addition avoids the unnecessary
100: overhead of emulating a cgi-environment within the handlers. Instead, it makes
101: direct use of the Apache Perl API (Chapter 9, Eagle book). </p>
102: <h3><a name="_Toc514840847"></a><a name="_Toc421867048">Handler Definition</a></h3>
103: <p>Which chain of handler deals with which kind of resource is defined in <span style='font-size:9.0pt;font-family:"Courier New"'>/etc/httdp/conf/loncapa_apache.conf</span>.
104: LON-CAPA only defines handlers at the (in order) header-parser, access control,
105: and response phase (figure 3-3 Eagle book). In the header-parser phase, the
106: replication handler is run, and in the access-control phase, the various access-handlers.
107: Future handlers will mostly be implemented in the response phase.<b> Fig.
108: 1.2.2</b><span style='font-weight:normal'> shows excerpts of the configuration
109: script </span><span style='font-size:9.0pt;font-family:"Courier New"'>/etc/httpd/loncapa_apache.conf</span>
110: for these modules.</p>
111: <div style='border:solid windowtext .5pt;padding:31.0pt 31.0pt 31.0pt 31.0pt'>
112: <p style='border:none;padding:0in;'><span
113: style='font-size:8.0pt;font-family:"Courier New"'># -------------------------------------------------------------
114: Access Handlers</span></p>
115: <p style='border:none;padding:0in;'><span
116: style='font-size:8.0pt;font-family:"Courier New"'><LocationMatch "^/res.*"></span></p>
117: <p style='border:none;padding:0in;'><span
118: style='font-size:8.0pt;font-family:"Courier New"'>PerlAccessHandler
119: Apache::lonacc</span></p>
120: <p style='border:none;padding:0in;'><span
121: style='font-size:8.0pt;font-family:"Courier New"'>PerlHeaderParserHandler Apache::lonrep</span></p>
122: <p style='border:none;padding:0in;'><span
123: style='font-size:8.0pt;font-family:"Courier New"'>ErrorDocument
124: 403 /adm/login</span></p>
125: <p style='border:none;padding:0in;'><span
126: style='font-size:8.0pt;font-family:"Courier New"'>ErrorDocument
127: 404 /adm/notfound.html</span></p>
128: <p style='border:none;padding:0in;'><span
129: style='font-size:8.0pt;font-family:"Courier New"'>ErrorDocument
130: 406 /adm/roles</span></p>
131: <p style='border:none;padding:0in;'><span
132: style='font-size:8.0pt;font-family:"Courier New"'>ErrorDocument
133: 500 /adm/errorhandler</span></p>
134: <p style='border:none;padding:0in;'><span
135: style='font-size:8.0pt;font-family:"Courier New"'></LocationMatch></span></p>
136: <p style='border:none;padding:0in;'><span
137: style='font-size:8.0pt;font-family:"Courier New"'><LocationMatch "^/priv.*"></span></p>
138: <p style='border:none;padding:0in;'><span
139: style='font-size:8.0pt;font-family:"Courier New"'>PerlAccessHandler Apache::loncacc</span></p>
140: <p style='border:none;padding:0in;'><span
141: style='font-size:8.0pt;font-family:"Courier New"'>SetHandler
142: perl-script</span></p>
143: <p style='border:none;padding:0in;'><span
144: style='font-size:8.0pt;font-family:"Courier New"'>PerlHandler
145: Apache::lonconstruct</span></p>
146: <p style='border:none;padding:0in;'><span
147: style='font-size:8.0pt;font-family:"Courier New"'>ErrorDocument
148: 403 /adm/login</span></p>
149: <p style='border:none;padding:0in;'><span
150: style='font-size:8.0pt;font-family:"Courier New"'>ErrorDocument
151: 404 /adm/notfound.html</span></p>
152: <p style='border:none;padding:0in;'><span
153: style='font-size:8.0pt;font-family:"Courier New"'>ErrorDocument
154: 406 /adm/unauthorized.html</span></p>
155: <p style='border:none;padding:0in;'><span
156: style='font-size:8.0pt;font-family:"Courier New"'>ErrorDocument
157: 500 /adm/errorhandler</span></p>
158: <p style='border:none;padding:0in;'><span
159: style='font-size:8.0pt;font-family:"Courier New"'></LocationMatch></span></p>
160: <p style='border:none;padding:0in;'><span
161: style='font-size:8.0pt;font-family:"Courier New"'><LocationMatch "^/raw.*"></span></p>
162: <p style='border:none;padding:0in;'><span
163: style='font-size:8.0pt;font-family:"Courier New"'>PerlAccessHandler Apache::lonracc</span></p>
164: <p style='border:none;padding:0in;'><span
165: style='font-size:8.0pt;font-family:"Courier New"'></LocationMatch></span></p>
166: <p style='border:none;padding:0in;'><span
167: style='font-size:8.0pt;font-family:"Courier New"'><LocationMatch "^/\~.*"></span></p>
168: <p style='border:none;padding:0in;'><span
169: style='font-size:8.0pt;font-family:"Courier New"'>PerlAccessHandler Apache::loncacc</span></p>
170: <p style='border:none;padding:0in;'><span
171: style='font-size:8.0pt;font-family:"Courier New"'>ErrorDocument
172: 403 /adm/login</span></p>
173: <p style='border:none;padding:0in;'><span
174: style='font-size:8.0pt;font-family:"Courier New"'>ErrorDocument
175: 404 /adm/notfound.html</span></p>
176: <p style='border:none;padding:0in;'><span
177: style='font-size:8.0pt;font-family:"Courier New"'>ErrorDocument
178: 406 /adm/unauthorized.html</span></p>
179: <p style='border:none;padding:0in;'><span
180: style='font-size:8.0pt;font-family:"Courier New"'>ErrorDocument
181: 500 /adm/errorhandler</span></p>
182: <p style='border:none;padding:0in;'><span
183: style='font-size:8.0pt;font-family:"Courier New"'>AllowOverride None</span></p>
184: <p style='border:none;padding:0in;'><span
185: style='font-size:8.0pt;font-family:"Courier New"'></LocationMatch></span></p>
186: <p style='border:none;padding:0in;'><span
187: style='font-size:20.0pt;font-family:"Courier New"'><b>É</b></span><span
188: style='font-size:16.0pt;font-family:"Courier New"'></span></p>
189: <p style='border:none;padding:0in;'><span
190: style='font-size:8.0pt;font-family:"Courier New"'># ---------------------------------------------
191: Resource Space Content Handlers</span></p>
192: <p style='border:none;padding:0in;'><span
193: style='font-size:8.0pt;font-family:"Courier New"'><LocationMatch "^/res/.*/$"></span></p>
194: <p style='border:none;padding:0in;'><span
195: style='font-size:8.0pt;font-family:"Courier New"'>SetHandler perl-script</span></p>
196: <p style='border:none;padding:0in;'><span
197: style='font-size:8.0pt;font-family:"Courier New"'>PerlHandler Apache::lonindexer</span></p>
198: <p style='border:none;padding:0in;'><span
199: style='font-size:8.0pt;font-family:"Courier New"'></LocationMatch></span></p>
200: <p style='border:none;padding:0in;'><span
201: style='font-size:8.0pt;font-family:"Courier New"'><LocationMatch "^/res/.*\.tex$"></span></p>
202: <p style='border:none;padding:0in;'><span
203: style='font-size:8.0pt;font-family:"Courier New"'>SetHandler perl-script</span></p>
204: <p style='border:none;padding:0in;'><span
205: style='font-size:8.0pt;font-family:"Courier New"'>PerlHandler Apache::lontex</span></p>
206: <p style='border:none;padding:0in;'><span
207: style='font-size:8.0pt;font-family:"Courier New"'></LocationMatch></span></p>
208: <p style='border:none;padding:0in;'><span
209: style='font-size:8.0pt;font-family:"Courier New"'><LocationMatch "^/res/.*\.page$></span></p>
210: <p style='border:none;padding:0in;'><span
211: style='font-size:8.0pt;font-family:"Courier New"'>SetHandler perl-script</span></p>
212: <p style='border:none;padding:0in;'><span
213: style='font-size:8.0pt;font-family:"Courier New"'>PerlHandler Apache::lonpage</span></p>
214: <p style='border:none;padding:0in;'><span
215: style='font-size:8.0pt;font-family:"Courier New"'></LocationMatch></span></p>
216: <p style='border:none;padding:0in;'><span
217: style='font-size:20.0pt;font-family:"Courier New"'><b>É</b></span></p>
218: <p style='border:none;padding:0in;'><span
219: style='font-size:8.0pt;font-family:"Courier New"'><LocationMatch "^/(res|\~).*\.(xml|html|htm|xhtml|xhtm)$"></span></p>
220: <p style='border:none;padding:0in;'><span
221: style='font-size:8.0pt;font-family:"Courier New"'>SetHandler perl-script</span></p>
222: <p style='border:none;padding:0in;'><span
223: style='font-size:8.0pt;font-family:"Courier New"'>PerlHandler Apache::lonxml</span></p>
224: <p style='border:none;padding:0in;'><span
225: style='font-size:8.0pt;font-family:"Courier New"'></LocationMatch></span></p>
226: <p style='border:none;padding:0in;'><span
227: style='font-size:8.0pt;font-family:"Courier New"'><LocationMatch "^/(res|\~).*\.(problem|exam|quiz|assess|survey|form)$"></span></p>
228: <p style='border:none;padding:0in;'><span
229: style='font-size:8.0pt;font-family:"Courier New"'>SetHandler perl-script</span></p>
230: <p style='border:none;padding:0in;'><span
231: style='font-size:8.0pt;font-family:"Courier New"'>PerlHandler Apache::lonhomework</span></p>
232: <p style='border:none;padding:0in;'><span
233: style='font-size:8.0pt;font-family:"Courier New"'></LocationMatch></span></p>
234: <p style='border:none;padding:0in;'><span
235: style='font-size:8.0pt;font-family:"Courier New"'># --------------------------------------------------------------
236: Admin Programs</span></p>
237: <p style='border:none;padding:0in;'><span
238: style='font-size:8.0pt;font-family:"Courier New"'><Location /adm/roles></span></p>
239: <p style='border:none;padding:0in;'><span
240: style='font-size:8.0pt;font-family:"Courier New"'>PerlAccessHandler
241: Apache::lonacc</span></p>
242: <p style='border:none;padding:0in;'><span
243: style='font-size:8.0pt;font-family:"Courier New"'>SetHandler perl-script</span></p>
244: <p style='border:none;padding:0in;'><span
245: style='font-size:8.0pt;font-family:"Courier New"'>PerlHandler Apache::lonroles</span></p>
246: <p style='border:none;padding:0in;'><span
247: style='font-size:8.0pt;font-family:"Courier New"'>ErrorDocument
248: 403 /adm/login</span></p>
249: <p style='border:none;padding:0in;'><span
250: style='font-size:8.0pt;font-family:"Courier New"'>ErrorDocument
251: 500 /adm/errorhandler</span></p>
252: <p style='border:none;padding:0in;'><span
253: style='font-size:8.0pt;font-family:"Courier New"'></Location></span></p>
254: <p style='border:none;padding:0in;'><span
255: style='font-size:8.0pt;font-family:"Courier New"'><Location /adm/login></span></p>
256: <p style='border:none;padding:0in;'><span
257: style='font-size:8.0pt;font-family:"Courier New"'>SetHandler perl-script</span></p>
258: <p style='border:none;padding:0in;'><span
259: style='font-size:8.0pt;font-family:"Courier New"'>PerlHandler Apache::lonlogin</span></p>
260: <p style='border:none;padding:0in;'><span
261: style='font-size:8.0pt;font-family:"Courier New"'></Location></span></p>
262: <p style='border:none;padding:0in;'><span
263: style='font-size:20.0pt;font-family:"Courier New"'><b>É</b></span></p>
264: <p style='border:none;padding:0in;'><span
265: style='font-size:8.0pt;font-family:"Courier New"'><Location /adm/annotations></span></p>
266: <p style='border:none;padding:0in;'><span
267: style='font-size:8.0pt;font-family:"Courier New"'>PerlAccessHandler
268: Apache::lonacc</span></p>
269: <p style='border:none;padding:0in;'><span
270: style='font-size:8.0pt;font-family:"Courier New"'>SetHandler perl-script</span></p>
271: <p style='border:none;padding:0in;'><span
272: style='font-size:8.0pt;font-family:"Courier New"'>PerlHandler Apache::admannotations</span></p>
273: <p style='border:none;padding:0in;'><span
274: style='font-size:8.0pt;font-family:"Courier New"'>ErrorDocument
275: 403 /adm/login</span></p>
276: <p style='border:none;padding:0in;'><span
277: style='font-size:8.0pt;font-family:"Courier New"'>ErrorDocument
278: 500 /adm/errorhandler</span></p>
279: <p style='border:none;padding:0in;'><span
280: style='font-size:8.0pt;font-family:"Courier New"'></Location></span></p>
281: <p style='border:none;padding:0in;'><span
282: style='font-size:14.0pt;font-family:"Courier New"'><b>É etc É</b></span></p>
283: </div>
284: <p><span style='font-size:14.0pt'><b>Fig. 1.2.2</b></span><span
285: style='font-size:14.0pt'> Ð Excerpts of </span><span style='font-size:14.0pt;
286: font-family:"Courier New"'>loncapa_apache.conf</span></p>
287: <h3><a name="_Toc514840849"></a><a name="_Toc421867049">Authentication Overview</a></h3>
288: <p>A user can log into any server in the network and run sessions. The server
289: responsible for initially authenticating the user is the userÕs homeserver.</p>
290: <p>When a user first accesses a server within a browser session, he or she is
291: challenged to provide authentication information in the form of username,
292: password and domain Ð this is done by <span style='font-family:
293: "Courier New"'>lonlogin</span>, which is the <span style='font-family:"Courier New"'>error_document</span>
294: for <span style='font-family:"Courier New"'>lonacc</span> and <span
295: style='font-family:"Courier New"'>loncacc </span>(the normal authentication handlers).
296: When the server receives that information, it asks all library servers in
297: the domain that the user specified to validate the information Ð this is done
298: by <span style='font-family:"Courier New"'>lonauth</span>. </p>
299: <p>The userÕs home server will answer with<i> </i><span
300: style='font-family:"Courier New";font-style:normal'>authorized</span> or <span
301: style='font-family:"Courier New"'>non_authorized</span>, all others with <span
302: style='font-family:"Courier New"'>unknown_user</span>. If one server authorizes
303: the user, a cookie is returned to the user by <span style='font-family:"Courier New"'>lonauth</span>
304: and the session is initialized on the local server by establishing the session
305: environment file. If a server sends<i> </i><span style='font-family:"Courier New";
306: font-style:normal'>non_authorized</span>, the user is rejected. <b>Fig.
307: 1.3.1</b><span
308: style='font-weight:normal'> illustrates this process.</span></p>
309: </div>
310: <br
311: clear=ALL style='page-break-before:always;'>
312: <div class=Section2>
313: <div class=Section3>
314: <div style='border:solid windowtext .5pt;padding:1.0pt 4.0pt 1.0pt 4.0pt'>
315: <p style='border:none;padding:0in'>Domain</p>
316: <p style='border:none;padding:0in'> <span style='font-family:Wingdings'>ˆ</span>
317: username, password <span style='font-family:Wingdings'>ˆ</span> <b>Library
318: Server</b></p>
319: <p style='border:none;padding:0in'> | <span style='font-family:Wingdings'>§</span>
320: unknown_user <span style='font-family:Wingdings'>§</span></p>
321: <p style='border:none;padding:0in'> |</p>
322: <p style='border:none;padding:0in'> | <span style='font-family:Wingdings'>ˆ</span>
323: username, password <span style='font-family:Wingdings'>ˆ</span> <b>Library
324: Server</b></p>
325: <p style='border:none;padding:0in'> | <span style='font-family:Wingdings'>§</span>
326: authorized <span style='font-family:Wingdings'>§</span></p>
327: <p style='border:none;padding:0in'> |</p>
328: <p style='border:none;padding:0in'><b>User</b><span
329: style='font-weight:normal'> </span><span style='font-family:Wingdings'>ˆ</span>
330: username,password,domain <span style='font-family:Wingdings'>ˆ</span>
331: <b>Server </b></p>
332: <p style='border:none;padding:0in'><b> </b><span
333: style='font-family:Wingdings'><b>§</b></span><b> </b><span style='font-weight:
334: normal'>cookie</span><b> </b><span style='font-family:Wingdings'><b>§</b></span><b>
335: </b><span style='font-weight:normal'>store session information for valid
336: cookies</span></p>
337: </div>
338: <p><span style='font-size:14.0pt'><b>Fig. 1.3.1</b></span><span
339: style='font-size:14.0pt'> Ð Illustration of Authentication Mechanism</span></p>
340: <p class=MsoBodyText style='line-height:normal'><span style='font-size:10.0pt'>At
341: all subsequent interactions, the client sends the cookie back to the server
342: Ð if the cookie is missing or invalid, the user is re-challenged for login
343: information. Handlers are </span><span style='font-size:10.0pt;font-family:
344: "Courier New"'>lonacc</span><span style='font-size:10.0pt'> and </span><span
345: style='font-size:10.0pt;font-family:"Courier New"'>loncacc</span><span
346: style='font-size:10.0pt'>. Cookies expire by closing the browser and are invalidated
347: when the user logs out or logs in a second time into the same machine from
348: another browser<i>.</i></span></p>
349: <h3><a name="_Toc514840850"></a><a name="_Toc421867050">Authentication Mechanisms,
350: User Data, Passwords</a></h3>
351: <p>On the library servers, it is a routine in<span
352: style='font-family:"Courier New"'> lond </span>that does the authentication. It
353: checks if this is the userÕs homeserver, checks the password, and answers<span
354: style='font-family:"Courier New"'> </span>with <span style='font-family:"Courier New"'>Òunknown_userÓ,
355: ÒauthorizedÓ </span>or<span style='font-family:"Courier New"'> Ònon_authorizedÓ.
356: </span></p>
357: <p class=MsoHeader>Determination if this is the userÕs homeserver is done
358: by the presence of his or her password file in</p>
359: <p><span style='font-family:"Courier New"'> /home/httpd/lonUsers/<i>domain</i></span><span style='font-family:"Courier New"'>/<i>1.char</i></span><span
360: style='font-family:"Courier New"'>/<i>2.char</i></span><span style='font-family:
361: "Courier New"'>/<i>3.char</i></span><span style='font-family:"Courier New"'>/<i>username</i></span><span
362: style='font-family:"Courier New"'>/passwd</span></p>
363: <p class=MsoHeader>for example</p>
364: <p><span style='font-family:"Courier New"'> /home/httpd/lonUsers/msu/s/m/i/smith/passwd</span></p>
365: <p>The password is stored in the format <span style='font-family:
366: "Courier New"'>mechanism:info, </span>where mechanism can currently be <span
367: style='font-family:"Courier New"'>unix</span>, <span style='font-family:"Courier New"'>krb4</span>
368: or <span style='font-family:"Courier New"'>internal</span>. For <span
369: style='font-family:"Courier New"'>krb4</span>, the <span style='font-family:
370: "Courier New"'>info</span> is the Kerberos domain, for <span style='font-family:
371: "Courier New"'>internal</span> it is the crypt password itself. <span
372: style='font-family:"Courier New"'>unix</span> simply authenticates against <span
373: style='font-family:"Courier New"'>/etc/passwd</span>. </p>
374: <h3><a name="_Toc514840851"></a><a name="_Toc421867051">Environment</a></h3>
375: <p>The access handlers Ð coming early in the Apache request cycle Ð also set
376: up the session environment. The cookie received from the web client is a
377: pointer to the session profiles, which are stored in a directory for temporary
378: files <span style='font-family:"Courier New"'>(/home/httpd/lonIDs/</span>).
379: </p>
380: <p class=H5><span style='layout-grid-mode:
381: both'>Standard Components</span></p>
382: <p>These are the standard components of the environment added by Apache and
383: the shell.</p>
384: <p><span style='font-size:8.0pt;font-family:"Courier New"'>AUTH_TYPE ----
385: Basic</span></p>
386: <p><span style='font-size:8.0pt;font-family:"Courier New"'>DOCUMENT_ROOT ----
387: /home/httpd/html</span></p>
388: <p><span style='font-size:8.0pt;font-family:"Courier New"'>GATEWAY_INTERFACE
389: ---- CGI-Perl/1.1</span></p>
390: <p><span style='font-size:8.0pt;font-family:"Courier New"'>HTTP_ACCEPT ----
391: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, image/png, */*</span></p>
392: <p><span style='font-size:8.0pt;font-family:"Courier New"'>HTTP_ACCEPT_CHARSET
393: ---- iso-8859-1,*,utf-8</span></p>
394: <p><span style='font-size:8.0pt;font-family:"Courier New"'>HTTP_ACCEPT_ENCODING
395: ---- gzip</span></p>
396: <p><span style='font-size:8.0pt;font-family:"Courier New"'>HTTP_ACCEPT_LANGUAGE
397: ---- en,pdf</span></p>
398: <p><span style='font-size:8.0pt;font-family:"Courier New"'>HTTP_CONNECTION
399: ---- Keep-Alive</span></p>
400: <p><span style='font-size:8.0pt;font-family:"Courier New"'>HTTP_COOKIE ----
401: SITESERVER=ID=cbc6695505253a2ff0e7bb7110574d90; lonID=kortemey_990461714_msu_msul1</span></p>
402: <p><span style='font-size:8.0pt;font-family:"Courier New"'>HTTP_HOST ----
403: zaphod.lite.msu.edu</span></p>
404: <p><span style='font-size:8.0pt;font-family:"Courier New"'>HTTP_REFERER ----
405: </span></p>
406: <p><span style='font-size:8.0pt;font-family:"Courier New"'>HTTP_USER_AGENT
407: ---- Mozilla/4.75 (Macintosh; U; PPC)</span></p>
408: <p><span style='font-size:8.0pt;font-family:"Courier New"'>MOD_PERL ---- mod_perl/1.21</span></p>
409: <p><span style='font-size:8.0pt;font-family:"Courier New"'>PATH ---- /sbin:/usr/sbin:/bin:/usr/bin:/usr/X11R6/bi¤</span></p>
410: <p><span style='font-size:8.0pt;font-family:"Courier New"'>QUERY_STRING ----
411: </span></p>
412: <p><span style='font-size:8.0pt;font-family:"Courier New"'>REMOTE_ADDR ----
413: 35.8.63.7</span></p>
414: <p><span style='font-size:8.0pt;font-family:"Courier New"'>REMOTE_PORT ----
415: 1844</span></p>
416: <p><span style='font-size:8.0pt;font-family:"Courier New"'>REMOTE_USER ----
417: lonadm</span></p>
418: <p><span style='font-size:8.0pt;font-family:"Courier New"'>REQUEST_METHOD
419: ---- GET</span></p>
420: <p><span style='font-size:8.0pt;font-family:"Courier New"'>REQUEST_URI ----
421: /adm/test</span></p>
422: <p><span style='font-size:8.0pt;font-family:"Courier New"'>SCRIPT_FILENAME
423: ---- /home/httpd/html/adm/test</span></p>
424: <p><span style='font-size:8.0pt;font-family:"Courier New"'>SCRIPT_NAME ----
425: /adm/test</span></p>
426: <p><span style='font-size:8.0pt;font-family:"Courier New"'>SERVER_ADDR ----
427: 35.8.63.51</span></p>
428: <p><span style='font-size:8.0pt;font-family:"Courier New"'>SERVER_ADMIN ----
429: korte@lite.msu.edu</span></p>
430: <p><span style='font-size:8.0pt;font-family:"Courier New"'>SERVER_NAME ----
431: zaphod.lite.msu.edu</span></p>
432: <p><span style='font-size:8.0pt;font-family:"Courier New"'>SERVER_PORT ----
433: 80</span></p>
434: <p><span style='font-size:8.0pt;font-family:"Courier New"'>SERVER_PROTOCOL
435: ---- HTTP/1.0</span></p>
436: <p><span style='font-size:8.0pt;font-family:"Courier New"'>SERVER_SIGNATURE
437: ---- </span></p>
438: <p><span style='font-size:8.0pt;font-family:"Courier New"'>SERVER_SOFTWARE
439: ---- Apache/1.3.9 (Unix) (Red Hat/Linux) mod_perl/1.21</span></p>
440: <p class=H5><span style='layout-grid-mode:
441: both'>Resource Access Control</span></p>
442: <p>The following values are set by traceroute at the initialization of the
443: course and are used by access handlers to check if a resource can be served
444: to a user.</p>
445: <p><span style='font-size:8.0pt;font-family:"Courier New"'>acc.cond.msu_12679c3ed543a25msul1.0
446: ---- 0</span></p>
447: <p><span style='font-size:8.0pt;font-family:"Courier New"'>acc.cond.msu_12679c3ed543a25msul1.1
448: ---- 0</span></p>
449: <p><span style='font-size:8.0pt;font-family:"Courier New"'>acc.res.msu_12679c3ed543a25msul1.
450: ---- &:1&</span></p>
451: <p><span style='font-size:8.0pt;font-family:"Courier New"'>acc.res.msu_12679c3ed543a25msul1.msu/mmp
452: ---- &welcome267.htm:1&welcomelbs267.htm:0&</span></p>
453: <p><span style='font-size:8.0pt;font-family:"Courier New"'>acc.res.msu_12679c3ed543a25msul1.msu/mmp/applist/Spectrum
454: ---- &s.htm:1&</span></p>
455: <p><span style='font-size:8.0pt;font-family:"Courier New"'>acc.res.msu_12679c3ed543a25msul1.msu/mmp/applist/chain
456: ---- &chain.htm:1&</span></p>
457: <p><span style='font-size:8.0pt;font-family:"Courier New"'>acc.res.msu_12679c3ed543a25msul1.msu/mmp/applist/coulomb
458: ---- &orbit.htm:1&</span></p>
459: <p><span style='font-size:8.0pt;font-family:"Courier New"'>acc.res.msu_12679c3ed543a25msul1.msu/mmp/applist/induct
460: ---- &faraday.htm:1&</span></p>
461: <p><span style='font-size:8.0pt;font-family:"Courier New"'>acc.res.msu_12679c3ed543a25msul1.msu/mmp/conversions
462: ----</span></p>
463: <p><span style='font-size:8.0pt;font-family:"Courier New"'>&conv_area.htm:1&prefixes.htm:1&conv_power.htm:1&intro.htm:1&conv_temperature.htm:1&conv_time.htm:1&conv_velocity.htm:1&conversions.sequence:1&conv_length.htm:1&conv_mass.htm:1&conv_pressure.htm:1&conv_volume.htm:1&conv_energy.htm:1&conv_angle.htm:1&sibaseunits.htm:1&</span></p>
464: <p><span style='font-size:8.0pt;font-family:"Courier New"'>acc.res.msu_12679c3ed543a25msul1.msu/mmp/kap13
465: ---- &cd371.htm:1&</span></p>
466: <p><span style='font-size:8.0pt;font-family:"Courier New"'>acc.res.msu_12679c3ed543a25msul1.msu/mmp/kap16
467: ----</span></p>
468: <p><span style='font-size:8.0pt;font-family:"Courier New"'>&cd427.htm:1&cd424.htm:1&Stable.htm:1&cd421.htm:1&Constants.htm:1&cd425.htm:1&cd422.htm:1&kap16.sequence:1&cd426.htm:1&cd423.htm:1&</span></p>
469: <p><span style='font-size:8.0pt;font-family:"Courier New"'>acc.res.msu_12679c3ed543a25msul1.msu/mmp/kap17
470: ----</span></p>
471: <p><span style='font-size:8.0pt;font-family:"Courier New"'>&cd436.htm:1&kap17.sequence:1&cd433.htm:1&cd430.htm:1&cd437.htm:1&cd434.htm:1&cd428.htm:1&cd431.htm:1&cd435.htm:1&cd429.htm:1&geometry.htm:1&cd432.htm:1&</span></p>
472: <p><span style='font-size:8.0pt;font-family:"Courier New"'>acc.res.msu_12679c3ed543a25msul1.msu/mmp/kap17/calculus
473: ---- &calc.htm:1&</span></p>
474: <p><span style='font-size:8.0pt;font-family:"Courier New"'>acc.res.msu_12679c3ed543a25msul1.msu/mmp/kap18
475: ----</span></p>
476: <p><span style='font-size:8.0pt;font-family:"Courier New"'>&RR440.htm:1&RR449b.htm:1&RR446b.htm:1&cd473.htm:1&RR453.htm:1&RR447.htm:1&RR443b.htm:1&RR449a.htm:1&RR450.htm:1&RR452a.htm:1&RR444.htm:1&RR446a.htm:1&sum18a.htm:1|1&RR441.htm:1&RR443a.htm:1&eField.htm:1&RR454.htm:1&RR444b.htm:1&RR448.htm:1&RR447app.htm:1&RR451.htm:1&RR445.htm:1&RR453a.htm:1&kap18.sequence:1&RR439.htm:1&RR447a.htm:1&RR442.htm:1&RR450a.htm:1&RR444a.htm:1&RR448b.htm:1&RR445newch.htm:1&RR4460app.htm:1&RR455.htm:1&RR441a.htm:1&RR449.htm:1&RR452.htm:1&cd438.htm:1&RR446.htm:1&RR454a.htm:1&sum18.htm:1|1&RR446c.htm:1&RR448a.htm:1&RR451a.htm:1&RR443.htm:1&RR445answer.htm:0&RR445a.htm:1&</span></p>
477: <p><span style='font-size:8.0pt;font-family:"Courier New"'>acc.res.msu_12679c3ed543a25msul1.msu/mmp/kap18/demo
478: ----</span></p>
479: <p><span style='font-size:8.0pt;font-family:"Courier New"'>&vid440.htm:0&vid440sm.htm:0&vid449.htm:0&vid449-a.htm:0&vid441.htm:0&vid449sm.htm:0&vid455.htm:0&egun.htm:0&egunsm.htm:0&vid441sm.htm:0&vid449-asm.htm:0&vid455sm.htm:0&</span></p>
480: <p><span style='font-size:8.0pt;font-family:"Courier New"'>acc.res.msu_12679c3ed543a25msul1.msu/mmp/kap18/problems
481: ----</span></p>
482: <p><span style='font-size:8.0pt;font-family:"Courier New"'>&cd460b.problem:1&cd458.problem:1&cd462.problem:1&cd457.problem:1&cd461.problem:1&cd460.problem:1&cd464.problem:1&cd459.problem:1&cd463.problem:1&</span></p>
483: <p><span style='font-size:8.0pt;font-family:"Courier New"'>acc.res.msu_12679c3ed543a25msul1.msu/mmp/kap18a
484: ---- &kap18a.sequence:1&</span></p>
485: <p><span style='font-size:8.0pt;font-family:"Courier New"'>acc.res.msu_12679c3ed543a25msul1.msu/mmp/kap18a/problems
486: ----</span></p>
487: <p><span style='font-size:8.0pt;font-family:"Courier New"'>&cd465.problem:1&cd472.problem:1&cd466.problem:1&cd467.problem:1&cd470.problem:1&cd468.problem:1&cd471.problem:1&cd469.problem:1&</span></p>
488: <p><span style='font-size:8.0pt;font-family:"Courier New"'><i>É etc for all
489: resources in the course É</i></span></p>
490: <p class=H5><span style='layout-grid-mode:
491: both'>Browser Information</span></p>
492: <p><span style='font-size:8.0pt;font-family:"Courier New"'>browser.mathml
493: ---- </span></p>
494: <p><span style='font-size:8.0pt;font-family:"Courier New"'>browser.os ----
495: mac</span></p>
496: <p><span style='font-size:8.0pt;font-family:"Courier New"'>browser.type ----
497: netscape</span></p>
498: <p><span style='font-size:8.0pt;font-family:"Courier New"'>browser.version
499: ---- 4.75</span></p>
500: <p class=H5><span style='layout-grid-mode:
501: both'>Cached Information about Courses and their Description</span></p>
502: <p><span style='font-size:8.0pt;font-family:"Courier New"'>course.msu_12679c3ed543a16msul1.description
503: ---- lbs267L Lab SS01</span></p>
504: <p><span style='font-size:8.0pt;font-family:"Courier New"'>course.msu_12679c3ed543a16msul1.domain
505: ---- msu</span></p>
506: <p><span style='font-size:8.0pt;font-family:"Courier New"'>course.msu_12679c3ed543a16msul1.home
507: ---- msul1</span></p>
508: <p><span style='font-size:8.0pt;font-family:"Courier New"'>course.msu_12679c3ed543a16msul1.last_cache
509: ---- 990461725</span></p>
510: <p><span style='font-size:8.0pt;font-family:"Courier New"'>course.msu_12679c3ed543a16msul1.num
511: ---- 12679c3ed543a16msul1</span></p>
512: <p><span style='font-size:8.0pt;font-family:"Courier New"'>course.msu_12679c3ed543a16msul1.url
513: ---- msu/mmp/lbs267l.sequence</span></p>
514: <p><span style='font-size:8.0pt;font-family:"Courier New"'>course.msu_12679c3ed543a25msul1.description
515: ---- lbs267 Lecture SS01</span></p>
516: <p><span style='font-size:8.0pt;font-family:"Courier New"'>course.msu_12679c3ed543a25msul1.domain
517: ---- msu</span></p>
518: <p><span style='font-size:8.0pt;font-family:"Courier New"'>course.msu_12679c3ed543a25msul1.home
519: ---- msul1</span></p>
520: <p><span style='font-size:8.0pt;font-family:"Courier New"'>course.msu_12679c3ed543a25msul1.last_cache
521: ---- 990461728</span></p>
522: <p><span style='font-size:8.0pt;font-family:"Courier New"'>course.msu_12679c3ed543a25msul1.num
523: ---- 12679c3ed543a25msul1</span></p>
524: <p><span style='font-size:8.0pt;font-family:"Courier New"'>course.msu_12679c3ed543a25msul1.url
525: ---- msu/mmp/lbs267.sequence</span></p>
526: <p><span style='font-size:8.0pt;font-family:"Courier New"'>course.msu_12679c3ed543a37msul1.description
527: ---- Demo Course</span></p>
528: <p><span style='font-size:8.0pt;font-family:"Courier New"'>course.msu_12679c3ed543a37msul1.domain
529: ---- msu</span></p>
530: <p><span style='font-size:8.0pt;font-family:"Courier New"'>course.msu_12679c3ed543a37msul1.home
531: ---- msul1</span></p>
532: <p><span style='font-size:8.0pt;font-family:"Courier New"'>course.msu_12679c3ed543a37msul1.last_cache
533: ---- 990461725</span></p>
534: <p><span style='font-size:8.0pt;font-family:"Courier New"'>course.msu_12679c3ed543a37msul1.num
535: ---- 12679c3ed543a37msul1</span></p>
536: <p><span style='font-size:8.0pt;font-family:"Courier New"'>course.msu_12679c3ed543a37msul1.url
537: ---- msu/korte/demo.sequence</span></p>
538: <p class=H5><span style='layout-grid-mode:
539: both'>Information Imported from the Environment Database File of the User</span></p>
540: <p><span style='font-size:8.0pt;font-family:"Courier New"'>environment.favorite.cake
541: ---- Cheese Cake</span></p>
542: <p><span style='font-size:8.0pt;font-family:"Courier New"'>environment.favorite.color
543: ---- green</span></p>
544: <p><span style='font-size:8.0pt;font-family:"Courier New"'>environment.firstname
545: ---- Gerd</span></p>
546: <p><span style='font-size:8.0pt;font-family:"Courier New"'>environment.id
547: ---- z12345678</span></p>
548: <p><span style='font-size:8.0pt;font-family:"Courier New"'>environment.lastname
549: ---- Kortemeyer</span></p>
550: <p><b>Information about the Request</b></p>
551: <p><span style='font-size:8.0pt;font-family:"Courier New"'>httpref./res/msu/mmp/
552: ---- /res/msu/mmp/welcome267.htm</span></p>
553: <p><span style='font-size:8.0pt;font-family:"Courier New"'>request.ambiguous
554: ---- adm/pages/index.html</span></p>
555: <p><span style='font-size:8.0pt;font-family:"Courier New"'>request.course.fn
556: ---- /home/httpd/perl/tmp/kortemey_msu_12679c3ed543a25msul1</span></p>
557: <p><span style='font-size:8.0pt;font-family:"Courier New"'>request.course.id
558: ---- msu_12679c3ed543a25msul1</span></p>
559: <p><span style='font-size:8.0pt;font-family:"Courier New"'>request.course.sec
560: ---- </span></p>
561: <p><span style='font-size:8.0pt;font-family:"Courier New"'>request.course.uri
562: ---- msu/mmp/lbs267.sequence</span></p>
563: <p><span style='font-size:8.0pt;font-family:"Courier New"'>request.filename
564: ---- /home/httpd/html/adm/test</span></p>
565: <p><span style='font-size:8.0pt;font-family:"Courier New"'>request.host ----
566: zaphod.lite.msu.edu</span></p>
567: <p><span style='font-size:8.0pt;font-family:"Courier New"'>request.role ----
568: cc./msu/12679c3ed543a25msul1</span></p>
569: <p><span style='font-size:8.0pt;font-family:"Courier New"'>request.state ----
570: published</span></p>
571: <p class=H5><span style='layout-grid-mode:
572: both'>Information about the User</span></p>
573: <p><span style='font-size:8.0pt;font-family:"Courier New"'>user.domain ----
574: msu</span></p>
575: <p><span style='font-size:8.0pt;font-family:"Courier New"'>user.environment
576: ---- /home/httpd/lonIDs/kortemey_990461714_msu_msul1.id</span></p>
577: <p><span style='font-size:8.0pt;font-family:"Courier New"'>user.home ----
578: msul1</span></p>
579: <p><span style='font-size:8.0pt;font-family:"Courier New"'>user.login.time
580: ---- 990461714</span></p>
581: <p><span style='font-size:8.0pt;font-family:"Courier New"'>user.name ----
582: kortemey</span></p>
583: <p class=H5><span style='layout-grid-mode:
584: both'>Information about User Roles and Privileges</span></p>
585: <p><span style='font-size:8.0pt;font-family:"Courier New"'>user.priv.au./msu/./
586: ---- :sma&F:gan&F</span></p>
587: <p><span style='font-size:8.0pt;font-family:"Courier New"'>user.priv.au./msu/./msu/
588: ---- :cca&IK:are&F:bre&F:cre&F:ere&F</span></p>
589: <p><span style='font-size:8.0pt;font-family:"Courier New"'>user.priv.ca./msu/korte./
590: ---- :sma&F:gan&F</span></p>
591: <p><span style='font-size:8.0pt;font-family:"Courier New"'>user.priv.ca./msu/korte./msu/
592: ---- :are&F:bre&F:cre&F:ere&F</span></p>
593: <p><span style='font-size:8.0pt;font-family:"Courier New"'>user.priv.ca./msu/korte./msu/korte
594: ---- </span></p>
595: <p><span style='font-size:8.0pt;font-family:"Courier New"'>user.priv.cc./msu/12679c3ed543a16msul1./
596: ---- :sma&F:bre&F:mcr&F</span></p>
597: <p><span style='font-size:8.0pt;font-family:"Courier New"'>user.priv.cc./msu/12679c3ed543a16msul1./msu/
598: ---- </span></p>
599: <p><span style='font-size:8.0pt;font-family:"Courier New"'>user.priv.cc./msu/12679c3ed543a16msul1./msu/12679c3ed543a16msul1
600: ---- :opa&F:srm&F:gan&F:are&F:ccr&IK:cep&IK:cta&IK:cre&F:cst&IK:cin&IK:ere&F:vgr&F</span></p>
601: <p><span style='font-size:8.0pt;font-family:"Courier New"'>user.priv.cc./msu/12679c3ed543a25msul1./
602: ---- :sma&F:bre&F:mcr&F</span></p>
603: <p><span style='font-size:8.0pt;font-family:"Courier New"'>user.priv.cc./msu/12679c3ed543a25msul1./msu/
604: ---- </span></p>
605: <p><span style='font-size:8.0pt;font-family:"Courier New"'>user.priv.cc./msu/12679c3ed543a25msul1./msu/12679c3ed543a25msul1
606: ---- :opa&F:srm&F:gan&F:cta&IK:cep&IK:ccr&IK:are&F:cin&IK:cst&IK:cre&F:ere&F:vgr&F</span></p>
607: <p><span style='font-size:8.0pt;font-family:"Courier New"'>user.priv.cc./msu/12679c3ed543a37msul1./
608: ---- :sma&F:mcr&F:bre&F</span></p>
609: <p><span style='font-size:8.0pt;font-family:"Courier New"'>user.priv.cc./msu/12679c3ed543a37msul1./msu/
610: ---- </span></p>
611: <p><span style='font-size:8.0pt;font-family:"Courier New"'>user.priv.cc./msu/12679c3ed543a37msul1./msu/12679c3ed543a37msul1
612: ---- :opa&F:srm&F:gan&F:are&F:ccr&IK:cep&IK:cta&IK:cre&F:cst&IK:cin&IK:ere&F:vgr&F</span></p>
613: <p><span style='font-size:8.0pt;font-family:"Courier New"'>user.priv.cm./
614: ---- :sma&F:mcr&F:gan&F:bre&F</span></p>
615: <p><span style='font-size:8.0pt;font-family:"Courier New"'>user.priv.cm./msu/
616: ---- :mau&F:cca&IK:cad&UIK:ccc&U:cst&UIK:cdg&UIK:are&F:cli&UIK:cta&UIK:cep&UIK:ccr&UIK:bre&F:cau&U:cre&F:cin&UIK:ere&F</span></p>
617: <p><span style='font-size:8.0pt;font-family:"Courier New"'>user.priv.cm./msu/12679c3ed543a16msul1
618: ---- :opa&F:srm&F:gan&F:are&F:ccr&IK:cep&IK:cta&IK:cre&F:cst&IK:cin&IK:ere&F:vgr&F</span></p>
619: <p><span style='font-size:8.0pt;font-family:"Courier New"'>user.priv.cm./msu/12679c3ed543a25msul1
620: ---- :opa&F:srm&F:gan&F:are&F:ccr&IK:cep&IK:cta&IK:cre&F:cst&IK:cin&IK:ere&F:vgr&F</span></p>
621: <p><span style='font-size:8.0pt;font-family:"Courier New"'>user.priv.cm./msu/12679c3ed543a37msul1
622: ---- :opa&F:cst&IK:vgr&F:srm&F:gan&F:are&F:ccr&IK:cep&IK:cta&IK:cre&F:cin&IK:ere&F</span></p>
623: <p><span style='font-size:8.0pt;font-family:"Courier New"'>user.priv.cm./msu/korte
624: ---- </span></p>
625: <p><span style='font-size:8.0pt;font-family:"Courier New"'>user.priv.dc./msu/./
626: ---- :sma&F</span></p>
627: <p><span style='font-size:8.0pt;font-family:"Courier New"'>user.priv.dc./msu/./msu/
628: ---- :mau&F:cad&UIK:ccr&UIK:cep&UIK:cta&UIK:cli&UIK:ccc&U:cau&U:cst&UIK:cin&UIK:cdg&UIK</span></p>
629: <p><span style='font-size:8.0pt;font-family:"Courier New"'>user.role.au./msu/
630: ---- 964531839.0</span></p>
631: <p><span style='font-size:8.0pt;font-family:"Courier New"'>user.role.ca./msu/korte
632: ---- .</span></p>
633: <p><span style='font-size:8.0pt;font-family:"Courier New"'>user.role.cc./msu/12679c3ed543a16msul1
634: ---- 964531839.0</span></p>
635: <p><span style='font-size:8.0pt;font-family:"Courier New"'>user.role.cc./msu/12679c3ed543a25msul1
636: ---- 964531839.0</span></p>
637: <p><span style='font-size:8.0pt;font-family:"Courier New"'>user.role.cc./msu/12679c3ed543a37msul1
638: ---- 964531839.0</span></p>
639: <p><span style='font-size:8.0pt;font-family:"Courier New"'>user.role.dc./msu/
640: ---- 964531839.0</span></p>
641: <h2> </h2>
642: <h3><a name="_Toc421867052">Handler Reference: LON-CAPA and the 77 Web Perl
643: Modules</a></h3>
644: <p><i>Scott Harrison, freeware volunteer, sharrison@sourceforge.net</i><span
645: style='font-style:normal'> </span></p>
646: <p>LON-CAPA provides many different web services for coordinating online educational
647: interactions. Currently, these web services are made available by 77 different
648: perl modules. The invocation of these perl modules is many times due to
649: the URI format based on entries inside <tt><span style='font-family:
650: "Courier New"'>/etc/httpd/conf/loncapa_apache.conf</span></tt>. </p>
651: <p>Throughout this technical manual, various web perl modules are described
652: in detail. Here is a summary of all the 77 web perl modules: </p>
653: <table border=1 cellpadding=0>
654: <tr>
655: <td class="Normal">
656: <p align=center style='text-align:center'><b>Name/Location</b></p>
657: </td>
658: <td class="Normal">
659: <p align=center style='text-align:center'><b>Description</b></p>
660: </td>
661: </tr>
662: <tr>
663: <td class="Normal">
664: <p>SOURCE: rat/lonwrapper.pm<br>
665: TARGET: home/httpd/lib/perl/Apache/lonwrapper.pm</p>
666: </td>
667: <td class="Normal">
668: <p>Wrapper for external and binary files as standalone resources. Edit
669: handler for rat maps; TeX content handler.</p>
670: </td>
671: </tr>
672: <tr>
673: <td class="Normal">
674: <p>SOURCE: loncom/publisher/loncfile.pm<br>
675: TARGET: home/httpd/lib/perl/Apache/loncfile.pm</p>
676: </td>
677: <td class="Normal">
678: <p>Provides web-based functionality for file copy, rename, mkdir, etc,
679: in the construction space menu.</p>
680: </td>
681: </tr>
682: <tr>
683: <td class="Normal">
684: <p>SOURCE: loncom/interface/lonstatistics.pm<br>
685: TARGET: home/httpd/lib/perl/Apache/lonstatistics.pm</p>
686: </td>
687: <td class="Normal">
688: <p>Handler to show statistics on solving LON-CAPA problems.</p>
689: </td>
690: </tr>
691: <tr>
692: <td class="Normal">
693: <p>SOURCE: loncom/publisher/londiff.pm<br>
694: TARGET: home/httpd/lib/perl/Apache/londiff.pm</p>
695: </td>
696: <td class="Normal">
697: <p>Handler to show difference between two files.</p>
698: </td>
699: </tr>
700: <tr>
701: <td class="Normal">
702: <p>SOURCE: loncom/publisher/lonupload.pm<br>
703: TARGET: home/httpd/lib/perl/Apache/lonupload.pm</p>
704: </td>
705: <td class="Normal">
706: <p>Handler to upload files through browser into construction space.</p>
707: </td>
708: </tr>
709: <tr>
710: <td class="Normal">
711: <p>SOURCE: loncom/homework/essayresponse.pm<br>
712: TARGET: home/httpd/lib/perl/Apache/essayresponse.pm</p>
713: </td>
714: <td class="Normal">
715: <p>Handler to evaluate essay (ungraded) style responses.</p>
716: </td>
717: </tr>
718: <tr>
719: <td class="Normal">
720: <p>SOURCE: loncom/homework/externalresponse.pm<br>
721: TARGET: home/httpd/lib/perl/Apache/externalresponse.pm</p>
722: </td>
723: <td class="Normal">
724: <p>Handler to evaluate externally graded responses.</p>
725: </td>
726: </tr>
727: <tr>
728: <td class="Normal">
729: <p>SOURCE: loncom/homework/loncapagrade.pm<br>
730: TARGET: home/httpd/lib/perl/Apache/loncapagrade.pm</p>
731: </td>
732: <td class="Normal">
733: <p>Handler to evaluate externally graded responses.</p>
734: </td>
735: </tr>
736: <tr>
737: <td class="Normal">
738: <p>SOURCE: loncom/publisher/lonpubdir.pm<br>
739: TARGET: home/httpd/lib/perl/Apache/lonpubdir.pm</p>
740: </td>
741: <td class="Normal">
742: <p>Handler to publish directories.</p>
743: </td>
744: </tr>
745: <tr>
746: <td class="Normal">
747: <p>SOURCE: loncom/publisher/lonretrieve.pm<br>
748: TARGET: home/httpd/lib/perl/Apache/lonretrieve.pm</p>
749: </td>
750: <td class="Normal">
751: <p>Handler to retrieve old versions from resource space.</p>
752: </td>
753: </tr>
754: <tr>
755: <td class="Normal">
756: <p>SOURCE: loncom/homework/edit.pm<br>
757: TARGET: home/httpd/lib/perl/Apache/edit.pm</p>
758: </td>
759: <td class="Normal">
760: <p>Helper functions when in homework edit mode.</p>
761: </td>
762: </tr>
763: <tr>
764: <td class="Normal">
765: <p>SOURCE: loncom/interface/lonmeta.pm<br>
766: TARGET: home/httpd/lib/perl/Apache/lonmeta.pm</p>
767: </td>
768: <td class="Normal">
769: <p>Metadata display handler.</p>
770: </td>
771: </tr>
772: <tr>
773: <td class="Normal">
774: <p>SOURCE: rat/lonambiguous.pm<br>
775: TARGET: home/httpd/lib/perl/Apache/lonambiguous.pm</p>
776: </td>
777: <td class="Normal">
778: <p>Handler to resolve ambiguous file locations.</p>
779: </td>
780: </tr>
781: <tr>
782: <td class="Normal">
783: <p>SOURCE: rat/lonratparms.pm<br>
784: TARGET: home/httpd/lib/perl/Apache/lonratparms.pm</p>
785: </td>
786: <td class="Normal">
787: <p>Handler to set resource parameters inside of the RAT based on metadata.</p>
788: </td>
789: </tr>
790: <tr>
791: <td class="Normal">
792: <p>SOURCE: rat/lonsequence.pm<br>
793: TARGET: home/httpd/lib/perl/Apache/lonsequence.pm</p>
794: </td>
795: <td class="Normal">
796: <p>Handler for showing sequence objects of educational resources.</p>
797: </td>
798: </tr>
799: <tr>
800: <td class="Normal">
801: <p>SOURCE: loncom/interface/loncreatecourse.pm<br>
802: TARGET: home/httpd/lib/perl/Apache/loncreatecourse.pm</p>
803: </td>
804: <td class="Normal">
805: <p>Allows domain coordinators to create new courses and assign course
806: coordinators.</p>
807: </td>
808: </tr>
809: <tr>
810: <td class="Normal">
811: <p>SOURCE: loncom/interface/loncreateuser.pm<br>
812: TARGET: home/httpd/lib/perl/Apache/loncreateuser.pm</p>
813: </td>
814: <td class="Normal">
815: <p>Allows users to within their own privileges create/edit users and
816: give them roles.</p>
817: </td>
818: </tr>
819: <tr>
820: <td class="Normal">
821: <p>SOURCE: loncom/interface/lonchart.pm<br>
822: TARGET: home/httpd/lib/perl/Apache/lonchart.pm</p>
823: </td>
824: <td class="Normal">
825: <p>Produces simple LectureOnline-like student assessment performance
826: chart</p>
827: </td>
828: </tr>
829: <tr>
830: <td class="Normal">
831: <p>SOURCE: loncom/interface/loncommon.pm<br>
832: TARGET: home/httpd/lib/perl/Apache/loncommon.pm</p>
833: </td>
834: <td class="Normal">
835: <p>Makes a table out of the previous attempts. Inputs result_from_symbread,
836: user, domain, home_server, course_id.</p>
837: </td>
838: </tr>
839: <tr>
840: <td class="Normal">
841: <p>SOURCE: loncom/homework/grades.pm<br>
842: TARGET: home/httpd/lib/perl/Apache/grades.pm</p>
843: </td>
844: <td class="Normal">
845: <p>Handles the viewing of grades.</p>
846: </td>
847: </tr>
848: <tr>
849: <td class="Normal">
850: <p>SOURCE: loncom/homework/imageresponse.pm<br>
851: TARGET: home/httpd/lib/perl/Apache/imageresponse.pm</p>
852: </td>
853: <td class="Normal">
854: <p>Coordinates the response to clicking an image.</p>
855: </td>
856: </tr>
857: <tr>
858: <td class="Normal">
859: <p>SOURCE: loncom/homework/optionresponse.pm<br>
860: TARGET: home/httpd/lib/perl/Apache/optionresponse.pm</p>
861: </td>
862: <td class="Normal">
863: <p>Handles tags associated with showing a list of options.</p>
864: </td>
865: </tr>
866: <tr>
867: <td class="Normal">
868: <p>SOURCE: loncom/homework/outputtags.pm<br>
869: TARGET: home/httpd/lib/perl/Apache/outputtags.pm</p>
870: </td>
871: <td class="Normal">
872: <p>Handles tags associated with output. Seems to relate to due dates
873: of the assignment.</p>
874: </td>
875: </tr>
876: <tr>
877: <td class="Normal">
878: <p>SOURCE: loncom/interface/lontest.pm<br>
879: TARGET: home/httpd/lib/perl/Apache/lontest.pm</p>
880: </td>
881: <td class="Normal">
882: <p>Used for debugging and testing the LON-CAPA system.</p>
883: </td>
884: </tr>
885: <tr>
886: <td class="Normal">
887: <p>SOURCE: loncom/homework/radiobuttonresponse.pm<br>
888: TARGET: home/httpd/lib/perl/Apache/radiobuttonresponse.pm</p>
889: </td>
890: <td class="Normal">
891: <p>Handles multiple-choice style responses.</p>
892: </td>
893: </tr>
894: <tr>
895: <td class="Normal">
896: <p>SOURCE: loncom/interface/lonassignments.pm<br>
897: TARGET: home/httpd/lib/perl/Apache/lonassignments.pm</p>
898: </td>
899: <td class="Normal">
900: <p>Handles processing of assignments.</p>
901: </td>
902: </tr>
903: <tr>
904: <td class="Normal">
905: <p>SOURCE: loncom/interface/loncommunicate.pm<br>
906: TARGET: home/httpd/lib/perl/Apache/loncommunicate.pm</p>
907: </td>
908: <td class="Normal">
909: <p>Will be the access handler to email sending, as well as the planned
910: chatrooms, etc.</p>
911: </td>
912: </tr>
913: <tr>
914: <td class="Normal">
915: <p>SOURCE: loncom/interface/lonerrorhandler.pm<br>
916: TARGET: home/httpd/lib/perl/Apache/lonerrorhandler.pm</p>
917: </td>
918: <td class="Normal">
919: <p>Handles errors.</p>
920: </td>
921: </tr>
922: <tr>
923: <td class="Normal">
924: <p>SOURCE: loncom/interface/lonevaluate.pm<br>
925: TARGET: home/httpd/lib/perl/Apache/lonevaluate.pm</p>
926: </td>
927: <td class="Normal">
928: <p>Handles evaluation.</p>
929: </td>
930: </tr>
931: <tr>
932: <td class="Normal">
933: <p>SOURCE: loncom/interface/lonfeedback.pm<br>
934: TARGET: home/httpd/lib/perl/Apache/lonfeedback.pm</p>
935: </td>
936: <td class="Normal">
937: <p>Handles feedback from students to instructors and system administrators.
938: Provides a screenshot of the current resource, as well as previous
939: attempts if the resource was a homework. Used by lonmsg.pm.</p>
940: </td>
941: </tr>
942: <tr>
943: <td class="Normal">
944: <p>SOURCE: loncom/interface/lonnavmaps.pm<br>
945: TARGET: home/httpd/lib/perl/Apache/lonnavmaps.pm</p>
946: </td>
947: <td class="Normal">
948: <p>Handles navigational maps.</p>
949: </td>
950: </tr>
951: <tr>
952: <td class="Normal">
953: <p>SOURCE: loncom/interface/lonpreferences.pm<br>
954: TARGET: home/httpd/lib/perl/Apache/lonpreferences.pm</p>
955: </td>
956: <td class="Normal">
957: <p>Handles user preferences associated with customizing the online LON-CAPA
958: educational environment.</p>
959: </td>
960: </tr>
961: <tr>
962: <td class="Normal">
963: <p>SOURCE: loncom/interface/lonprintout.pm<br>
964: TARGET: home/httpd/lib/perl/Apache/lonprintout.pm</p>
965: </td>
966: <td class="Normal">
967: <p>Handles the production of printable files and resources.</p>
968: </td>
969: </tr>
970: <tr>
971: <td class="Normal">
972: <p>SOURCE: loncom/interface/lonsearchcat.pm<br>
973: TARGET: home/httpd/lib/perl/Apache/lonsearchcat.pm</p>
974: </td>
975: <td class="Normal">
976: <p>Handles a searchable catalogue.</p>
977: </td>
978: </tr>
979: <tr>
980: <td class="Normal">
981: <p>SOURCE: loncom/interface/londropadd.pm<br>
982: TARGET: home/httpd/lib/perl/Apache/londropadd.pm</p>
983: </td>
984: <td class="Normal">
985: <p>Allows course coordinators to upload courselists in different formats,
986: and automatically create users (if they do not exist already), assign
987: them the role of student in a course, and add them to the classlist.</p>
988: </td>
989: </tr>
990: <tr>
991: <td class="Normal">
992: <p>SOURCE: loncom/interface/lonmsg.pm<br>
993: TARGET: home/httpd/lib/perl/Apache/lonmsg.pm</p>
994: </td>
995: <td class="Normal">
996: <p>lonmsg.pm has several functions to send and receive internal messages.
997: author_res_msg - send message to resource author. user_crit_msg -
998: send a critical message to a user. A critical message will require
999: acknowledgment by the recipient and the sender will be notified. user_crit_received
1000: - routine to trigger acknowledgment. statuschange - change the status
1001: of a message (read, replied, forwarded, etc). The handler also displays
1002: messages, has routines to reply, etc.</p>
1003: </td>
1004: </tr>
1005: <tr>
1006: <td class="Normal">
1007: <p>SOURCE: loncom/homework/hint.pm<br>
1008: TARGET: home/httpd/lib/perl/Apache/hint.pm</p>
1009: </td>
1010: <td class="Normal">
1011: <p>This handler coordinates the delivery of hints to students working
1012: on LON-CAPA problems and assignments.</p>
1013: </td>
1014: </tr>
1015: <tr>
1016: <td class="Normal">
1017: <p>SOURCE: loncom/interface/lonspreadsheet.pm<br>
1018: TARGET: home/httpd/lib/perl/Apache/lonspreadsheet.pm</p>
1019: </td>
1020: <td class="Normal">
1021: <p>Spreadsheets are completely web-based. They exist on the level of
1022: a whole course, a student, and individual assessments.</p>
1023: </td>
1024: </tr>
1025: <tr>
1026: <td class="Normal">
1027: <p>SOURCE: loncom/interface/lonparmset.pm<br>
1028: TARGET: home/httpd/lib/perl/Apache/lonparmset.pm</p>
1029: </td>
1030: <td class="Normal">
1031: <p>Handler to resolve ambiguous file locations</p>
1032: </td>
1033: </tr>
1034: <tr>
1035: <td class="Normal">
1036: <p>SOURCE: loncom/publisher/lonconstruct.pm<br>
1037: TARGET: home/httpd/lib/perl/Apache/lonconstruct.pm</p>
1038: </td>
1039: <td class="Normal">
1040: <p>Page wrapper for handling construction space.</p>
1041: </td>
1042: </tr>
1043: <tr>
1044: <td class="Normal">
1045: <p>SOURCE: loncom/publisher/lonpublisher.pm<br>
1046: TARGET: home/httpd/lib/perl/Apache/lonpublisher.pm</p>
1047: </td>
1048: <td class="Normal">
1049: <p>Publishes an LON-CAPA educational resource complete with metadata
1050: (authorship, language, copyright, creation date, etc).</p>
1051: </td>
1052: </tr>
1053: <tr>
1054: <td class="Normal">
1055: <p>SOURCE: loncom/interface/lonmenu.pm<br>
1056: TARGET: home/httpd/lib/perl/Apache/lonmenu.pm</p>
1057: </td>
1058: <td class="Normal">
1059: <p>Has routines which control the remote control.</p>
1060: </td>
1061: </tr>
1062: <tr>
1063: <td class="Normal">
1064: <p>SOURCE: rat/lonpageflip.pm<br>
1065: TARGET: home/httpd/lib/perl/Apache/lonpageflip.pm</p>
1066: </td>
1067: <td class="Normal">
1068: <p>Deals with forward, backward, and other page flips.</p>
1069: </td>
1070: </tr>
1071: <tr>
1072: <td class="Normal">
1073: <p>SOURCE: rat/lonratedt.pm<br>
1074: TARGET: home/httpd/lib/perl/Apache/lonratedt.pm</p>
1075: </td>
1076: <td class="Normal">
1077: <p>Builds up frame set and loads in the right thing.</p>
1078: </td>
1079: </tr>
1080: <tr>
1081: <td class="Normal">
1082: <p>SOURCE: loncom/html/res/adm/pages/homeworkmenu.html<br>
1083: TARGET: home/httpd/html/res/adm/pages/homeworkmenu.html</p>
1084: </td>
1085: <td class="Normal">
1086: <p>Homework remote control.</p>
1087: </td>
1088: </tr>
1089: <tr>
1090: <td class="Normal">
1091: <p>SOURCE: loncom/html/res/adm/pages/annotator/admannotations.pm<br>
1092: TARGET: home/httpd/lib/perl/Apache/admannotations.pm</p>
1093: </td>
1094: <td class="Normal">
1095: <p>This will take annotations and then plug them into a page.</p>
1096: </td>
1097: </tr>
1098: <tr>
1099: <td class="Normal">
1100: <p>SOURCE: loncom/html/res/adm/pages/bookmarkmenu/admbookmarks.pm<br>
1101: TARGET: home/httpd/lib/perl/Apache/admbookmarks.pm</p>
1102: </td>
1103: <td class="Normal">
1104: <p>This will take bookmarks and get/write/display them for the LON-CAPA
1105: user interface.</p>
1106: </td>
1107: </tr>
1108: <tr>
1109: <td class="Normal">
1110: <p>SOURCE: rat/lonratsrv.pm<br>
1111: TARGET: home/httpd/lib/perl/Apache/lonratsrv.pm</p>
1112: </td>
1113: <td class="Normal">
1114: <p>Handler that takes output from RAT and stores it on disk. Handles
1115: the upper hidden frame of the added window that comes up in RAT. (3
1116: frames come up in RAT server, code, and output. This module handles
1117: server connection.)</p>
1118: </td>
1119: </tr>
1120: <tr>
1121: <td class="Normal">
1122: <p>SOURCE: rat/lonpage.pm<br>
1123: TARGET: home/httpd/lib/perl/Apache/lonpage.pm</p>
1124: </td>
1125: <td class="Normal">
1126: <p>bundles pages into one page</p>
1127: </td>
1128: </tr>
1129: <tr>
1130: <td class="Normal">
1131: <p>SOURCE: rat/lonuserstate.pm<br>
1132: TARGET: home/httpd/lib/perl/Apache/lonuserstate.pm</p>
1133: </td>
1134: <td class="Normal">
1135: <p>compile course into binary data structure (in loncom/rat)</p>
1136: </td>
1137: </tr>
1138: <tr>
1139: <td class="Normal">
1140: <p>SOURCE: loncom/xml/lontex.pm<br>
1141: TARGET: home/httpd/lib/perl/Apache/lontex.pm</p>
1142: </td>
1143: <td class="Normal">
1144: <p>Handler for tex files (somewhere in modules)</p>
1145: </td>
1146: </tr>
1147: <tr>
1148: <td class="Normal">
1149: <p>SOURCE: loncom/xml/lontexconvert.pm<br>
1150: TARGET: home/httpd/lib/perl/Apache/lontexconvert.pm</p>
1151: </td>
1152: <td class="Normal">
1153: <p>Access to tth/ttm</p>
1154: </td>
1155: </tr>
1156: <tr>
1157: <td class="Normal">
1158: <p>SOURCE: loncom/xml/lonxml.pm<br>
1159: TARGET: home/httpd/lib/perl/Apache/lonxml.pm</p>
1160: </td>
1161: <td class="Normal">
1162: <p>XML Parsing Module</p>
1163: </td>
1164: </tr>
1165: <tr>
1166: <td class="Normal">
1167: <p>SOURCE: loncom/xml/lonplot.pm<br>
1168: TARGET: home/httpd/lib/perl/Apache/lonplot.pm</p>
1169: </td>
1170: <td class="Normal">
1171: <p>XML-based plotter of graphs</p>
1172: </td>
1173: </tr>
1174: <tr>
1175: <td class="Normal">
1176: <p>SOURCE: loncom/xml/style.pm<br>
1177: TARGET: home/httpd/lib/perl/Apache/style.pm</p>
1178: </td>
1179: <td class="Normal">
1180: <p>Style Parsing Module</p>
1181: </td>
1182: </tr>
1183: <tr>
1184: <td class="Normal">
1185: <p>SOURCE: loncom/xml/londefdef.pm<br>
1186: TARGET: home/httpd/lib/perl/Apache/londefdef.pm</p>
1187: </td>
1188: <td class="Normal">
1189: <p>Tags Default Definition Module</p>
1190: </td>
1191: </tr>
1192: <tr>
1193: <td class="Normal">
1194: <p>SOURCE: loncom/xml/run.pm<br>
1195: TARGET: home/httpd/lib/perl/Apache/run.pm</p>
1196: </td>
1197: <td class="Normal">
1198: <p>used to prevent poorly written problems from causing lingering after
1199: effects</p>
1200: </td>
1201: </tr>
1202: <tr>
1203: <td class="Normal">
1204: <p>SOURCE: loncom/xml/scripttag.pm<br>
1205: TARGET: home/httpd/lib/perl/Apache/scripttag.pm</p>
1206: </td>
1207: <td class="Normal">
1208: <p>implements <script>, <scriptlib>, <parserlib>,
1209: and <import></p>
1210: </td>
1211: </tr>
1212: <tr>
1213: <td class="Normal">
1214: <p>SOURCE: loncom/homework/randomlabel.pm<br>
1215: TARGET: home/httpd/lib/perl/Apache/randomlabel.pm</p>
1216: </td>
1217: <td class="Normal">
1218: <p>Interface for producing applet code which randomizes the labelling
1219: of an image.</p>
1220: </td>
1221: </tr>
1222: <tr>
1223: <td class="Normal">
1224: <p>SOURCE: loncom/homework/lonhomework.pm<br>
1225: TARGET: home/httpd/lib/perl/Apache/lonhomework.pm</p>
1226: </td>
1227: <td class="Normal">
1228: <p>handles requests for output, evaluation, and alteration of a homework
1229: resource</p>
1230: </td>
1231: </tr>
1232: <tr>
1233: <td class="Normal">
1234: <p>SOURCE: loncom/homework/inputtags.pm<br>
1235: TARGET: home/httpd/lib/perl/Apache/inputtags.pm</p>
1236: </td>
1237: <td class="Normal">
1238: <p>produces HTML input tags (<INPUT>) for rendering homework resources</p>
1239: </td>
1240: </tr>
1241: <tr>
1242: <td class="Normal">
1243: <p>SOURCE: loncom/homework/structuretags.pm<br>
1244: TARGET: home/httpd/lib/perl/Apache/structuretags.pm</p>
1245: </td>
1246: <td class="Normal">
1247: <p>produces HTML tags necessary for structuring the presentation of
1248: homework resources</p>
1249: </td>
1250: </tr>
1251: <tr>
1252: <td class="Normal">
1253: <p>SOURCE: loncom/homework/response.pm<br>
1254: TARGET: home/httpd/lib/perl/Apache/response.pm</p>
1255: </td>
1256: <td class="Normal">
1257: <p>defines different types of responses given to student as well as
1258: syntax for producing response values</p>
1259: </td>
1260: </tr>
1261: <tr>
1262: <td class="Normal">
1263: <p>SOURCE: loncom/homework/caparesponse/caparesponse.pm<br>
1264: TARGET: home/httpd/lib/perl/Apache/caparesponse.pm</p>
1265: </td>
1266: <td class="Normal">
1267: <p>handles request to the CAPA homework processing engine</p>
1268: </td>
1269: </tr>
1270: <tr>
1271: <td class="Normal">
1272: <p>SOURCE: loncom/xml/Safe.pm<br>
1273: TARGET: home/httpd/lib/perl/Safe.pm</p>
1274: </td>
1275: <td class="Normal">
1276: <p>Meant to safely substitute for CPAN version of Safe. Allows for safely
1277: executing embedded perl comands in a way that does not threaten the
1278: operating system.</p>
1279: </td>
1280: </tr>
1281: <tr>
1282: <td class="Normal">
1283: <p>SOURCE: loncom/auth/localauth.pm<br>
1284: TARGET: home/httpd/lib/perl/localauth.pm</p>
1285: </td>
1286: <td class="Normal">
1287: <p>Local authentication mechanism (meant to be customized).</p>
1288: </td>
1289: </tr>
1290: <tr>
1291: <td class="Normal">
1292: <p>SOURCE: loncom/auth/lonacc.pm<br>
1293: TARGET: home/httpd/lib/perl/Apache/lonacc.pm</p>
1294: </td>
1295: <td class="Normal">
1296: <p>(This module, like loncacc.pm also authenticates with cookies.) lonacc.pm
1297: coordinates access to a wide range of administrative-type functions
1298: (e.g. roles, logout, annotations, and bookmarks) as well as coordinating
1299: access to educational resources.</p>
1300: </td>
1301: </tr>
1302: <tr>
1303: <td class="Normal">
1304: <p>SOURCE: loncom/auth/lonracc.pm<br>
1305: TARGET: home/httpd/lib/perl/Apache/lonracc.pm</p>
1306: </td>
1307: <td class="Normal">
1308: <p>access handler for file transfers</p>
1309: </td>
1310: </tr>
1311: <tr>
1312: <td class="Normal">
1313: <p>SOURCE: loncom/auth/loncacc.pm<br>
1314: TARGET: home/httpd/lib/perl/Apache/loncacc.pm</p>
1315: </td>
1316: <td class="Normal">
1317: <p>This module provides access to an educational resource construction
1318: area. This module is invoked by the URL-related pattern syntax LocationMatch
1319: "^/priv.*" or LocationMatch "^/\~.*". Authentication
1320: of user identity is coordinated through cookies. The abbreviation
1321: "cacc" corresponds to "construction-space access").
1322: If the cookie handle is invalid, then this module returns a forbidden
1323: status and makes appropriate log entries. If the cookie handle is
1324: valid, status is determined to be okay (and, for the "priv"-type
1325: access, the resource is delivered by the lonconstruct module).</p>
1326: </td>
1327: </tr>
1328: <tr>
1329: <td class="Normal">
1330: <p>SOURCE: loncom/auth/lonauth.pm<br>
1331: TARGET: home/httpd/lib/perl/Apache/lonauth.pm</p>
1332: </td>
1333: <td class="Normal">
1334: <p>authenticate, set up session environment</p>
1335: </td>
1336: </tr>
1337: <tr>
1338: <td class="Normal">
1339: <p>SOURCE: loncom/auth/lonlogin.pm<br>
1340: TARGET: home/httpd/lib/perl/Apache/lonlogin.pm</p>
1341: </td>
1342: <td class="Normal">
1343: <p>login screen</p>
1344: </td>
1345: </tr>
1346: <tr>
1347: <td class="Normal">
1348: <p>SOURCE: loncom/auth/lonlogout.pm<br>
1349: TARGET: home/httpd/lib/perl/Apache/lonlogout.pm</p>
1350: </td>
1351: <td class="Normal">
1352: <p>logout</p>
1353: </td>
1354: </tr>
1355: <tr>
1356: <td class="Normal">
1357: <p>SOURCE: loncom/lonnet/perl/lonrep.pm<br>
1358: TARGET: home/httpd/lib/perl/Apache/lonrep.pm</p>
1359: </td>
1360: <td class="Normal">
1361: <p>replication</p>
1362: </td>
1363: </tr>
1364: <tr>
1365: <td class="Normal">
1366: <p>SOURCE: loncom/auth/lonroles.pm<br>
1367: TARGET: home/httpd/lib/perl/Apache/lonroles.pm</p>
1368: </td>
1369: <td class="Normal">
1370: <p>This perl handling module reads in the available roles available
1371: for a LON-CAPA user (different courses, different privileges, etc)
1372: and produces a form-element HTML page which allows the user to select
1373: which role he wishes to exercise in the LON-CAPA system. For instance,
1374: a user may want to select between being a student in a thermodynamics
1375: physics course or a teaching assistant for an introductory calculus
1376: class.</p>
1377: </td>
1378: </tr>
1379: <tr>
1380: <td class="Normal">
1381: <p>SOURCE: loncom/interface/lonindexer.pm<br>
1382: TARGET: home/httpd/lib/perl/Apache/lonindexer.pm</p>
1383: </td>
1384: <td class="Normal">
1385: <p>cross server filesystem browser</p>
1386: </td>
1387: </tr>
1388: <tr>
1389: <td class="Normal">
1390: <p>SOURCE: loncom/interface/groupsort.pm<br>
1391: TARGET: home/httpd/lib/perl/Apache/groupsort.pm</p>
1392: </td>
1393: <td class="Normal">
1394: <p>Implements a second phase of importing multiple resources into the
1395: RAT. Allows for reordering the sequence of resources.</p>
1396: </td>
1397: </tr>
1398: <tr>
1399: <td class="Normal">
1400: <p>SOURCE: loncom/lonnet/perl/lonnet.pm<br>
1401: TARGET: home/httpd/lib/perl/Apache/lonnet.pm</p>
1402: </td>
1403: <td class="Normal">
1404: <p>This file is an interface to the lonc processes of the LON-CAPA network
1405: as well as set of elaborated functions for handling information necessary
1406: for navigating through a given cluster of LON-CAPA machines within
1407: a domain. There are over 40 specialized functions in this module which
1408: handle the reading and transmission of metadata, user information
1409: (ids, names, environments, roles, logs), file information (storage,
1410: reading, directories, extensions, replication, embedded styles and
1411: descriptors), educational resources (course descriptions, section
1412: names and numbers), url hashing (to assign roles on a url basis),
1413: and translating abbreviated symbols to and from more descriptive phrases
1414: or explanations.</p>
1415: </td>
1416: </tr>
1417: <tr>
1418: <td class="Normal">
1419: <p>SOURCE: loncom/homework/lectureonline.lcpm<br>
1420: TARGET: home/httpd/html/res/adm/includes/lectureonline.lcpm</p>
1421: </td>
1422: <td class="Normal">
1423: <p>Intended for providing perl functions for the <script></script>
1424: environment in a problem that was converted from lectureonline.</p>
1425: </td>
1426: </tr>
1427: <tr>
1428: <td class="Normal">
1429: <p>SOURCE: loncom/homework/default_homework.lcpm<br>
1430: TARGET: home/httpd/html/res/adm/includes/default_homework.lcpm</p>
1431: </td>
1432: <td class="Normal">
1433: <p>Provides many functions for the <script> environment in a .problem.
1434: Functions are documented in CVS:loncapa/doc/homework/homework5.html.</p>
1435: </td>
1436: </tr>
1437: </table>
1438: </div>
1439: </div>
1440: </body>
1441: </html>
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>