File:  [LON-CAPA] / loncom / loncapa_apache.conf
Revision 1.267: download - view: text, annotated - select for diffs
Sun Jan 27 16:02:51 2019 UTC (5 years, 3 months ago) by raeburn
Branches: MAIN
CVS tags: HEAD
- Bug 6400
  - Enforce access restrictions for content which is deeplink-only (users
    with "advanced priv for current role are exempt).
  - Support "key" link type in deeplink parameter (requested link must either
    be sent with linkkey as element in POSTed data, or with linkkey in query
    string).  Corresponding value must match key set in deeplink parameter.

##
## loncapa_apache.conf -- Apache HTTP LON-CAPA configuration file
##

# $Id: loncapa_apache.conf,v 1.267 2019/01/27 16:02:51 raeburn Exp $

#
# LON-CAPA Section (extensions to httpd.conf daemon configuration)
#
# ================================================================ DocumentRoot

DocumentRoot "/home/httpd/html"

# ======================================================================== User

User www
Group www

# ======================================================= Shared Object Modules

<IfModule !perl_module>
    LoadModule perl_module       modules/libperl.so
</IfModule>
<IfDefine !MODPERL2>
AddModule mod_perl.c
</IfDefine>

<IfDefine MODPERL2>
PerlSetVar	MODPERL2	1
</IfDefine>
# =============================================================== Miscellaneous

ServerAdmin consortium@loncapa.org
ExtendedStatus On
#
# LON-CAPA Section (extensions to srm.conf name space servicing)
#
# ===================================================================== Aliases

Alias /zipspool/ /home/httpd/zipspool/
Alias /prtspool/ /home/httpd/prtspool/
Alias /captchaspool/ /home/httpd/captchaspool/
Alias /webdav/ /home/httpd/html/priv/
ScriptAlias /cgi-bin/ "/home/httpd/cgi-bin/"
<IfModule mod_dav_fs.c>
    DAVLockDB /home/httpd/webdav/DAVLock
</IfModule>

# ================================================================= Directories

# ------------------------------------------------------------- Access Handlers

PerlTransHandler	Apache::lontrans
PerlCleanupHandler	Apache::lonacc::cleanup

PerlAuthenHandler Apache::checkauthen
PerlSetVar lonOtherAuthen no

<IfModule mod_shib>
    PerlAuthenHandler Apache::lonshibauth
    PerlSetVar lonOtherAuthen yes
    PerlSetVar lonOtherAuthenType Shibboleth
</IfModule>

#PerlWarn On
<LocationMatch "^/+res/adm/pages/[^/]+\.(gif|png)$">
PerlAuthzHandler	'sub { return OK }' 
</LocationMatch>

# Send proper expires header to avoid unnecessary HTTP request for static content
<LocationMatch "^(/adm/lonIcons|/adm/jQuery|/res/adm/pages|/ckeditor|/adm/jpicker|/adm/countdown|/adm/spellchecker|/adm/nicescroll|/adm/MathJax|/adm/daxe)">
        ExpiresActive On
        ExpiresDefault "access plus 12 hours"
        Header set Cache-Control "public, no-transform"
</LocationMatch>

<LocationMatch "^/+res.*">

AuthType LONCAPA
Require valid-user

PerlAccessHandler      Apache::publiccheck
PerlAuthzHandler       Apache::lonacc
PerlHeaderParserHandler Apache::lonrep
ErrorDocument     403 /adm/login
ErrorDocument     404 /adm/notfound.html
ErrorDocument     406 /adm/roles
ErrorDocument	  500 /adm/errorhandler
</LocationMatch>


<LocationMatch "/.*">
</LocationMatch>


<LocationMatch "^/+enc.*">
SetHandler perl-script
PerlHandler       Apache::lonencurl
ErrorDocument     403 /adm/login
ErrorDocument     404 /adm/notfound.html
ErrorDocument     406 /adm/roles
ErrorDocument	  500 /adm/errorhandler
</LocationMatch>

<Location /adm/portfolio>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler Apache::lonacc
SetHandler perl-script
PerlHandler Apache::portfolio
</Location>

<Location /adm/coursegrp_portfolio>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler Apache::lonacc
SetHandler perl-script
PerlHandler Apache::portfolio
</Location>

<Location /adm/pdfupload>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler Apache::lonacc
SetHandler perl-script
PerlHandler             Apache::lonpdfupload
ErrorDocument     403 /adm/login
ErrorDocument     404 /adm/notfound.html
ErrorDocument     406 /adm/roles
ErrorDocument     500 /adm/errorhandler
</Location>

<LocationMatch "^/+userfiles.*">
PerlAccessHandler       Apache::lontokacc
PerlCleanupHandler	Apache::lontokacc::removefile
PerlCleanupHandler	Apache::lonacc::cleanup
</LocationMatch>

<LocationMatch "^/+uploaded.*">
AuthType LONCAPA
Require valid-user
PerlAuthzHandler	Apache::lonacc
PerlHandler 		Apache::londatecheck
PerlHandler  		Apache::lonipcheck
PerlHeaderParserHandler Apache::lonuploadrep
ErrorDocument     403 /adm/login
ErrorDocument     404 /adm/notfound.html
ErrorDocument     406 /adm/roles
ErrorDocument	  500 /adm/errorhandler
</LocationMatch>

<LocationMatch "^/+editupload.*">
AuthType LONCAPA
Require valid-user
PerlAuthzHandler	Apache::lonacc
ErrorDocument     403 /adm/login
ErrorDocument     406 /adm/roles
ErrorDocument	  500 /adm/errorhandler
</LocationMatch>

<LocationMatch "^/+uploaded/.*/.*/internal/.*">
PerlAuthenHandler	Apache::lonuploadedacc
PerlAuthzHandler	Apache::lonuploadedacc::skip_phase
PerlAccessHandler	Apache::lonuploadedacc::skip_phase
</LocationMatch>

<LocationMatch "^/+uploaded/.*/.*/portfolio/.*">
PerlAccessHandler      Apache::publiccheck
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
</LocationMatch>

<LocationMatch "^/+uploaded/.*/.*/groups/.*/portfolio/.*">
PerlAccessHandler      Apache::publiccheck
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
</LocationMatch>

<LocationMatch "^/+uploaded/.*\.page$">
SetHandler perl-script
PerlHandler Apache::lonpage
</LocationMatch>

<LocationMatch "^/+uploaded/.*\.sequence$">
SetHandler perl-script
PerlHandler Apache::lonsequence
</LocationMatch>

<LocationMatch "^/+public/.*/syllabus$">
PerlAccessHandler      Apache::publiccheck
AuthType LONCAPA
Require valid-user
PerlAuthzHandler	Apache::lonacc
SetHandler              perl-script
PerlHandler             Apache::lonsyllabus
ErrorDocument     404 /adm/notfound.html
ErrorDocument	  500 /adm/errorhandler
</LocationMatch>

<LocationMatch "^/+(public|adm)/.*(\.rss|_rss\.html)$">
PerlAccessHandler      Apache::publiccheck
AuthType LONCAPA
Require valid-user
PerlAuthzHandler	Apache::lonacc
SetHandler              perl-script
PerlHandler             Apache::lonrss
ErrorDocument     404 /adm/notfound.html
ErrorDocument	  500 /adm/errorhandler
</LocationMatch>

<LocationMatch "^/adm/.*/aboutme$">
AuthType LONCAPA
Require valid-user
PerlAuthzHandler	Apache::lonacc
SetHandler              perl-script
PerlHandler             Apache::lonaboutme
ErrorDocument     404 /adm/notfound.html
ErrorDocument     406 /adm/notinit.html
ErrorDocument	  500 /adm/errorhandler
</LocationMatch>

<LocationMatch "^/adm/.*/aboutme/portfolio$">
PerlAccessHandler       Apache::publiccheck
AuthType LONCAPA
Require valid-user
PerlAuthzHandler	Apache::lonacc
SetHandler              perl-script
PerlHandler             Apache::lonaboutme
ErrorDocument     404 /adm/notfound.html
ErrorDocument     406 /adm/notinit.html
ErrorDocument	  500 /adm/errorhandler
</LocationMatch>

<LocationMatch "^/adm/.*/smppg$">
AuthType LONCAPA
Require valid-user
PerlAuthzHandler	Apache::lonacc
SetHandler              perl-script
PerlHandler             Apache::londatecheck
PerlHandler		Apache::lonipcheck
PerlHandler             Apache::lonsimplepage
ErrorDocument     404 /adm/notfound.html
ErrorDocument     406 /adm/notinit.html
ErrorDocument	  500 /adm/errorhandler
</LocationMatch>

<LocationMatch "^/adm/.*/bulletinboard$">
AuthType LONCAPA
Require valid-user
PerlAuthzHandler	Apache::lonacc
SetHandler              perl-script
PerlHandler             Apache::londatecheck
PerlHandler		Apache::lonipcheck
PerlHandler             Apache::lonbulletin
ErrorDocument     404 /adm/notfound.html
ErrorDocument     406 /adm/notinit.html
ErrorDocument	  500 /adm/errorhandler
</LocationMatch>

<LocationMatch "\.problem/smpedit$">
AuthType LONCAPA
Require valid-user
PerlAuthzHandler	Apache::lonacc
SetHandler              perl-script
PerlHandler             Apache::lonsimpleproblemedit
ErrorDocument     404 /adm/notfound.html
ErrorDocument     406 /adm/notinit.html
ErrorDocument	  500 /adm/errorhandler
</LocationMatch>

<LocationMatch "^/adm/.*/ext\.tool$">
AuthType LONCAPA
Require valid-user
PerlAuthzHandler        Apache::lonacc
SetHandler              perl-script
PerlHandler             Apache::londatecheck
PerlHandler             Apache::lonipcheck
PerlHandler             Apache::lonexttool
ErrorDocument     404 /adm/notfound.html
ErrorDocument     406 /adm/notinit.html
ErrorDocument     500 /adm/errorhandler
</LocationMatch>

<LocationMatch "^/adm/placement$">
AuthType LONCAPA
Require valid-user
PerlAuthzHandler        Apache::lonacc
SetHandler              perl-script
PerlHandler             Apache::lonplacementtest
ErrorDocument     404 /adm/notfound.html
ErrorDocument     406 /adm/notinit.html
ErrorDocument     500 /adm/errorhandler
</LocationMatch>

<LocationMatch "^/+priv/.*">
AuthType LONCAPA
Require valid-user
PerlAuthzHandler Apache::loncacc
SetHandler        perl-script
ErrorDocument     403 /adm/login
ErrorDocument     404 /adm/notfound.html
ErrorDocument     406 /adm/unauthorized
ErrorDocument	  500 /adm/errorhandler
</LocationMatch>

<LocationMatch "^/+webdav/[\w\-.]+/\w[\w.\-\@]+/">
  <IfModule mod_dav.c>
    <IfModule mod_ssl.c>
      AuthType Basic
      AuthName "LONCAPA username,domain"
      Require valid-user
      SSLRequireSSL
      PerlAuthenHandler Apache::lonwebdavauth
      PerlAuthzHandler Apache::lonwebdavacc
      Dav On
      DirectoryIndex index.missing
      Options Indexes FollowSymLinks
      ErrorDocument     403 /adm/nowebdav.html
      ErrorDocument     404 /adm/notfound.html
      ErrorDocument     406 /adm/unauthorized
      ErrorDocument     500 /adm/errorhandler
    </IfModule>
    <IfModule !mod_ssl.c>
      <IfModule mod_rewrite.c>
        RewriteEngine on
        RewriteRule .* http://%{HTTP_HOST}/adm/nowebdav.html [L]
      </IfModule>
    </IfModule>
  </IfModule>
  <IfModule !mod_dav.c>
    <IfModule mod_rewrite.c>
      RewriteEngine on
      RewriteRule .* http://%{HTTP_HOST}/adm/nowebdav.html [L]
    </IfModule>
  </IfModule>
</LocationMatch>

<LocationMatch "^/+raw.*">
PerlAccessHandler Apache::lonracc
</LocationMatch>

<LocationMatch "^/adm/helper/.*\.helper$">
AuthType LONCAPA
Require valid-user
PerlAuthzHandler  Apache::lonacc
SetHandler        perl-script
PerlHandler       Apache::lonhelper
ErrorDocument     403 /adm/login
ErrorDocument     404 /adm/notfound.html
ErrorDocument     406 /adm/unauthorized
ErrorDocument     500 /adm/errorhandler
</LocationMatch>

<LocationMatch "/prtspool">
AuthType LONCAPA
Require valid-user
PerlAuthzHandler Apache::lonacc
ErrorDocument     403 /adm/login
ErrorDocument     404 /adm/notfound.html
ErrorDocument     406 /adm/roles
ErrorDocument     413 /adm/overloaded.txt
ErrorDocument	  500 /adm/errorhandler
</LocationMatch>

<LocationMatch "/zipspool">
AuthType LONCAPA
Require valid-user
PerlAuthzHandler Apache::lonacc
ErrorDocument     403 /adm/login
ErrorDocument     404 /adm/notfound.html
ErrorDocument     406 /adm/roles
ErrorDocument     413 /adm/overloaded.txt
ErrorDocument	  500 /adm/errorhandler
</LocationMatch>
# ------------------------------------------------------------------------- RAT

<LocationMatch "^/+priv/.*\.sequence$">
SetHandler perl-script
PerlHandler Apache::lonratedt
</LocationMatch>

<LocationMatch "^/+priv/.*\.page$">
SetHandler perl-script
PerlHandler Apache::lonratedt
</LocationMatch>

<LocationMatch "^/+priv/.*\/ratserver$">
SetHandler perl-script
PerlHandler Apache::lonratsrv
</LocationMatch>

<LocationMatch "^/+priv/.*\/adveditmenu$">
SetHandler perl-script
PerlHandler Apache::lonratmenu
</LocationMatch>

<Location /adm/ratparms>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::lonratparms
ErrorDocument     403 /adm/login
ErrorDocument	  500 /adm/errorhandler
</Location>

# --------------------------------------------- Resource Space Content Handlers

<LocationMatch "^/+res.*/$">
SetHandler perl-script
PerlHandler Apache::lonindexer
PerlCleanupHandler Apache::lonindexer::cleanup
PerlCleanupHandler	Apache::lonacc::cleanup
</LocationMatch>

<LocationMatch "^/+res.*\.tex$">
SetHandler perl-script
PerlHandler Apache::lontex
</LocationMatch>

<LocationMatch "^/+res/.*\.page$">
SetHandler perl-script
PerlHandler Apache::lonpage
</LocationMatch>

<LocationMatch "^/+res/.*\.sequence$">
SetHandler perl-script
PerlHandler Apache::lonsequence
</LocationMatch>

<LocationMatch "^/+(res|priv|public|uploaded|editupload|adm)/.*\.meta$">
PerlAccessHandler      Apache::publiccheck
SetHandler perl-script
PerlHandler Apache::lonmeta
ErrorDocument     413 /adm/overloaded.txt
</LocationMatch>

<LocationMatch "^/adm/bombs/">
AuthType LONCAPA
Require valid-user
PerlAuthzHandler Apache::lonacc
SetHandler perl-script
PerlHandler Apache::lonmeta
</LocationMatch>



<LocationMatch "^/+(res|priv)/.*\.rights$">
SetHandler perl-script
PerlHandler Apache::lonrights
</LocationMatch>

<LocationMatch "^/+(uploaded|res|priv)/.*\.(xml|html|htm|xhtml|xhtm|sty)$">
SetHandler perl-script
PerlHandler Apache::londatecheck
PerlHandler Apache::lonipcheck
PerlHandler Apache::lonxml
</LocationMatch>

<LocationMatch "^/+(res|priv).*\.(task|problem|exam|quiz|assess|survey|form|library)$">
SetHandler perl-script
PerlHandler Apache::lonhomework
</LocationMatch>

<LocationMatch "^/+priv/.*\.(js|css|txt|tex)$">
SetHandler perl-script
PerlHandler Apache::lonxml
</LocationMatch>

<LocationMatch "^/daxepage/priv/">
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::loncacc
ErrorDocument     403 /adm/login
ErrorDocument     404 /adm/notfound.html
ErrorDocument     406 /adm/unauthorized
ErrorDocument     500 /adm/errorhandler
</LocationMatch>

<LocationMatch "^/daxeopen/">
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
</LocationMatch>

<LocationMatch "^/daxe(page|open)/uploaded/">
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
ErrorDocument     403 /adm/login
ErrorDocument     404 /adm/notfound.html
ErrorDocument     406 /adm/unauthorized
ErrorDocument     500 /adm/errorhandler
</LocationMatch>

<LocationMatch "^/daxepage/priv/.*\.(task|problem|exam|quiz|assess|survey|library|xml|html|htm|xhtml|xhtm)$">
SetHandler perl-script
PerlHandler Apache::daxepage
</LocationMatch>

<LocationMatch "^/daxepage/uploaded/[^/]+/[^/]+/.*html?$">
SetHandler perl-script
PerlHandler Apache::daxepage
</LocationMatch>

<LocationMatch "^/daxeopen/priv/.*\.(task|problem|exam|quiz|assess|survey|library|xml|html|htm|xhtml|xhtm)$">
SetHandler perl-script
PerlHandler Apache::daxeopen
</LocationMatch>

<LocationMatch "^/daxeopen/$">
SetHandler perl-script
PerlHandler Apache::daxeopen
</LocationMatch>

<LocationMatch "^/daxeopen/(res|priv)/(.+/)?$">
SetHandler perl-script
PerlHandler Apache::daxeopen
</LocationMatch>

<LocationMatch "^/daxeopen/uploaded/[^/]+/[^/]+/.*html?$">
SetHandler perl-script
PerlHandler Apache::daxeopen
</LocationMatch>

<LocationMatch "(?i)^/daxeopen/priv/.+\.(?!task$|problem$|exam$|quiz$|assess$|survey$|library$|xml$|html$|htm$|xhtml$|xhtm$)[^.]*$">
<IfModule mod_rewrite.c>
  RewriteEngine on
  RewriteRule /daxeopen/(.*) /$1
</IfModule>
</LocationMatch>

<LocationMatch "(?i)^/daxeopen/(res/.*\.(jpg|jpeg|gif|png|svg))$">
<IfModule mod_rewrite.c>
  RewriteEngine on
  RewriteRule /daxeopen/(.*) /$1
</IfModule>
</LocationMatch>

<LocationMatch "^/daxesave$">
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::daxesave
</LocationMatch>

<Location /adm/coursepub>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler Apache::lonacc
SetHandler perl-script
PerlHandler Apache::loncoursepub
ErrorDocument     404 /adm/notfound.html
ErrorDocument     500 /adm/errorhandler
</Location>

<LocationMatch "^/adm/wrapper/">
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
PerlHandler Apache::londatecheck
PerlHandler Apache::lonipcheck
SetHandler perl-script
PerlHandler Apache::lonwrapper
ErrorDocument     403 /adm/login
ErrorDocument	  500 /adm/errorhandler
</LocationMatch>

<LocationMatch "^/adm/source">
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::lonsource
ErrorDocument     403 /adm/login
ErrorDocument     406 /adm/roles
ErrorDocument	  500 /adm/errorhandler
</LocationMatch>


<LocationMatch "^/adm/localize/">
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::lonlocalize
ErrorDocument     403 /adm/login
ErrorDocument	  500 /adm/errorhandler
</LocationMatch>

# -------------------------------------------------------------- Admin Programs

<Location /adm/randomlabel.png>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::randomlylabel
ErrorDocument     403 /adm/login
ErrorDocument	  500 /adm/errorhandler
</Location>

<Location /adm/imagechoice>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::imagechoice
ErrorDocument     403 /adm/login
ErrorDocument	  500 /adm/errorhandler
</Location>

<Location /adm/searchcourse>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::lonsearchcourse
ErrorDocument     403 /adm/login
ErrorDocument     500 /adm/errorhandler
</Location>

<Location /adm/indexcourse>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::lonindexcourse
ErrorDocument     403 /adm/login
ErrorDocument     500 /adm/errorhandler
</Location>

<Location /adm/statistics>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::lonstatistics
ErrorDocument     403 /adm/login
ErrorDocument     413 /adm/overloaded.txt
ErrorDocument	  500 /adm/errorhandler
</Location>

<Location /adm/trackstudent>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::lontrackstudent
ErrorDocument     403 /adm/login
ErrorDocument     413 /adm/overloaded.txt
ErrorDocument	  500 /adm/errorhandler
</Location>

<Location /adm/roles>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::lonroles
ErrorDocument     403 /adm/login
ErrorDocument     409 /adm/preferences?action=lockwarning
ErrorDocument	  500 /adm/errorhandler
</Location>

<Location /adm/menu>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::lonmainmenu
ErrorDocument     403 /adm/login
ErrorDocument	  500 /adm/errorhandler
</Location>

<Location /adm/pickresource>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::lonpickresource
ErrorDocument     403 /adm/login
ErrorDocument     500 /adm/errorhandler
</Location>

<Location /adm/pickauthor>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::lonpickauthor
ErrorDocument     403 /adm/login
ErrorDocument     500 /adm/errorhandler
</Location>

<Location /adm/pickstudent>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::lonpickstudent
ErrorDocument     403 /adm/login
ErrorDocument	  500 /adm/errorhandler
</Location>

<Location /adm/pickuser>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::lonpickuser
ErrorDocument     403 /adm/login
ErrorDocument     406 /adm/roles
ErrorDocument     500 /adm/errorhandler
</Location>

<Location /adm/pickcourse>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::lonpickcourse
ErrorDocument     403 /adm/login
ErrorDocument	  500 /adm/errorhandler
</Location>

<Location /adm/pickcode>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::lonpickcode
ErrorDocument     403 /adm/login
ErrorDocument	  500 /adm/errorhandler
</Location>

<Location /adm/dependencies>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::londependencies
ErrorDocument     403 /adm/login
ErrorDocument     406 /adm/roles
ErrorDocument     500 /adm/errorhandler
</Location>

<Location /adm/login>
SetHandler perl-script
PerlHandler Apache::lonlogin
</Location>

<LocationMatch "^/+adm/lti($|/)">
SetHandler perl-script
PerlHandler Apache::ltiauth
</LocationMatch>

<Location /adm/service/passback>
SetHandler perl-script
PerlHandler Apache::ltipassback
</Location>

<Location /adm/service/roster>
SetHandler perl-script
PerlHandler Apache::ltiroster
</Location>

<Location /adm/restrictedaccess>
PerlAccessHandler      Apache::publiccheck
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::restrictedaccess
ErrorDocument	  500 /adm/errorhandler
</Location>

<Location /adm/blockedaccess>
PerlAccessHandler      Apache::publiccheck
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::blockedaccess
ErrorDocument     500 /adm/errorhandler
</Location>

<Location /adm/protected>
PerlAccessHandler      Apache::publiccheck
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::lonprotected
ErrorDocument     403 /adm/login
ErrorDocument     500 /adm/errorhandler
</Location>

<Location /adm/logout>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::lonlogout
ErrorDocument     403 /adm/login
ErrorDocument     409 /adm/preferences?action=lockwarning
ErrorDocument	  500 /adm/errorhandler
</Location>

<Location /adm/switchserver>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::switchserver
ErrorDocument     403 /adm/login
ErrorDocument	  500 /adm/errorhandler
</Location>

<Location /adm/authenticate>
SetHandler perl-script
PerlHandler Apache::lonauth
</Location>

<Location /adm/migrateuser>
SetHandler perl-script
PerlHandler Apache::migrateuser
</Location>

<Location /adm/sso>
  <IfModule mod_shib>
    AuthType shibboleth
    ShibUseEnvironment On
    ShibRequestSetting requireSession 1
    ShibRequestSetting redirectToSSL 443
    require valid-user
    PerlAuthzHandler       Apache::lonshibacc
    PerlAuthzHandler       Apache::lonacc
  </IfModule>
  <IfModule !mod_shib>
    PerlTypeHandler        Apache::lonnoshib
  </IfModule>
</Location>

<Location /adm/annotations>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::admannotations
ErrorDocument     403 /adm/login
ErrorDocument	  500 /adm/errorhandler
</Location>

<Location /adm/annotation>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::admannotations
ErrorDocument     403 /adm/login
ErrorDocument     500 /adm/errorhandler
</Location>

<Location /adm/spellcheck>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::lonspeller
ErrorDocument     403 /adm/login
ErrorDocument	  500 /adm/errorhandler
</Location>

<Location /adm/flip>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::lonpageflip
PerlCleanupHandler Apache::lonpageflip::cleanup
PerlCleanupHandler	Apache::lonacc::cleanup
ErrorDocument     406 /adm/roles
ErrorDocument     403 /adm/login
ErrorDocument	  500 /adm/errorhandler
</Location>

<Location /adm/ambiguous>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::lonambiguous
PerlCleanupHandler Apache::lonambiguous::cleanup
PerlCleanupHandler	Apache::lonacc::cleanup
ErrorDocument     403 /adm/login
ErrorDocument	  500 /adm/errorhandler
</Location>

<Location /adm/email>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::lonmsgdisplay
ErrorDocument     403 /adm/login
ErrorDocument	  500 /adm/errorhandler
</Location>

<Location /adm/notify>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::lonnotify
ErrorDocument     403 /adm/login
ErrorDocument     500 /adm/errorhandler
</Location>

<Location /adm/parmset>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::lonparmset
ErrorDocument     403 /adm/login
ErrorDocument     406 /adm/roles
ErrorDocument	  500 /adm/errorhandler
</Location>

<Location /adm/courseprefs>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::courseprefs
ErrorDocument     403 /adm/login
ErrorDocument     406 /adm/roles
ErrorDocument     500 /adm/errorhandler
</Location>

<Location /adm/slotrequest>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::slotrequest
ErrorDocument     403 /adm/login
ErrorDocument     406 /adm/roles
ErrorDocument	  500 /adm/errorhandler
</Location>

<Location /adm/wizard>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::lonwizard
ErrorDocument     403 /adm/login
ErrorDocument     406 /adm/roles
ErrorDocument	  500 /adm/errorhandler
</Location>

<Location /adm/grades>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::grades
ErrorDocument     403 /adm/login
ErrorDocument     406 /adm/roles
ErrorDocument	  500 /adm/errorhandler
</Location>

<Location /adm/requestcourse>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::lonrequestcourse
ErrorDocument     403 /adm/login
ErrorDocument     406 /adm/roles
ErrorDocument     500 /adm/errorhandler
</Location>

<Location /adm/createcourse>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::loncreatecourse
ErrorDocument     403 /adm/login
ErrorDocument     406 /adm/roles
ErrorDocument	  500 /adm/errorhandler
</Location>

<Location /adm/modifycourse>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::lonmodifycourse
ErrorDocument     403 /adm/login
ErrorDocument     406 /adm/roles
ErrorDocument     500 /adm/errorhandler
</Location>

<Location /adm/domainprefs>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::domainprefs
ErrorDocument     403 /adm/login
ErrorDocument     406 /adm/roles
ErrorDocument     500 /adm/errorhandler
</Location>

<Location /adm/domainstatus>
PerlAccessHandler       Apache::lonstatusacc
SetHandler perl-script
PerlHandler Apache::domainstatus
ErrorDocument     403 /adm/login
ErrorDocument     406 /adm/roles
ErrorDocument     500 /adm/errorhandler
</Location>

<Location /adm/createuser>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::loncreateuser
ErrorDocument     403 /adm/login
ErrorDocument     406 /adm/roles
ErrorDocument	  500 /adm/errorhandler
</Location>

<Location /adm/publish>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::lonpublisher
ErrorDocument     403 /adm/login
ErrorDocument     404 /adm/notfound.html
ErrorDocument     406 /adm/unauthorized
ErrorDocument	  500 /adm/errorhandler
</Location>

<LocationMatch "^/+priv/.*/$">
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::loncacc
SetHandler perl-script
PerlHandler Apache::lonpubdir
ErrorDocument     403 /adm/login
ErrorDocument     404 /adm/notfound.html
ErrorDocument     406 /adm/unauthorized
ErrorDocument	  500 /adm/errorhandler
</LocationMatch>

<Location /adm/unauthorized>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::lonunauthorized
ErrorDocument     403 /adm/login
ErrorDocument     404 /adm/notfound.html
ErrorDocument	  500 /adm/errorhandler
</Location>

<Location /adm/retrieve>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::lonretrieve
ErrorDocument     403 /adm/login
ErrorDocument     404 /adm/notfound.html
ErrorDocument     406 /adm/unauthorized
ErrorDocument	  500 /adm/errorhandler
</Location>

<Location /adm/cleanup>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::loncleanup
ErrorDocument     403 /adm/login
ErrorDocument     404 /adm/notfound.html
ErrorDocument     406 /adm/unauthorized
ErrorDocument	  500 /adm/errorhandler
</Location>

<Location /adm/cfile>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::loncfile
ErrorDocument     403 /adm/login
ErrorDocument     404 /adm/notfound.html
ErrorDocument     406 /adm/unauthorized
ErrorDocument	  500 /adm/errorhandler
</Location>

<Location /adm/diff>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::londiff
ErrorDocument     403 /adm/login
ErrorDocument     404 /adm/notfound.html
ErrorDocument     406 /adm/unauthorized
ErrorDocument	  500 /adm/errorhandler
</Location>

<Location /adm/upload>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::lonupload
ErrorDocument     403 /adm/login
ErrorDocument     404 /adm/notfound.html
ErrorDocument     406 /adm/unauthorized
ErrorDocument	  500 /adm/errorhandler
</Location>

<Location /adm/imsimport>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::imsimport
ErrorDocument     403 /adm/login
ErrorDocument     404 /adm/notfound.html
ErrorDocument     406 /adm/unauthorized
ErrorDocument     500 /adm/errorhandler
</Location>

<Location /adm/testbank>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::testbankimport
ErrorDocument     403 /adm/login
ErrorDocument     404 /adm/notfound.html
ErrorDocument     406 /adm/unauthorized
ErrorDocument     500 /adm/errorhandler
</Location>

<Location /adm/assesscalc>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::lonspreadsheet
ErrorDocument     403 /adm/login
ErrorDocument     406 /adm/roles
ErrorDocument     413 /adm/overloaded.txt
ErrorDocument	  500 /adm/errorhandler
</Location>

<Location /adm/studentcalc>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::lonspreadsheet
ErrorDocument     403 /adm/login
ErrorDocument     406 /adm/roles
ErrorDocument     413 /adm/overloaded.txt
ErrorDocument	  500 /adm/errorhandler
</Location>

<Location /adm/classcalc>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::lonspreadsheet
ErrorDocument     403 /adm/login
ErrorDocument     406 /adm/roles
ErrorDocument     413 /adm/overloaded.txt
ErrorDocument	  500 /adm/errorhandler
</Location>

<Location /adm/dropadd>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::londropadd
ErrorDocument     403 /adm/login
ErrorDocument     406 /adm/roles
ErrorDocument	  500 /adm/errorhandler
</Location>

<Location /adm/viewclasslist>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::lonviewclasslist
ErrorDocument     403 /adm/login
ErrorDocument     406 /adm/roles
ErrorDocument	  500 /adm/errorhandler
</Location>

<Location /adm/coursegroups>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::loncoursegroups
ErrorDocument     403 /adm/login
ErrorDocument     406 /adm/roles
ErrorDocument     500 /adm/errorhandler
</Location>

<Location /adm/groupboards>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::groupboards
ErrorDocument     403 /adm/login
ErrorDocument     406 /adm/roles
ErrorDocument     500 /adm/errorhandler
</Location>

<Location /adm/grouproster>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::grouproster
ErrorDocument     403 /adm/login
ErrorDocument     406 /adm/roles
ErrorDocument     500 /adm/errorhandler
</Location>

<Location /adm/whatsnew>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::lonwhatsnew
ErrorDocument     403 /adm/login
ErrorDocument     406 /adm/roles
ErrorDocument     500 /adm/errorhandler
</Location>

<Location /adm/populate>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::lonpopulate
ErrorDocument     403 /adm/login
ErrorDocument     406 /adm/roles
ErrorDocument     500 /adm/errorhandler
</Location>

<Location /adm/managekeys>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::lonmanagekeys
ErrorDocument     403 /adm/login
ErrorDocument     406 /adm/roles
ErrorDocument	  500 /adm/errorhandler
</Location>

<Location /adm/printout>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::lonprintout
ErrorDocument     403 /adm/login
ErrorDocument     413 /adm/overloaded.txt
ErrorDocument	  500 /adm/errorhandler
</Location>

<Location /adm/feedback>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::lonfeedback
ErrorDocument     403 /adm/login
ErrorDocument	  500 /adm/errorhandler
</Location>

<Location /adm/coursedocs>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::londocs
PerlCleanupHandler Apache::londocs::untiehash
PerlCleanupHandler	Apache::lonacc::cleanup
ErrorDocument     403 /adm/login
ErrorDocument	  500 /adm/errorhandler
</Location>

<Location /adm/supplemental>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::londocs
PerlCleanupHandler Apache::londocs::untiehash
PerlCleanupHandler      Apache::lonacc::cleanup
ErrorDocument     403 /adm/login
ErrorDocument     500 /adm/errorhandler
</Location>

<Location /adm/imsimportdocs>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::imsimportdocs
ErrorDocument     403 /adm/login
ErrorDocument     500 /adm/errorhandler
</Location>

<Location /adm/extresedit>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::lonextresedit
ErrorDocument     403 /adm/login
ErrorDocument     500 /adm/errorhandler
</Location>

<LocationMatch "^/adm/announcements">
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::lonannounce
ErrorDocument     403 /adm/login
ErrorDocument	  500 /adm/errorhandler
</LocationMatch>

<Location /adm/chat>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::lonchat
ErrorDocument	  500 /adm/errorhandler
</Location>

<Location /adm/chatfetch>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::lonchatfetch
ErrorDocument     413 /adm/overloaded.txt
ErrorDocument	  500 /adm/errorhandler
</Location>

<Location /adm/groupchat>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::longroupchat
ErrorDocument     403 /adm/login
ErrorDocument     500 /adm/errorhandler
</Location>

<Location /adm/evaluate>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::lonevaluate
ErrorDocument     403 /adm/login
ErrorDocument	  500 /adm/errorhandler
</Location>

<Location /adm/preferences>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::lonpreferences
ErrorDocument     403 /adm/login
ErrorDocument	  500 /adm/errorhandler
</Location>

<Location /adm/communicate>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::loncommunicate
ErrorDocument     403 /adm/login
ErrorDocument	  500 /adm/errorhandler
</Location>

<Location /adm/searchcat>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::lonsearchcat
PerlCleanupHandler Apache::lonsearchcat::cleanup
PerlCleanupHandler	Apache::lonacc::cleanup
ErrorDocument     403 /adm/login
ErrorDocument     413 /adm/overloaded.txt
ErrorDocument	  500 /adm/errorhandler
</Location>

<Location /adm/navmaps>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::lonnavdisplay
ErrorDocument     403 /adm/login
ErrorDocument     406 /adm/roles
ErrorDocument	  500 /adm/errorhandler
</Location>

<Location /adm/quickgrades>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::lonquickgrades
ErrorDocument     403 /adm/login
ErrorDocument     406 /adm/roles
ErrorDocument     500 /adm/errorhandler
</Location>

<Location /adm/groupsort>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler	Apache::lonacc
SetHandler perl-script
PerlHandler Apache::groupsort
PerlCleanupHandler Apache::groupsort::cleanup
PerlCleanupHandler	Apache::lonacc::cleanup
ErrorDocument     403 /adm/login
ErrorDocument     406 /adm/roles
ErrorDocument	  500 /adm/errorhandler
</Location>

<Location /adm/wishlist>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::lonwishlistdisplay
ErrorDocument     403 /adm/login
ErrorDocument     406 /adm/roles
ErrorDocument	  500 /adm/errorhandler
</Location>

<Location /adm/setblock>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler             perl-script
PerlHandler            Apache::lonblockingmenu
ErrorDocument     403 /adm/login
ErrorDocument     406 /adm/roles
ErrorDocument     500 /adm/errorhandler
</Location>

<Location /adm/blockingstatus>
PerlAccessHandler      Apache::publiccheck
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler             perl-script
PerlHandler            Apache::lonblockingstatus
</Location>

<Location /adm/accesstimes>
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler             perl-script
PerlHandler            Apache::lonaccesstimes
ErrorDocument     403 /adm/login
ErrorDocument     406 /adm/roles
ErrorDocument     500 /adm/errorhandler
</Location>

<Location /adm/errorhandler>
SetHandler perl-script
PerlHandler Apache::lonerrorhandler
</Location>

<LocationMatch "^/adm/help/.*\.hlp$">
AuthType LONCAPA
Require valid-user
PerlAccessHandler      Apache::publiccheck
PerlAuthzHandler	Apache::lonacc
SetHandler perl-script
PerlHandler Apache::lonhelp
ErrorDocument	  500 /adm/errorhandler
</LocationMatch>

<LocationMatch "^/adm/helpmenu">
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::lonhelpmenu
ErrorDocument	  500 /adm/errorhandler
</LocationMatch>

<LocationMatch "^/adm/support">
AuthType LONCAPA
Require valid-user
PerlAuthzHandler       Apache::lonacc
SetHandler perl-script
PerlHandler Apache::lonsupportreq
ErrorDocument	  500 /adm/errorhandler
</LocationMatch>

<LocationMatch "^/adm/helpdesk">
SetHandler perl-script
PerlHandler Apache::lonsupportreq
ErrorDocument	  500 /adm/errorhandler
</LocationMatch>

<LocationMatch "^/adm/css/.*\.css$">
SetHandler perl-script
PerlHandler Apache::loncss
ErrorDocument	  500 /adm/errorhandler
</LocationMatch>

<LocationMatch "^/adm/coursecatalog">
SetHandler perl-script
PerlHandler Apache::coursecatalog
ErrorDocument	  500 /adm/errorhandler
</LocationMatch>

<LocationMatch "^/adm/resetpw">
SetHandler perl-script
PerlHandler Apache::resetpw
ErrorDocument     500 /adm/errorhandler
</LocationMatch>

<LocationMatch "^/adm/selfenroll">
SetHandler perl-script
PerlHandler Apache::selfenroll
ErrorDocument     500 /adm/errorhandler
</LocationMatch>

<LocationMatch "^/adm/createaccount">
SetHandler perl-script
PerlHandler Apache::createaccount
ErrorDocument     500 /adm/errorhandler
</LocationMatch>

<LocationMatch "^/adm/dns">
SetHandler perl-script
PerlHandler Apache::londns
ErrorDocument     500 /adm/errorhandler
</LocationMatch>

<LocationMatch "^/ajax/spellcheck">
SetHandler perl-script
PerlHandler Apache::spellcheck
</LocationMatch>

<LocationMatch "^/tiny/[\w.-]+/\w+$">
AuthType LONCAPA
Require valid-user
PerlAuthzHandler Apache::lonacc
SetHandler perl-script
PerlHandler Apache::lontiny
ErrorDocument     403 /adm/login
ErrorDocument     406 /adm/roles
ErrorDocument     500 /adm/errorhandler
</LocationMatch>

# ------------------------------------------------- Backdoor Adm Tests/Programs

<Location /adm/test>
PerlAccessHandler Apache::lonstatusacc
SetHandler perl-script
PerlHandler Apache::lontest
</Location>

# ------------------------------------------------------- Shutting down a child

PerlChildExitHandler Apache::lonacc::goodbye

#
# LON-CAPA Section (extensions to access.conf permission configuration)
#
# =========================================================== Directory Options

# Start out with "no"

<Directory />
Options None
AllowOverride None
<IfModule mod_authz_core.c>
  Require all denied
</IfModule>
<IfModule !mod_authz_core.c>
  order deny,allow
  deny from all
</IfModule>
</Directory>

# Allow uploaded files to be served

<Directory "/home/httpd/lonUsers">
Options FollowSymLinks
AllowOverride None
<IfModule mod_authz_core.c>
  Require all granted
</IfModule>
<IfModule !mod_authz_core.c>
  order allow,deny
  allow from all
</IfModule>
</Directory>
 
# Yes to symbolic links and server-side includes

<Directory /home/httpd/html>
Options FollowSymLinks
AllowOverride None
<IfModule mod_authz_core.c>
  Require all granted
</IfModule>
<IfModule !mod_authz_core.c>
  order allow,deny
  allow from all
</IfModule>
</Directory>

# If it is in cgi-bin, then it can be executed as a CGI script.

<Directory /home/httpd/cgi-bin>
AllowOverride None
Options ExecCGI FollowSymLinks
<IfModule mod_authz_core.c>
  Require all granted
</IfModule>
<IfModule !mod_authz_core.c>
  order allow,deny
  allow from all
</IfModule>
</Directory>

# Allow serving of files in prtspool

<Directory "/home/httpd/prtspool/">
Options FollowSymLinks
AllowOverride None
<IfModule mod_authz_core.c>
  Require all granted
</IfModule>
<IfModule !mod_authz_core.c>
  order allow,deny
  allow from all
</IfModule>
</Directory>

# Allow serving of files in zipspool

<Directory "/home/httpd/zipspool/">
Options FollowSymLinks
AllowOverride None
<IfModule mod_authz_core.c>
  Require all granted
</IfModule>
<IfModule !mod_authz_core.c>
  order allow,deny
  allow from all
</IfModule>
</Directory>

# Allow serving of files in captchaspool

<Directory "/home/httpd/captchaspool/">
Options FollowSymLinks
AllowOverride None
<IfModule mod_authz_core.c>
  Require all granted
</IfModule>
<IfModule !mod_authz_core.c>
  order allow,deny
  allow from all
</IfModule>
</Directory>

<DirectoryMatch "^/home/httpd/html/priv/.+/">
   DirectoryIndex disabled
</DirectoryMatch>

<DirectoryMatch "^/home/httpd/html/res/.+/">
   DirectoryIndex disabled
</DirectoryMatch>

# ============================================================= Access Handlers

# ------------------------------------------------- Allow server-status reports
<Location /server-status>
PerlAccessHandler Apache::lonstatusacc
SetHandler server-status
</Location>

# ------------------------ Allow LON-CAPA "low-level" connection status reports
<LocationMatch "^/+lon-status/.*">
PerlAccessHandler Apache::lonstatusacc
ErrorDocument     406 /adm/roles
ErrorDocument     500 /adm/errorhandler
</LocationMatch>

# ------------------- Allow access to local system documentation from localhost
Alias /doc /usr/doc
<Directory /usr/doc>
Options Indexes FollowSymLinks
<IfModule mod_authz_host.c>
  Require local
</IfModule>
<IfModule !mod_authz_host.c>
  order deny,allow
  deny from all
  allow from localhost
</IfModule>
</Directory>

# ******** THESE "SHOULD" NEVER BE ALTERED BY THE USER ************************
# ====================================== Internal Settings / Perl Configuration

PerlSetVar	 lonVersion  '<!-- VERSION -->'
PerlSetVar       lonIDsDir    /home/httpd/lonIDs
PerlSetVar       lonBalanceDir /home/httpd/balanceIDs
PerlSetVar       lonDAVsessDir /home/httpd/webdav/sessionIDs
PerlSetVar       lonTabDir    /home/httpd/lonTabs
PerlSetVar       lonUsersDir  /home/httpd/lonUsers
PerlSetVar       lonIconsURL  /adm/lonIcons
PerlSetVar       londPort     5663
PerlSetVar       lonSysEMail  techsupport@loncapa.org
PerlSetVar       lonDaemons   /home/httpd/perl
PerlSetVar       lonLib       /home/httpd/lib
PerlSetVar       lonSockDir   /home/httpd/sockets
PerlSetVar       lonSockCreate   /home/httpd/sockets/common
PerlSetVar       lonDocRoot   /home/httpd/html
PerlSetVar       lonPrtDir    /home/httpd/prtspool
PerlSetVar       lonIncludes  /home/httpd/html/res/adm/includes
PerlSetVar       lonZipDir    /home/httpd/zipspool
PerlSetVar       lonCaptchaDir     /home/httpd/captchaspool
PerlSetVar       lonCaptchaDb     /home/httpd/captchadb 
PerlSetVar       lonLTIDir    /home/httpd/lonLTItmp
PerlSetVar       lonFontsDir     /home/httpd/html/adm/fonts
# & separated list of % separated fields in order of
# - internal name to call it, 
# - regexp that it should match (done case-insensitively)
# - regexp that is should not match (done case-insensitively)
# - regexp that will pull out the version number into $1
# - a number that describes the minimum version that has mathml support
# - a number that describes the minimum number version that has unicode support

PerlSetVar       lonBrowsDet  explorer%msie%netscape%msie\s(\d+\.\d+)\;%9999%5&mozilla%mozilla\/[5-9]%msie%mozilla\/(\d+\.\d+)\s%9999%1&netscape%netscape%msie%netscape\/(\d+\.\d+)%9999%7&netscape%netscape\/[7-9]%shouldnotmatch%netscape\/(\d+\.\d+)%9999%7&amaya%amaya%mozilla%V(\d+\.\d+)\s%1%1&safari%safari%msie%safari\/([\d\.]+)%9999%84&chrome%chrome%chromeframe%\s+chrome\/(\d+\.\d+)%9999%1&explorer%\s+rv\:\d+\.\d+%firefox%\s+rv\:(\d+\.\d+)%9999%5&opera%\sOPR\/\d+\.\d+%shouldnotmatch%\sOPR\/(\d+\.\d+)%9999%6&opera%^Opera\/9.80\s.+Version\/\d+\.\d+$%shouldnotmatch%Version\/(\d+\.\d+)$%9999%6&opera%^Opera\/\d+\.\d+\s%Version\/\d+\.\d+$%^Opera\/(\d+\.\d+)\s%9999%6

PerlSetVar       lonTextBrowsers windows\s+ce:lynx
PerlSetVar       lonScansDir  /home/httpd/scantron
PerlSetVar       lonScriptTimeout 10
PerlSetVar	 BugzillaHost	http://bugs.lon-capa.org/
PerlSetVar	 FAQHost	http://help.lon-capa.org/
# -----------------------------------------------------------------------------
# NOTE: lonSqlAccess key is the password for the MySQL user
# www@localhost.  This value must always be "localhostkey".
# The only security risk occurs when somebody logs in as 'www' on your system
# (in which case you have much bigger problems than whether or not they
# can access the non-authoritative loncapa database on your machine).

PerlSetVar       lonSqlAccess   localhostkey

#----------------------------------------------------------------------------
#
#   Parameters used by secure lond/lonc

#
#   Secure lond/lonc require ssl certificate and private
#   key files to function correctly.  The certificate
#   files need not be terribly secure, but the private key files
#   should be set up so that only www (the lonc/lond effective user)
#   can read them.
# 
#   The definition below is the full path to the directory that
#   contains the certificate and key files:

PerlSetVar lonCertificateDirectory /home/httpd/lonCerts

#
#  Secure lond/lonc require two certificates and a private host key.
#  The certificates required are that of the lonCAPA certificate authority
#  and the certificate that authority issued to this host.
#  lonnetCertificateAuthority is the name of the file that contains the
#                            lonCAPA certificate authority's certificate.
#  lonnetCertificate is the name of the file that contains the certificate
#                    issued to the host by the certificate authority.
#  Both of these variables are names of files assumed to be in 
#  lonCertificateDirectory:

PerlSetVar lonnetCertificateAuthority loncapaCA.pem
PerlSetVar lonnetCertificate          lonhostcert.pem
PerlSetVar lonnetHostnameCertificate  lonhostnamecert.pem
PerlSetVar lonnetCertRevocationList   loncapaCAcrl.pem

#
#  To generate the request for a certificate, and to negotiate the
#  initial ssl connection, the host requires a private key.  This key
#  is created at lonCAPA install time.  Did we mention above that it
#  should be set so that only www can read it?  The variale below
#  is the name of the file relative to lonnetCertificateDirectory
#  that has the host's private key.  Did we remember to tell you to
#  keep the permissions on that file set to rw-------  (0600)?
#  

PerlSetVar lonnetPrivateKey         lonKey.pem

# Did we mention that the file described above must have
# permissions really locked down so that it can't be stolen?

#-------------------------------------------------------------------------

#   Parameters that define where all the ssl stuff is that's needed
#   to generate certificate requests and, on a system that's a CA
#   the certificate authority.
#    
#    SSLProgram    -> Path to the openssl command
#    SSLDirectory  -> Directory containing ssl configuration files etc.
#    SSLCAConfig   -> Name of the SSL config file for the certificate 
#                     Authority.
#    SSLCAFile     -> Full path to the Certificate authority file 
#                    (on the cert manager system).
#    SSLEmail      -> E-mail address of loncapa certificate manager.
#    The following are good for the loncapa redhat installs and
#    the loncapa certificate authority system:
#
PerlSetVar SSLProgram	/usr/bin/openssl
PerlSetVar SSLDirectory /usr/share/ssl
PerlSetVar SSLCAConfig  loncapaca
PerlSetVar SSLCAFile    /usr/share/ssl/loncapaca/cacert.pem
PerlSetVar SSLEmail     certificate@lon-capa.org

#-------------------------------------------------------------------------


# ====================================== Include support for SSL rewrites

Include conf/loncapa_rewrite.conf


# ====================================== Include machine-specific configuration

Include conf/loncapa.conf

# ================================================= Include local configuration

Include conf/loncapa_apache_local*.conf

# ================================================== Initiate mod_perl starting

PerlRequire      conf/startup.pl
<IfDefine !MODPERL2>
PerlFreshRestart On
</IfDefine>

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>