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

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

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

    初一七月

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

    HTTP添加Basic認(rèn)證

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

    resin配置

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

    <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" />

    上面的配置代表當(dāng)用戶訪問(wèn)以yourapp/admin/開(kāi)頭的所有資源時(shí),都需要通過(guò)basic認(rèn)證(如果之前還沒(méi)有通過(guò)的話),用戶名是user,密碼是pass。有時(shí)候需要保護(hù)的資源不止一項(xiàng),那么可以用如下的方法配置。

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

    此時(shí)所有以yourapp/admin/或者yourapp/manage/開(kāi)頭的資源都需要經(jīng)過(guò)basic認(rèn)證。

    nginx配置

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

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

    htpasswd -c -d pass_file user_name


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

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

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

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

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

    評(píng)論

    # re: HTTP添加Basic認(rèn)證  回復(fù)  更多評(píng)論   

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

    # re: HTTP添加Basic認(rèn)證  回復(fù)  更多評(píng)論   

    請(qǐng)問(wèn),添加basic認(rèn)證后,會(huì)彈出輸入用戶名和密碼的窗口,有沒(méi)有辦法讓nginx記住用戶名密碼,下次可以自動(dòng)登錄?。?
    2014-05-05 17:55 | liuzx
    主站蜘蛛池模板: 久久精品国产亚洲AV电影网| 久久久久久影院久久久久免费精品国产小说| 国产乱子伦精品免费女| 中文字幕永久免费| 亚洲av永久无码精品天堂久久| 日本无卡码免费一区二区三区| 视频一区二区三区免费观看| 亚洲国产精品成人精品无码区在线| 久久福利资源网站免费看| 日韩成人精品日本亚洲| 亚洲午夜免费视频| 日本高清免费不卡视频| 男女午夜24式免费视频| 亚洲精品无码人妻无码| 国产亚洲精品a在线观看app| 女人被男人桶得好爽免费视频| 黄色短视频免费看| 亚洲综合无码一区二区痴汉 | 亚洲欧洲日产国码av系列天堂 | 免费在线不卡视频| 99热在线观看免费| 男女污污污超污视频免费在线看| 亚洲视频在线观看视频| 一本色道久久88亚洲综合| 免费观看激色视频网站(性色)| 好猛好深好爽好硬免费视频| 国产亚洲中文日本不卡二区| 亚洲综合在线观看视频| 亚洲精品色婷婷在线影院| 免费无码又黄又爽又刺激| 久久亚洲免费视频| EEUSS影院WWW在线观看免费| 亚洲熟伦熟女专区hd高清| 亚洲欧洲日产专区| 久久久久亚洲AV无码专区首| 亚洲午夜av影院| 夫妻免费无码V看片| 成人免费福利视频| 成人av片无码免费天天看| 青草青草视频2免费观看| 波多野结衣亚洲一级|