<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    初一七月

    你必須承認,我們生存的這個世界取決于自身的能力而非別人的保護(AW)
    隨筆 - 23, 文章 - 0, 評論 - 11, 引用 - 0
    數(shù)據(jù)加載中……

    HTTP添加Basic認證

    一個web站點,總會有一些資源需要保護,比如圖片文件、某些頁面等,使用basic認證簡單方便,易于配置,且完全獨立于開發(fā)。basic認證既可以在web容器上,也可以放到前端服務(wù)器上。

    resin配置

    basic的resin配置需要在web項目的描述文件web.xml中,通過添加如下內(nèi)容,可以對指定路徑的資源進行保護,所有對指定資源的訪問,都需要輸入配置的用戶名與密碼,驗證通過后才可以正常訪問。

    <authenticator type="com.caucho.server.security.XmlAuthenticator">
        
    <init>
        
    <user>user:pass:admin</user>
        
    <password-digest>none</password-digest>
        
    </init>
    </authenticator>
    <login-config auth-method="basic" />
    <security-constraint url-pattern="/admin/**" role-name="admin" />

    上面的配置代表當用戶訪問以yourapp/admin/開頭的所有資源時,都需要通過basic認證(如果之前還沒有通過的話),用戶名是user,密碼是pass。有時候需要保護的資源不止一項,那么可以用如下的方法配置。

    <authenticator type="com.caucho.server.security.XmlAuthenticator">
        
    <init>
        
    <user>user:pass:admin</user>
        
    <password-digest>none</password-digest>
        
    </init>
    </authenticator>
    <login-config auth-method="basic" />
    <security-constraint>  
        
    <web-resource-collection>  
        
    <web-resource-name>Protected Context</web-resource-name>  
            
    <url-pattern>/admin/**</url-pattern>     
            
    <url-pattern>/manage/**</url-pattern>
        
    </web-resource-collection>  
        
    <auth-constraint role-name='admin' />   
    </security-constraint>

    此時所有以yourapp/admin/或者yourapp/manage/開頭的資源都需要經(jīng)過basic認證。

    nginx配置

    雖然resin的配置也可以達到效果,但是畢竟是配置到了工程文件中,以后定期更換用戶名與密碼,都得更新項目描述符;而且有個更要命的問題,如果一個resin上有多個項目的話,一次更新就需要修改所有相關(guān)項目的web.xml文件,太麻煩了。在nginx上也可以配置basic認證,而且更簡單。

    nginx的http basic認證密碼是用crypt(3)加密的,可以試用apache的htpasswd生成密碼文件。首先進入apache的安裝目錄,進入apache/bin/目錄下,可以看到htpasswd,輸入如下命令生成密碼文件。

    htpasswd -c -d pass_file user_name


    其中-c表示生成文件,-d表示是以crypt加密,pass_file是密碼文件名,user_name表示basic認證的用戶名,回車后會提示輸入密碼,然后再次輸入確認,生成密碼文件完成。

    然后就是配置nginx,nginx的認證需要配置到location下,如下所示。

    location ~ /admin/manage {
        auth_basic  "Auth";
        auth_basic_user_file  pass_file;
    }

    其中Auth可以隨意設(shè)置,它只不過是當需要認證時彈出窗口的服務(wù)顯示名稱而已,pass_file就是我們之前生成的密碼文件,這里要注意nginx 0.6.7開始,auth_basic_user_file的相對目錄是nginx_home/conf,以前版本的相對目錄是nginx_home,現(xiàn)在只要訪問包含/admin/manage路徑的資源都會彈出認證框,而且對于一個nginx代理了n個web服務(wù)的情況,需要更換用戶名與密碼時,只需要將密碼文件替換一次即可,比第一種方式方便可靠了很多。

    posted on 2011-02-23 22:41 初一七月 閱讀(4660) 評論(2)  編輯  收藏 所屬分類: Web

    評論

    # re: HTTP添加Basic認證  回復(fù)  更多評論   

    能不能講講http basic在實際工作用的應(yīng)用呀。。。。。。。
    2012-08-23 09:59 | phperstar

    # re: HTTP添加Basic認證  回復(fù)  更多評論   

    請問,添加basic認證后,會彈出輸入用戶名和密碼的窗口,有沒有辦法讓nginx記住用戶名密碼,下次可以自動登錄啊?
    2014-05-05 17:55 | liuzx
    主站蜘蛛池模板: 亚洲手机中文字幕| 亚洲色无码专区在线观看| 亚洲性无码av在线| 97在线视频免费| 亚洲高清在线mv| 国产成人免费午夜在线观看| 亚洲精品午夜视频| 1000部拍拍拍18免费网站| 亚洲成av人片不卡无码| 无码日韩人妻av一区免费| 亚洲色大成网站WWW国产| 日本最新免费不卡二区在线| 精品视频免费在线| 国产午夜亚洲不卡| 久久久久免费精品国产小说| 亚洲成人福利在线观看| 成年女人男人免费视频播放| 国产AV无码专区亚洲AV麻豆丫| 亚洲女同成人AⅤ人片在线观看| 插鸡网站在线播放免费观看| 亚洲av日韩av不卡在线观看| 免费看男女下面日出水来| 亚洲aⅴ无码专区在线观看春色| 亚洲国产精品成人网址天堂| 丁香花在线视频观看免费| 亚洲经典在线中文字幕| 精品免费久久久久久成人影院| 一本一道dvd在线观看免费视频| 亚洲国产精品久久| 免费鲁丝片一级在线观看| 四虎影视久久久免费| 老汉色老汉首页a亚洲| 免费观看的毛片手机视频| 黄色视频在线免费观看| 亚洲中文字幕在线无码一区二区 | 亚洲乱码中文字幕综合| 亚洲精品在线免费看| 特级aaaaaaaaa毛片免费视频| 亚洲av丰满熟妇在线播放| 国产精品国产自线拍免费软件| 成人国产精品免费视频|