On Tue, Jul 09, 2013 at 12:46:36AM +0800, 刘新星 wrote:
> What I am doing is to add ldap group support for subversion. Which means we 
> don't need any predefined groups in authz file. We get groups from ldap 
> server directly.

Hello, thank you very much for this patch!

I have some questions and suggestions.

Are you aware of mod_ldap?
http://httpd.apache.org/docs/2.2/mod/mod_ldap.html
This is a module that provides ldap services to other Apache HTTPD
modules. If mod_authz_svn was using mod_ldap it it could achieve
better performance due to caching provided by mod_ldap.

You are linking libsvn_subr to the openldap library to support
ldap queries. This allows both mod_authz_svn and svnserve to access
the ldap server, which is good. I believe we should add ldap support
to both svnserve and mod_authz_svn, so a new dependency on openldap
seems inevitable, at least for svnserve. If you made use of mod_ldap
in mod_authz_svn, could the new ldap.c file be moved from libsvn_subr
to svnserve somehow? Then we could avoid indirectly linking every
subversion program to openldap via libsvn_subr. Such an approach might
also require some svn_repos API changes to make data obtained from
ldap accessible to libsvn_repos. But it might be worth considering
regardless.

In your patch, you extended svn_config_t and moved it to a public API
header. I think it would be better to keep svn_config_t private. You
could add new ldap-specific data to svn_authz_t and keep it private,
too. Provide svn_repos__authz_ API functions to get/set the data in
svn_authz_t if necessary. Then you don't need to make the definition
of svn_authz_t public.

The configuration variable names you're adding to mod_authz_svn conflict
with variable names used by mod_authnz_ldap. Like AuthLDAPBindPassword for
example, see here: 
http://httpd.apache.org/docs/2.2/mod/mod_authnz_ldap.html#authldapbindpassword
Please use names like SVNAuthLDAPBindPassword instead to avoid conflicts.

There are several sections in your patch that do not conform to
our coding style guidelines described here:
http://subversion.apache.org/docs/community-guide/conventions.html#coding-style
Perhaps you can spot them?
If not, we'll point them out in another review :)

That's all for now. I hope you will send a revised version of the patch.

Reply via email to