【STEP1】
使用PostgreSQL的客户端pgAdmin登录数据库,做成用户认证表。字段名和表名任意,如
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】
由于使用Apache的mod_authn_dbd进行用户登录认证的时候,要求用户密码必须使用密文保存。这里我们使用Apache的commons-codec来加密密码明文。
1 String inpasswd = "test";
2 String passwd = "{SHA}" + Base64.encodeBase64String(MessageDigest.getInstance("SHA1").digest(inpasswd.getBytes()));
【STEP3】
为了之后Apache的mod_authn_dbd模块可以找到数据库的驱动,需要将PostgreSQL的驱动添加到LIBARAY_PATH中。由于操作系统是Redhat Enterprise Server 5,所以采用的方式是,在/etc/ld.so.conf.d目录下建立apr-util-httpd-1.2.conf这个文件,其中添加数据库驱动的路径。
※ 不知道数据库驱动的路径的话,可以使用find命令查找。
find / -name libpq.so
【STEP4】
下载Apache Http Server 2.2进行编译、安装。可以在客户端下载后,用sftp传到服务器上,也可以使用wget命令从internet上获取。
tar zxvf httpd-2.2.17.tar.gz
【STEP5】
为了使用mod_authn_dbd模块,首先必须安装apr框架。另外,Apache2.2.x要求apr的版本为1.2,如果服务器上已经存在apr 1.1的话,需要升级为1.2。在Apache2.2.x的configure如果指定了如下参数好像可以直接安装apr,但这次我们是分别安装apr和Apache 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/pgsql是PostgreSQL数据库安装的HOME目录。如果不在这个目录下面的话,可以使用find / -name pgsql来查找名为“pgsql”的目录。可能找到若干个,PostgreSQL数据库安装的HOME目录的特征是下面包含data/base和data/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的转发,所以加入proxy功能
8 "--enable-vhost-alias" \
9 "--enable-dbd" <-- 认证功能必须
10 "--enable-authn-dbd" <-- 认证功能必须
11 make
12 make install
※可以使用./configure --help来查看支持的参数。
【STEP9】
下面就可以启动WEB服务器,看服务器是否可以正常运行。
1 cd /usr/local/apache22/bin
2 ./apachectl start
3 ps –ef | grep httpd <-- 查看服务是否启动
使用浏览器访问地址,如果出现“It Works!”表明已经安装好。
【STEP10】
停止服务器,修改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】
再次启动服务器,访问WEB服务器后,就会弹出要求登录的对话框,输入数据库中保存的用户名和密码后,应该可以正常登录了。
【STEP12】
之后为了连接Tomcat,在http.conf中加入
ProxyPass / ajp://localhost:8009/
此时,所有对Apache Http Server的请求都会转发给Tomcat,而Apache Http Server就作为一个前端认证的服务器使用。另外,在Tomcat的JSP中,使用request.getRemoteUser还可以取到登录的用户名。
分享到:
相关推荐
apache模块mod_concatx 提高js/css加载速度,有源码和dll,和说明文档
mod_authn_ntlm-1.0.8-x86-vs16.zip.sha
mod_authn_dbd mod_authn_dbm mod_authn_default mod_authn_file mod_authz_dbm mod_authz_default mod_authz_groupfile mod_authz_host mod_authz_owner mod_authz_user mod_auth_basic mod_auth_digest mod_...
LoadModule authn_dbd_module modules/mod_authn_dbd.so LoadModule authn_default_module modules/mod_authn_default.so LoadModule authz_host_module modules/mod_authz_host.so LoadModule authz_groupfile_...
web_authn_playground
主要从 apache-2.2 的 mod_auth_basic 复制而来。 basic-auth 握手被一些代码取代,这些代码从可定制的变量中获取用户 ID。 该变量可以是 ap_expr 可以在身份验证挂钩中读取的任何内容,例如:标头字段、httpd 环境...
适用于Apache的Dovecot身份验证模块 因为dovecot可以具有许多不同的身份验证后端,并且通过dovecot-auth客户端套接字(可以在下面找到示例配置)将自己暴露为身份验证源。 通过此模块,您可以使用基本身份验证来针对...
网络认证 Ruby中的W3C Web身份验证API(又名WebAuthN / FIDO 2.0)RP库 安装 将此行添加到您的应用程序的Gemfile中: gem 'web_authn' 然后执行: $ bundle 或将其自己安装为: $ gem install web_authn 用法 ...
Apache :: Authn :: Redmine ... 对不起,ruby用户,但是您需要一些perl模块,至少需要mod_perl2,DBI和DBD :: mysql(或者您数据库的DBD驱动程序,因为它应该在所有所有数据库上都可以工作)。 在debian /
配置该插件同时使用, rabbitmq.conf和advanced.config 。 配置文件示例如下: auth_backends.1.authn = internalauth_backends.1.authz = rabbit_auth_backend_ip_range[ { rabbitmq_auth_backend_ip_range , [ { ...
mod_authn_sasl是Apache 2.2 Web服务器的SASL身份验证后端提供程序模块。 它提供用于HTTP基本身份验证的密码检查功能。 根据SASL密码检查后端检查用户名和密码。
ldapp验证 认证中间件
mod_auth 项目为 apache httpd 2.1 身份验证框架提供了 authn 和 authz 模块。
RPC_C_AUTHN_LEVEL_DEFAULT, // Default authentication RPC_C_IMP_LEVEL_IMPERSONATE, // Default Impersonation NULL, // Authentication info EOAC_NONE, // Additional capabilities NULL // Reserved );...
微信和CAS登录整合 ##一、简介 最近微信连通一切的口号这么火,突然想研究微信认证能否和CAS整合。 环境: 微信 6.1 Android版 CAS 3.4.12 手头的老版本 ##二、微信认证简介 微信授权大致和Oauth协议差不多,主要步...
角蛋白AuthN 现代的身份验证后端服务。 ( )有关的此存储库构建后端Go服务,该服务提供与帐户和密码相关的安全端点。 您必须将其与应用程序的前端和后端集成。 客户端库当前可用于: 后端: • • 前端: 如果您...
打包和示例服务,用于构建RabbitMQ HTTP Auth服务以与RabbitMQ“ HTTP Auth Backend”(实际上是AuthN / AuthZ后端)一起使用。 有关详细信息,请参见 建立自己的服务 要构建RabbitMQ HTTP Auth后端,您只需实现...
kubernetes-github-authn, 用于Kubernetes的GitHub令牌身份验证 GitHub的 Kubernetes Webhook令牌身份验证器这里项目实现了一个 Kubernetes Webhook令牌身份验证器,用于使用GitHub个人访问令牌验证用户身份。...
身份验证服务,让您无需成为Web安全专家就可以控制自己。
conjur-authn-k8s-client 可用的图像: 里面有什么? Conjur Kubernetes身份验证器客户端被设计为在存储和内存消耗方面都具有较小的占用空间。 它具有很少的组件: 身份验证器的静态二进制文件 来自busybox的...