- 论坛徽章:
- 0
|
本帖最后由 ayl001 于 2010-10-25 15:42 编辑
Apache认证页面,要求输入用户密码,我在Shell中怎么获取到这个用户和密码?
以便去数据库查询!判断登陆!
PHP实现也可!
都成了热点,还以为沉了,还是我来了结吧!也是我没给大家说明白环境!
需求是这样的:
svn账号以前都是手动添加,手动设置密码和权限,问题就是有些人,老忘记密码,所以就想找个办法,用公司的邮箱账户登录SVN!因为邮箱有密码找回功能!
偶然发现了,Apache的mod-auth-external模块
网址:http://code.google.com/p/mod-auth-external/
看文档时候,太急了,一句话没看清楚
In the "environment" method, the arguments are passed in environment variables. The user id and the clear-text password are passed in the USER and PASS environment variables respectively.
所以就出现了,我遇到问题,怎么获取!其实人家都已经给了,都是英文的,理解一下!
文档给的是C写的,很简单,还是用SH吧!只需返回0,或1就可以了!
#!/bin/bash
user=$USER
pass=$PASS
#echo $user
host=$(/usr/local/mysql/bin/mysql -uroot -hlocalhost -D mysql -e "select * from user where User='"$user"' Password='"$pass"';")
if [ -z $host ]
then
echo "a"
exit 1
else
echo "b"
exit 0
fi
apache 里的配置为
LoadModule authnz_external_module modules/mod_authnz_external.so
DefineExternalAuth archive_auth environment /usr/local/bin/authcheck
<Location /a>
DAV svn
SVNParentPath /data/svndata
AuthType Basic
AuthName "hello welcome to here"
AuthBasicProvider external
AuthExternal archive_auth
#AuthUserFile /data/svn/passwd
AuthzSVNAccessFile /data/svn/auth.conf
Require valid-user
</Location>
测试可以完成认证,但是PASS是明文传输,邮件系统是密码是MD5加密,问题来了,
不知道Shell里的MD5和Java里的MD5是否一样!
不一样我看这个认证脚本旧的,用JAVA写了!
这个还没试过!
这个模块非常好用,具体大家自己去看! |
|