zoukankan      html  css  js  c++  java
  • 基于应用程序级的Apache认证配置(普通认证篇)

    Apache服务器提供了两种用户认证方式,即普通认证和摘要认证。在网上有很多讲如何配置Apache普通认证的文章,但是它们几乎都是类似告诉你如何去保护某个文件夹的文件之类的配置方法。
    如果你的需求是对所有的HTTP请求都认证,并且针对认证后的请求做出相应的处 理,这又该如何配置呢?这里也跟我这里题目有关。首先我要解释一下它。这个题目为什么叫基于应用程序级呢?也就是说这里的配置不是为那些将Apache用 于网页浏览的Web服务器配置,而是为需要在Apache上做应用程序开发,处理自定义业务的用户。要对所有的HTTP请求自己再加自定义的处理,因此就 必须编写了自己的Apache模块,并定义了处理方法,这里叫hello-bdb。
    首先,配置httpd.conf文件。你需要在conf目录下的httpd.conf文件中加入(位置不重要,但必须放在最顶层)如下配置:
    <Location />
        SetHandler hello-bdb
        AuthName "Server Infomation"
        AuthType Basic
        AuthUserFile D:\Apache22\conf\htpasswd.pwd
        require valid-user
    </Location>
    针对上述配置的解释:
    (1)SetHandler 是增加的自定义处理,也就是自己编写的处理模块;
    (2)AuthName 后面是服务器信息,你可以替换成任意字符,最好用能反应你服务器信息的字符串,这里个信息会显示在输入用户和密码的对话框中,见后面的图;
     
    (3)AuthType 后面是认证类型,Basic表示普通认证。摘要认证相应的指令是Digest;
    (4)AuthUserFile 后面是你存放用户名和密码的文件,后面会介绍如何生成该文件;
    (5)require valid-user表示配置文件中的合法用户都可以访问。
     
    其次,生成用户名和密码文件。这时要使用Apache提供的htpasswd工具。方法如下:
    htpasswd -bc ../conf/htpasswd.pwd user1 1234
    上述命令生成htpasswd.pwd文件,并向其中加入用户user1,密码为1234。
    如果成功了,系统会提示如下。
    Automatically using MD5 format.
    Adding password for user user1
    最后,运行。在浏览器中输入http://localhost。会弹出图示如下的对话框:

    分别输入用户名user1和密码1234,然后系统通过认证后,进行自定义的处理,然后会将处理结果返回到浏览器。
    大家一看就感觉上面的普通认证安全性不高,并且用户名和密码在传输过程中也只进行了Base64编码,很容易被窃取。摘要认证的安全性要比普通认证高,缺点就是不是所有的浏览器都支持它。
    转:http://blog.csdn.net/gobitan/archive/2007/03/24/1539933.aspx
  • 相关阅读:
    HTTP的OPTIONS请求方法
    K8s -- DaemonSet
    Nginx 变量漫谈(二)
    Nginx 变量漫谈(一)
    通俗地讲,Netty 能做什么?
    CSP AFO后可以公开的情报
    AT1219 歴史の研究
    LuoguP4165 [SCOI2007]组队
    CF708C Centroids(树形DP)
    CF208E Blood Cousins(DSU,倍增)
  • 原文地址:https://www.cnblogs.com/likwo/p/1623785.html
Copyright © 2011-2022 走看看