You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@httpd.apache.org by Samuel Ballé <sb...@sbcmaroc.com> on 2008/11/07 12:57:42 UTC

[users@httpd] Re: Regarding Apache HTTP Authentication with an Oracle Database

Hi, here is a procedure to get apache 2.2 + *apr_dbd_oracle.so on linux 
(base debian 4 etch apache by apt-get standard)
*

*Install Oracle instant client :
*

get files from 
http://www.oracle.com/technology/software/tech/oci/instantclient/htdocs/linuxsoft.html 

get  basic.zip and sdk.zip
unzip them in /opt/oracle wich you create if not existent.
make sure you got a symlink /opt/oracle/instantclient to the current 
version (/opt/oracle/instantclient_11_1 now).

Note that the main problem to get the *apr_dbd_oracle.so is that the 
library libclntsh.so has move from lib directory in oracle client to 
oracle client main directory.
adding a symlink solves the compile issue :
*

ln -s /opt/oracle/instantclient /opt/oracle/instantclient/lib

then go on :

cd /tmp
wget http://mirrors.kahuki.com/apache/apr/apr-1.3.3.tar.bz2
cd /usr/src
tar -jxvf /tmp/apr-1.3.3.tar.bz2
cd apr-1.3.3
./configure --prefix=/usr
make
make install

cd /tmp
wget http://mirrors.kahuki.com/apache/apr/apr-util-1.3.4.tar.bz2
cd /usr/src
tar -jxvf /tmp/apr-util-1.3.4.tar.bz2
cd apr-util-1.3.4
./configure --with-apr=/usr/src/apr-1.3.3 
--with-oracle=/opt/oracle/instantclient 
--with-oracle-include=/opt/oracle/instantclient/sdk/include --prefix=/usr
make
make install

create tables in oracle :

create table apache_authn
(
        user_id varchar2(50)
        ,password varchar2(50)
        ,primary key (user_id)
)

then change you virtualhost config :
    DBDriver oracle
    DBDParams "user=test pass=test dbname=XE server=127.0.0.1:1521"
    DBDPersist off
# You should test with Persist off then change to on if it works.

and configure a directory :
    <Directory /var/www/test>
        AllowOverride None
        AuthType Basic
        AuthName "Acces utilisateur requis"
        AuthBasicProvider dbd
        Require valid-user
        AuthDBDUserPWQuery "SELECT password FROM apache_authn WHERE 
user_id = %s "
    </Directory>

restart apache.

password format is the same that those in the usual password file. just 
take what is after the ":".
source files mention that sha1 and md5 password should work.

Samuel Ballé

-------

    Hi Rajaopal M.,

    In order to use the mod_dbd.so, and mod_authn_dbd.so modules with
    mysql I had to build the mysql dbd driver provided in the arp-util
    (within Apache httpd-2.2.9).

    To accomplish this I used the configure flag noted in apr-util:

    ./httpd-2.2.9/srclib/apr-util> configure --help | grep -i mysql
    --with-mysql=DIR enable MySQL DBD driver

    I passed this --with-mysql flag to the top level configure when
    configuring httpd-2.2.9. Even though it doesn't undestand this flag,
    it passes it on to lower level configurations, such as when
    configuring apr-util.

    I have no experience with Oracle, but here are the Oracle configure
    flags I found in the configure help in apr-util:

    ./httpd-2.2.9/srclib/apr-util> configure --help | grep -i ora
    --with-oracle-include=DIR path to Oracle include files
    --with-oracle=DIR enable Oracle DBD driver; giving ORACLE_HOME as DIR

    Hope this helps, -Steve

        Rajagopal M. wrote:

        Hi Steve,

        I am RajaGopal Maddi. I have seen from one of the blogs in
        objectmix.com that you have used MySQL database for HTTP
        Authentication in Apache?

        Is it resolved for you? Steve, what should I do for doing the
        same with Oracle Database? Where do we get the
        *apr_dbd_oracle.so* from?

        Please throw some light on interaction with the Oracle Database.

        Thanks

        RajaGopal Maddi