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 (20 years, 10 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_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.&nbsp; 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).&nbsp; </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"'>&lt;LocationMatch &quot;^/res.*&quot;&gt;</span></p>
  117:     <p style='border:none;padding:0in;'><span
  118: style='font-size:8.0pt;font-family:"Courier New"'>PerlAccessHandler&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  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&nbsp;&nbsp;&nbsp;&nbsp; 
  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&nbsp;&nbsp;&nbsp;&nbsp; 
  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&nbsp;&nbsp;&nbsp;&nbsp; 
  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&nbsp;&nbsp;&nbsp;&nbsp; 
  133:       500 /adm/errorhandler</span></p>
  134:     <p style='border:none;padding:0in;'><span
  135: style='font-size:8.0pt;font-family:"Courier New"'>&lt;/LocationMatch&gt;</span></p>
  136:     <p style='border:none;padding:0in;'><span
  137: style='font-size:8.0pt;font-family:"Courier New"'>&lt;LocationMatch &quot;^/priv.*&quot;&gt;</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&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  142:       perl-script</span></p>
  143:     <p style='border:none;padding:0in;'><span
  144: style='font-size:8.0pt;font-family:"Courier New"'>PerlHandler&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  145:       Apache::lonconstruct</span></p>
  146:     <p style='border:none;padding:0in;'><span
  147: style='font-size:8.0pt;font-family:"Courier New"'>ErrorDocument&nbsp;&nbsp;&nbsp;&nbsp; 
  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&nbsp;&nbsp;&nbsp;&nbsp; 
  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&nbsp;&nbsp;&nbsp;&nbsp; 
  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&nbsp;&nbsp;&nbsp;&nbsp; 
  157:       500 /adm/errorhandler</span></p>
  158:     <p style='border:none;padding:0in;'><span
  159: style='font-size:8.0pt;font-family:"Courier New"'>&lt;/LocationMatch&gt;</span></p>
  160:     <p style='border:none;padding:0in;'><span
  161: style='font-size:8.0pt;font-family:"Courier New"'>&lt;LocationMatch &quot;^/raw.*&quot;&gt;</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"'>&lt;/LocationMatch&gt;</span></p>
  166:     <p style='border:none;padding:0in;'><span
  167: style='font-size:8.0pt;font-family:"Courier New"'>&lt;LocationMatch &quot;^/\~.*&quot;&gt;</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&nbsp;&nbsp;&nbsp;&nbsp; 
  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&nbsp;&nbsp;&nbsp;&nbsp; 
  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&nbsp;&nbsp;&nbsp;&nbsp; 
  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&nbsp;&nbsp;&nbsp;&nbsp; 
  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"'>&lt;/LocationMatch&gt;</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"'>&lt;LocationMatch &quot;^/res/.*/$&quot;&gt;</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"'>&lt;/LocationMatch&gt;</span></p>
  200:     <p style='border:none;padding:0in;'><span
  201: style='font-size:8.0pt;font-family:"Courier New"'>&lt;LocationMatch &quot;^/res/.*\.tex$&quot;&gt;</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"'>&lt;/LocationMatch&gt;</span></p>
  208:     <p style='border:none;padding:0in;'><span
  209: style='font-size:8.0pt;font-family:"Courier New"'>&lt;LocationMatch &quot;^/res/.*\.page$&gt;</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"'>&lt;/LocationMatch&gt;</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"'>&lt;LocationMatch &quot;^/(res|\~).*\.(xml|html|htm|xhtml|xhtm)$&quot;&gt;</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"'>&lt;/LocationMatch&gt;</span></p>
  226:     <p style='border:none;padding:0in;'><span
  227: style='font-size:8.0pt;font-family:"Courier New"'>&lt;LocationMatch &quot;^/(res|\~).*\.(problem|exam|quiz|assess|survey|form)$&quot;&gt;</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"'>&lt;/LocationMatch&gt;</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"'>&lt;Location /adm/roles&gt;</span></p>
  239:     <p style='border:none;padding:0in;'><span
  240: style='font-size:8.0pt;font-family:"Courier New"'>PerlAccessHandler&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  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&nbsp;&nbsp;&nbsp;&nbsp; 
  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&nbsp;&nbsp;&nbsp;&nbsp; 
  251:       500 /adm/errorhandler</span></p>
  252:     <p style='border:none;padding:0in;'><span
  253: style='font-size:8.0pt;font-family:"Courier New"'>&lt;/Location&gt;</span></p>
  254:     <p style='border:none;padding:0in;'><span
  255: style='font-size:8.0pt;font-family:"Courier New"'>&lt;Location /adm/login&gt;</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"'>&lt;/Location&gt;</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"'>&lt;Location /adm/annotations&gt;</span></p>
  266:     <p style='border:none;padding:0in;'><span
  267: style='font-size:8.0pt;font-family:"Courier New"'>PerlAccessHandler&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  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&nbsp;&nbsp;&nbsp;&nbsp; 
  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&nbsp;&nbsp;&nbsp;&nbsp; 
  278:       500 /adm/errorhandler</span></p>
  279:     <p style='border:none;padding:0in;'><span
  280: style='font-size:8.0pt;font-family:"Courier New"'>&lt;/Location&gt;</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.&nbsp; <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&curren;</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:       ---- &amp;:1&amp;</span></p>
  451:     <p><span style='font-size:8.0pt;font-family:"Courier New"'>acc.res.msu_12679c3ed543a25msul1.msu/mmp 
  452:       ---- &amp;welcome267.htm:1&amp;welcomelbs267.htm:0&amp;</span></p>
  453:     <p><span style='font-size:8.0pt;font-family:"Courier New"'>acc.res.msu_12679c3ed543a25msul1.msu/mmp/applist/Spectrum 
  454:       ---- &amp;s.htm:1&amp;</span></p>
  455:     <p><span style='font-size:8.0pt;font-family:"Courier New"'>acc.res.msu_12679c3ed543a25msul1.msu/mmp/applist/chain 
  456:       ---- &amp;chain.htm:1&amp;</span></p>
  457:     <p><span style='font-size:8.0pt;font-family:"Courier New"'>acc.res.msu_12679c3ed543a25msul1.msu/mmp/applist/coulomb 
  458:       ---- &amp;orbit.htm:1&amp;</span></p>
  459:     <p><span style='font-size:8.0pt;font-family:"Courier New"'>acc.res.msu_12679c3ed543a25msul1.msu/mmp/applist/induct 
  460:       ---- &amp;faraday.htm:1&amp;</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"'>&amp;conv_area.htm:1&amp;prefixes.htm:1&amp;conv_power.htm:1&amp;intro.htm:1&amp;conv_temperature.htm:1&amp;conv_time.htm:1&amp;conv_velocity.htm:1&amp;conversions.sequence:1&amp;conv_length.htm:1&amp;conv_mass.htm:1&amp;conv_pressure.htm:1&amp;conv_volume.htm:1&amp;conv_energy.htm:1&amp;conv_angle.htm:1&amp;sibaseunits.htm:1&amp;</span></p>
  464:     <p><span style='font-size:8.0pt;font-family:"Courier New"'>acc.res.msu_12679c3ed543a25msul1.msu/mmp/kap13 
  465:       ---- &amp;cd371.htm:1&amp;</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"'>&amp;cd427.htm:1&amp;cd424.htm:1&amp;Stable.htm:1&amp;cd421.htm:1&amp;Constants.htm:1&amp;cd425.htm:1&amp;cd422.htm:1&amp;kap16.sequence:1&amp;cd426.htm:1&amp;cd423.htm:1&amp;</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"'>&amp;cd436.htm:1&amp;kap17.sequence:1&amp;cd433.htm:1&amp;cd430.htm:1&amp;cd437.htm:1&amp;cd434.htm:1&amp;cd428.htm:1&amp;cd431.htm:1&amp;cd435.htm:1&amp;cd429.htm:1&amp;geometry.htm:1&amp;cd432.htm:1&amp;</span></p>
  472:     <p><span style='font-size:8.0pt;font-family:"Courier New"'>acc.res.msu_12679c3ed543a25msul1.msu/mmp/kap17/calculus 
  473:       ---- &amp;calc.htm:1&amp;</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"'>&amp;RR440.htm:1&amp;RR449b.htm:1&amp;RR446b.htm:1&amp;cd473.htm:1&amp;RR453.htm:1&amp;RR447.htm:1&amp;RR443b.htm:1&amp;RR449a.htm:1&amp;RR450.htm:1&amp;RR452a.htm:1&amp;RR444.htm:1&amp;RR446a.htm:1&amp;sum18a.htm:1|1&amp;RR441.htm:1&amp;RR443a.htm:1&amp;eField.htm:1&amp;RR454.htm:1&amp;RR444b.htm:1&amp;RR448.htm:1&amp;RR447app.htm:1&amp;RR451.htm:1&amp;RR445.htm:1&amp;RR453a.htm:1&amp;kap18.sequence:1&amp;RR439.htm:1&amp;RR447a.htm:1&amp;RR442.htm:1&amp;RR450a.htm:1&amp;RR444a.htm:1&amp;RR448b.htm:1&amp;RR445newch.htm:1&amp;RR4460app.htm:1&amp;RR455.htm:1&amp;RR441a.htm:1&amp;RR449.htm:1&amp;RR452.htm:1&amp;cd438.htm:1&amp;RR446.htm:1&amp;RR454a.htm:1&amp;sum18.htm:1|1&amp;RR446c.htm:1&amp;RR448a.htm:1&amp;RR451a.htm:1&amp;RR443.htm:1&amp;RR445answer.htm:0&amp;RR445a.htm:1&amp;</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"'>&amp;vid440.htm:0&amp;vid440sm.htm:0&amp;vid449.htm:0&amp;vid449-a.htm:0&amp;vid441.htm:0&amp;vid449sm.htm:0&amp;vid455.htm:0&amp;egun.htm:0&amp;egunsm.htm:0&amp;vid441sm.htm:0&amp;vid449-asm.htm:0&amp;vid455sm.htm:0&amp;</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"'>&amp;cd460b.problem:1&amp;cd458.problem:1&amp;cd462.problem:1&amp;cd457.problem:1&amp;cd461.problem:1&amp;cd460.problem:1&amp;cd464.problem:1&amp;cd459.problem:1&amp;cd463.problem:1&amp;</span></p>
  483:     <p><span style='font-size:8.0pt;font-family:"Courier New"'>acc.res.msu_12679c3ed543a25msul1.msu/mmp/kap18a 
  484:       ---- &amp;kap18a.sequence:1&amp;</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"'>&amp;cd465.problem:1&amp;cd472.problem:1&amp;cd466.problem:1&amp;cd467.problem:1&amp;cd470.problem:1&amp;cd468.problem:1&amp;cd471.problem:1&amp;cd469.problem:1&amp;</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&amp;F:gan&amp;F</span></p>
  587:     <p><span style='font-size:8.0pt;font-family:"Courier New"'>user.priv.au./msu/./msu/ 
  588:       ---- :cca&amp;IK:are&amp;F:bre&amp;F:cre&amp;F:ere&amp;F</span></p>
  589:     <p><span style='font-size:8.0pt;font-family:"Courier New"'>user.priv.ca./msu/korte./ 
  590:       ---- :sma&amp;F:gan&amp;F</span></p>
  591:     <p><span style='font-size:8.0pt;font-family:"Courier New"'>user.priv.ca./msu/korte./msu/ 
  592:       ---- :are&amp;F:bre&amp;F:cre&amp;F:ere&amp;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&amp;F:bre&amp;F:mcr&amp;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&amp;F:srm&amp;F:gan&amp;F:are&amp;F:ccr&amp;IK:cep&amp;IK:cta&amp;IK:cre&amp;F:cst&amp;IK:cin&amp;IK:ere&amp;F:vgr&amp;F</span></p>
  601:     <p><span style='font-size:8.0pt;font-family:"Courier New"'>user.priv.cc./msu/12679c3ed543a25msul1./ 
  602:       ---- :sma&amp;F:bre&amp;F:mcr&amp;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&amp;F:srm&amp;F:gan&amp;F:cta&amp;IK:cep&amp;IK:ccr&amp;IK:are&amp;F:cin&amp;IK:cst&amp;IK:cre&amp;F:ere&amp;F:vgr&amp;F</span></p>
  607:     <p><span style='font-size:8.0pt;font-family:"Courier New"'>user.priv.cc./msu/12679c3ed543a37msul1./ 
  608:       ---- :sma&amp;F:mcr&amp;F:bre&amp;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&amp;F:srm&amp;F:gan&amp;F:are&amp;F:ccr&amp;IK:cep&amp;IK:cta&amp;IK:cre&amp;F:cst&amp;IK:cin&amp;IK:ere&amp;F:vgr&amp;F</span></p>
  613:     <p><span style='font-size:8.0pt;font-family:"Courier New"'>user.priv.cm./ 
  614:       ---- :sma&amp;F:mcr&amp;F:gan&amp;F:bre&amp;F</span></p>
  615:     <p><span style='font-size:8.0pt;font-family:"Courier New"'>user.priv.cm./msu/ 
  616:       ---- :mau&amp;F:cca&amp;IK:cad&amp;UIK:ccc&amp;U:cst&amp;UIK:cdg&amp;UIK:are&amp;F:cli&amp;UIK:cta&amp;UIK:cep&amp;UIK:ccr&amp;UIK:bre&amp;F:cau&amp;U:cre&amp;F:cin&amp;UIK:ere&amp;F</span></p>
  617:     <p><span style='font-size:8.0pt;font-family:"Courier New"'>user.priv.cm./msu/12679c3ed543a16msul1 
  618:       ---- :opa&amp;F:srm&amp;F:gan&amp;F:are&amp;F:ccr&amp;IK:cep&amp;IK:cta&amp;IK:cre&amp;F:cst&amp;IK:cin&amp;IK:ere&amp;F:vgr&amp;F</span></p>
  619:     <p><span style='font-size:8.0pt;font-family:"Courier New"'>user.priv.cm./msu/12679c3ed543a25msul1 
  620:       ---- :opa&amp;F:srm&amp;F:gan&amp;F:are&amp;F:ccr&amp;IK:cep&amp;IK:cta&amp;IK:cre&amp;F:cst&amp;IK:cin&amp;IK:ere&amp;F:vgr&amp;F</span></p>
  621:     <p><span style='font-size:8.0pt;font-family:"Courier New"'>user.priv.cm./msu/12679c3ed543a37msul1 
  622:       ---- :opa&amp;F:cst&amp;IK:vgr&amp;F:srm&amp;F:gan&amp;F:are&amp;F:ccr&amp;IK:cep&amp;IK:cta&amp;IK:cre&amp;F:cin&amp;IK:ere&amp;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&amp;F</span></p>
  627:     <p><span style='font-size:8.0pt;font-family:"Courier New"'>user.priv.dc./msu/./msu/ 
  628:       ---- :mau&amp;F:cad&amp;UIK:ccr&amp;UIK:cep&amp;UIK:cta&amp;UIK:cli&amp;UIK:ccc&amp;U:cau&amp;U:cst&amp;UIK:cin&amp;UIK:cdg&amp;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>&nbsp;</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 &lt;script&gt;, &lt;scriptlib&gt;, &lt;parserlib&gt;, 
 1209:             and &lt;import&gt;</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 (&lt;INPUT&gt;) 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:             &quot;^/priv.*&quot; or LocationMatch &quot;^/\~.*&quot;. Authentication 
 1320:             of user identity is coordinated through cookies. The abbreviation 
 1321:             &quot;cacc&quot; corresponds to &quot;construction-space access&quot;). 
 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 &quot;priv&quot;-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 &lt;script&gt;&lt;/script&gt; 
 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 &lt;script&gt; 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>
500 Internal Server Error

Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator at root@localhost to inform them of the time this error occurred, and the actions you performed just before this error.

More information about this error may be available in the server error log.