mirror of
https://github.com/h2o/h2o.git
synced 2025-05-15 19:06:41 +08:00
102 lines
3.3 KiB
HTML
102 lines
3.3 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
|
<meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=no" />
|
|
<base href="../" />
|
|
|
|
<!-- oktavia -->
|
|
<link rel="stylesheet" href="assets/searchstyle.css" type="text/css" />
|
|
<script src="search/jquery-1.9.1.min.js"></script>
|
|
<script src="search/oktavia-jquery-ui.js"></script>
|
|
<script src="search/oktavia-english-search.js"></script>
|
|
<!-- /oktavia -->
|
|
|
|
<link rel="stylesheet" href="assets/style.css" type="text/css" />
|
|
|
|
<title>Using Basic Authentication - Configure - H2O - the optimized HTTP server</title>
|
|
</head>
|
|
<body>
|
|
<div id="body">
|
|
<div id="top">
|
|
|
|
<h1>
|
|
<a href="index.html">H2O</a>
|
|
</h1>
|
|
<p class="description">the optimized HTTP/1.x, HTTP/2, HTTP/3 server</p>
|
|
|
|
<!-- oktavia -->
|
|
<form id="searchform">
|
|
<input class="search" type="search" name="search" id="search" results="5" value="" placeholder="Search" />
|
|
<div id="searchresult_box">
|
|
<div id="close_search_box">×</div>
|
|
<div id="searchresult_summary"></div>
|
|
<div id="searchresult"></div>
|
|
<div id="searchresult_nav"></div>
|
|
<span class="pr">Powered by <a href="https://github.com/shibukawa/oktavia">Oktavia</a></span>
|
|
</div>
|
|
</form>
|
|
<!-- /oktavia -->
|
|
|
|
</div>
|
|
|
|
<table id="menu">
|
|
<tr>
|
|
<td><a href="index.html">Top</a></td>
|
|
<td><a href="install.html">Install</a></td>
|
|
<td class="selected"><a href="configure.html">Configure</a></td>
|
|
<td><a href="faq.html">FAQ</a></td>
|
|
<td><a href="http://blog.kazuhooku.com/search/label/H2O" target="_blank">Blog</a></td>
|
|
<td><a href="http://github.com/h2o/h2o/" target="_blank">Source</a></td>
|
|
</tr>
|
|
</table>
|
|
|
|
<div id="main">
|
|
|
|
<h2>
|
|
<a href="configure.html">Configure</a> >
|
|
Using Basic Authentication
|
|
</h2>
|
|
|
|
|
|
<p>
|
|
Starting from version 1.7, H2O comes with a mruby script named <a href="https://github.com/h2o/h2o/blob/master/share/h2o/mruby/htpasswd.rb">htpasswd.rb</a> that implements <a href="https://tools.ietf.org/html/rfc2617" target="_blank">Basic Authentication</a>.
|
|
The script provides a Rack handler that implements Basic Authentication using password files generated by the <a href="https://httpd.apache.org/docs/2.4/programs/htpasswd.html">htpasswd</a> command.
|
|
</p>
|
|
|
|
<p>
|
|
Below example uses the mruby script to restrict access to the path.
|
|
If authentication fails, the mruby handler returns a <code>401 Unauthorized</code> response.
|
|
If authentication succeeds, the handler returns a <code>399</code> response, and the request is <a href="configure/mruby.html#delegating-request">delegated</a> internally to the next handler (i.e. <code>file.dir</code>).
|
|
</p>
|
|
|
|
<div class="example">
|
|
<div class="caption">Example. Configuring HTTP authentication using htpasswd.rb</div>
|
|
<pre><code>paths:
|
|
"/":
|
|
mruby.handler: |
|
|
require "htpasswd.rb"
|
|
Htpasswd.new("/path/to/.htpasswd", "realm-name")
|
|
file.dir: /path/to/doc_root
|
|
</code></pre>
|
|
</div>
|
|
|
|
|
|
<p>
|
|
In H2O versions prior to 2.0, you should specify <code>"#{$H2O_ROOT}/share/h2o/mruby/htpasswd.rb"</code> as the argument to <code>require</code>, since the directory is not registered as part of <code>$LOAD_PATH</code>.
|
|
</p>
|
|
|
|
For convenience, the mruby script also forbids access to files or directories that start with <code>.ht</code>.
|
|
|
|
|
|
|
|
|
|
</div>
|
|
<div id="footer">
|
|
<p>
|
|
Copyright © 2015-2023 <a href="http://dena.com/intl/">DeNA Co., Ltd.</a> et al.
|
|
</p>
|
|
</div>
|
|
</body>
|
|
</html>
|