利用Apache与mod_wsgi 实现svn 动态权限鉴定(二)
来源:互联网 发布:国产采精小蝴蝶知乎 编辑:程序博客网 时间:2024/05/02 04:40
前面已经写到可以通过wsgi 可以实现动态的svn密码鉴定,但是还不够,因为svn还要组的概念在里面,
原先通过django手册和mod_wsgi手册里面的配置:
https://docs.djangoproject.com/en/1.10/howto/deployment/wsgi/apache-auth/
https://modwsgi.readthedocs.io/en/develop/user-guides/access-control-mechanisms.html#http-user-authentication
发现 WSGIAuthGroupScript 这个配置根本就不起作用,经过反复测试还是没有去执行里面的脚本
这个是我的配置:
<Location /> DAV svn SVNParentPath /var/svn/repos AuthType Basic AuthName "Authorization SVN" AuthBasicProvider wsgi WSGIAuthUserScript /var/www/auth.wsgi WSGIAuthGroupScript /var/www/auth.wsgi Require group secret-agents Require valid-user</Location>
发现根据手册里面说group这个配置会执行一个 groups_for_user
的方法,但是在去svn客户端请求的时候,groups_for_user 这个方法根本就没有执行,
百度和谷歌上面也是没有一点资料
最终在无意间看到了git上面的一个issue 才发现原来
https://github.com/GrahamDumpleton/mod_wsgi/issues/25
在配置还需要加上
Require wsgi-group secret-agents
而我前面一直是
Require group secret-agents
所以Apache根本就不会去执行 WSGIAuthGroupScript 上面配置脚本
总结下:
官方手册上如果有坑,真是会害死人啊!~~
目前还有一个问题:
虽然已经可以动态对svn的账户进行动态鉴权,在根据手册上面所述的,wsgi会去运行check_password和groups_for_user这两个方法但是,他们返回的都只是一个是True或者False 一个是groups的一个数组,而wsgi获取到这两个返回值如果不符合条件就会直接返回给svn客户端,svn客户端会马上弹出一个basic认证的窗口让用户再填写账户密码,这样就很影响用户体验的,不知道是否有大虾能够熟悉wsgi机制以及wsgi auth权限鉴定的,能来解决我的问题:只要用户再svn客户端登录成功了,但是他没有写入权限,只要他上传一个文件的时候就直接返回一个错误或者提示给用户,而不是弹出一个用户登录框出来。
- 利用Apache与mod_wsgi 实现svn 动态权限鉴定(二)
- 利用Apache与mod_wsgi 实现svn 动态权限鉴定(一)
- win+Apache+mod_wsgi配置mapproxy心得(二)
- mod_wsgi与apache安装配置
- Apache整合Tomcat实现静态资源与动态资源分离(二)
- 搭建svn+apache+trac平台(二)-Trac权限管理
- Android 深入(二)- 利用ToolBar实现动态主题
- Apache(XAMPP)+mod_wsgi+Django的安装与环境配置
- 使用Apache与mod_wsgi部署Django应用到服务器
- bottle+apache+mod_wsgi
- 让apache支持 mod_wsgi
- apache +mod_wsgi + django deploying
- django apache mod_wsgi配置
- apache 2.4配置mod_wsgi
- apache+mod_wsgi应用WSGI
- Apache + Flask + mod_wsgi部署
- Apache mod_wsgi模块简介
- apache+mod_wsgi+django
- python3 校验银行卡号码(luhn 算法)
- Linux / Unix系统 umask 命令
- 解决EditText跟ScrollView滑动冲突
- CDH5.2的Maven依赖
- Python selenium —— XPath and CSS cheat sheet
- 利用Apache与mod_wsgi 实现svn 动态权限鉴定(二)
- MacBook 触摸板手势突然失效的解决方案
- hdu 1358 Period (KMP)
- 烧写程序
- mysql错误解决:Host 'localhost' is not allowed to connect to this MySQL server
- 中国App增长联盟,和优秀的创始人玩着办大事!
- java获取当天初始结束时间
- 添加CSS的方法
- UML图箭头关系简介