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, 9 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>