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

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

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

    Mongoose House

    Technical Edition

    統(tǒng)計

    留言簿(4)

    積分與排名

    閱讀排行榜

    使用Apache的mod_authn_dbd和PostgreSQL實施HTTP Basic登錄認(rèn)證

    【STEP1】

    使用PostgreSQL的客戶端pgAdmin登錄數(shù)據(jù)庫,做成用戶認(rèn)證表。字段名和表名任意,如
    1 CREATE TABLE usrinfo
    2 (
    3   userid character varying NOT NULL,
    4   passwd character varying NOT NULL,
    5   CONSTRAINT usrinfo_pk PRIMARY KEY (userid)
    6 )
    7 

     

    【STEP2】

    由于使用Apachemod_authn_dbd進行用戶登錄認(rèn)證的時候,要求用戶密碼必須使用密文保存。這里我們使用Apachecommons-codec來加密密碼明文。
    1         String inpasswd = "test";
    2         String passwd = "{SHA}" + Base64.encodeBase64String(MessageDigest.getInstance("SHA1").digest(inpasswd.getBytes()));

     

    【STEP3】

    為了之后Apachemod_authn_dbd模塊可以找到數(shù)據(jù)庫的驅(qū)動,需要將PostgreSQL的驅(qū)動添加到LIBARAY_PATH中。由于操作系統(tǒng)是Redhat Enterprise Server 5,所以采用的方式是,在/etc/ld.so.conf.d目錄下建立apr-util-httpd-1.2.conf這個文件,其中添加數(shù)據(jù)庫驅(qū)動的路徑。

        不知道數(shù)據(jù)庫驅(qū)動的路徑的話,可以使用find命令查找。

    find / -name libpq.so

     

    【STEP4】

    下載Apache Http Server 2.2進行編譯、安裝。可以在客戶端下載后,用sftp傳到服務(wù)器上,也可以使用wget命令從internet上獲取。
    tar zxvf httpd-2.2.17.tar.gz

     

    【STEP5】

    為了使用mod_authn_dbd模塊,首先必須安裝apr框架。另外,Apache2.2.x要求apr的版本為1.2,如果服務(wù)器上已經(jīng)存在apr 1.1的話,需要升級為1.2。在Apache2.2.xconfigure如果指定了如下參數(shù)好像可以直接安裝apr,但這次我們是分別安裝aprApache Http Server

    --enable-dbd --enable-authn-dbd --with-pgsql=/usr/local/pgsql

     

    【STEP6】

    進入httpd-2.2.17/srclib/apr目錄,安裝apr框架。
    1 ./configure --prefix=/usr/local/apr-httpd/
    2 make
    3 make install

     

    【STEP7】

    安裝apr-util 1.2

    1 ./configure --prefix=/usr/local/apr-util-httpd/ --with-apr=/usr/local/apr-httpd/ --with-pgsql=/usr/local/pgsql
    2 make
    3 make install

    一般地,
    /usr/local/pgsqlPostgreSQL數(shù)據(jù)庫安裝的HOME目錄。如果不在這個目錄下面的話,可以使用find / -name pgsql來查找名為“pgsql”的目錄。可能找到若干個,PostgreSQL數(shù)據(jù)庫安裝的HOME目錄的特征是下面包含data/basedata/global兩個目錄。

     

    【STEP8】

    安裝Apache Http Server

     

     1 "./configure" \
     2 "--prefix=/usr/local/apache22/" \
     3 "--with-apr=/usr/local/apr-httpd/" \
     4 "--with-apr-util=/usr/local/apr-util-httpd/" \
     5 "--enable-rewrite=shared" \
     6 "--enable-ssl" \
     7 "--enable-proxy" \     <-- 因為之后要做到Tomcat的轉(zhuǎn)發(fā),所以加入proxy功能
     8 "--enable-vhost-alias" \
     9 "--enable-dbd"         <-- 認(rèn)證功能必須
    10 "--enable-authn-dbd"   <-- 認(rèn)證功能必須
    11 make
    12 make install

     

    ※可以使用./configure --help來查看支持的參數(shù)。 

     

    【STEP9】

    下面就可以啟動WEB服務(wù)器,看服務(wù)器是否可以正常運行。

     

    1 cd /usr/local/apache22/bin
    2 ./apachectl start
    3 ps –ef | grep httpd     <-- 查看服務(wù)是否啟動
    使用瀏覽器訪問地址,如果出現(xiàn)“It Works!”表明已經(jīng)安裝好。

     

    【STEP10】

    停止服務(wù)器,修改conf/http.conf文件。
     
    ./apachectl stop

    httpd.conf
     1 
     2 #Database Management
     3 #Use the PostgreSQL driver
     4 DBDriver pgsql
     5 
     6 #Connection string: database name and login credentials
     7 DBDParams "host=192.168.0.75 dbname=postgres user=test password=test"
     8 
     9 #Parameters for Connection Pool Management
    10 DBDMin 1
    11 DBDKeep 2
    12 DBDMax 10
    13 DBDExptime 60
    14 
    15 #Authentication Section
    16 <Location "/">
    17 
    18 #mod_auth configuration for authn_dbd
    19 AuthType Basic
    20 AuthName "mongoose"
    21 AuthBasicProvider dbd
    22 
    23 #authz configuration
    24 Require valid-user
    25 
    26 #SQL query to verify a user
    27 #(note: DBD drivers recognise both stdio-like %s and native syntax)
    28 AuthDBDUserPWQuery "select passwd from userinfo where userid = %s"
    29 
    30 </Location>
    31 

     

    【STEP11】

    再次啟動服務(wù)器,訪問WEB服務(wù)器后,就會彈出要求登錄的對話框,輸入數(shù)據(jù)庫中保存的用戶名和密碼后,應(yīng)該可以正常登錄了。

    【STEP12】

    之后為了連接Tomcat,在http.conf中加入
    ProxyPass / ajp://localhost:8009/

    此時,所有對Apache Http Server的請求都會轉(zhuǎn)發(fā)給Tomcat,而Apache Http Server就作為一個前端認(rèn)證的服務(wù)器使用。另外,在TomcatJSP中,使用request.getRemoteUser還可以取到登錄的用戶名。

    posted on 2011-03-26 20:33 Mongoose 閱讀(2195) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 亚洲视频小说图片| 久久综合图区亚洲综合图区| 456亚洲人成影院在线观| 99久久免费中文字幕精品| 久久精品亚洲一区二区 | 亚洲国产成人爱av在线播放| 亚洲精品av无码喷奶水糖心| 国产免费一区二区三区VR| 色欲aⅴ亚洲情无码AV| 免费一级国产生活片| 搜日本一区二区三区免费高清视频| 亚洲AV无码乱码在线观看性色扶 | 丁香亚洲综合五月天婷婷| 美女羞羞喷液视频免费| 亚洲国产精品无码久久久久久曰| 人妻免费久久久久久久了| 亚洲夜夜欢A∨一区二区三区| 精品一卡2卡三卡4卡免费视频| 久久精品国产亚洲av水果派| 2021久久精品免费观看| 午夜亚洲WWW湿好爽| 亚洲日本韩国在线| 一级毛片**不卡免费播| 亚洲日韩一中文字暮| 亚洲国产成人精品91久久久| 无码AV片在线观看免费| 亚洲成年网站在线观看| 亚洲高清免费视频| 欧洲人免费视频网站在线| 亚洲一区二区三区91| 亚洲精品无码久久久| 91免费国产精品| 在线观看亚洲专区| 亚洲国产成人久久综合一| 精品熟女少妇AV免费观看| jzzjzz免费观看大片免费| 亚洲中文字幕久久精品无码2021| 免费观看午夜在线欧差毛片| 最刺激黄a大片免费网站| 国产亚洲综合一区二区三区| 日本久久久久亚洲中字幕|