On (15/07/15 21:11), Jakub Hrozek wrote:
>On Wed, Jul 15, 2015 at 07:27:08PM +0200, Lukas Slebodnik wrote:
>> On (15/07/15 10:34), Sumit Bose wrote:
>> >On Tue, Jul 14, 2015 at 04:33:58PM +0200, Lukas Slebodnik wrote:
>> >> On (14/07/15 15:02), Sumit Bose wrote:
>> >> >Hi,
>> >> >
>> >> >this patch should fix https://fedorahosted.org/sssd/ticket/2717 .
>> >> >
>> >> >As you can see I added a new entry ipa_ad_default_names to the global
>> >> >nss context so that the regular expression string is only evaluated
>> >> >once. Since it is currently only used in
>> >> >nss_check_name_of_well_known_sid() I do the initialization here to avoid
>> >> >initialization when it is not needed. If you think this is too risky in
>> >> >future I'm fine with moving the initialization to the general
>> >> >initialization of the nss context.
>> >> >
>> >> >bye,
>> >> >Sumit
>> >> 
>> >> >From 1ff1e1f5fb57dd7e1fa85eb758b8769dfb1260d0 Mon Sep 17 00:00:00 2001
>> >> >From: Sumit Bose <sb...@redhat.com>
>> >> >Date: Tue, 14 Jul 2015 14:41:34 +0200
>> >> >Subject: [PATCH] nss_check_name_of_well_known_sid() improve name 
>> >> >splitting
>> >> >
>> >> >Currently in the default configuration
>> >> >nss_check_name_of_well_known_sid() can only split fully-qualified names
>> >> >in the u...@domain.name style. DOM\user style names will cause an error
>> >> >and terminate the whole request.
>> >> >
>> >> >With this patch both styles can be handled by default, additionally if
>> >> >the name could not be split nss_check_name_of_well_known_sid() returns
>> >> >ENOENT which can be handled more gracefully by the caller.
>> >> >
>> >> >Resolves https://fedorahosted.org/sssd/ticket/2717
>> >> >---
>> >> > src/responder/nss/nsssrv.h      |  1 +
>> >> > src/responder/nss/nsssrv_cmd.c  | 32 ++++++++++++++-
>> >> > src/tests/cmocka/test_nss_srv.c | 90 
>> >> > ++++++++++++++++++++++++-----------------
>> >> > src/util/usertools.c            |  7 ++++
>> >> > src/util/util.h                 |  3 ++
>> >> > 5 files changed, 94 insertions(+), 39 deletions(-)
>> >> >
>> >> >diff --git a/src/responder/nss/nsssrv.h b/src/responder/nss/nsssrv.h
>> >> >index 
>> >> >e293e3b4d03582abf6abf07cce61d3b6fdebfcae..6a77f9f1179e0bb2353a01edf14a27e576eba481
>> >> > 100644
>> >> >--- a/src/responder/nss/nsssrv.h
>> >> >+++ b/src/responder/nss/nsssrv.h
>> >> >@@ -76,6 +76,7 @@ struct nss_ctx {
>> >> > 
>> >> >     struct sss_idmap_ctx *idmap_ctx;
>> >> >     struct sss_names_ctx *global_names;
>> >> >+    struct sss_names_ctx *ipa_ad_default_names;
>> >> > 
>> >> >     const char **extra_attributes;
>> >> > };
>> >> >diff --git a/src/responder/nss/nsssrv_cmd.c 
>> >> >b/src/responder/nss/nsssrv_cmd.c
>> >> >index 
>> >> >0129467302f16af318bbbb0a5be47ff2e235da65..eb550cd007cfb6fac0271b7de211285b6cebfdef
>> >> > 100644
>> >> >--- a/src/responder/nss/nsssrv_cmd.c
>> >> >+++ b/src/responder/nss/nsssrv_cmd.c
>> >> >@@ -1248,13 +1248,43 @@ static int 
>> >> >nss_check_name_of_well_known_sid(struct nss_cmd_ctx *cmdctx,
>> >> >     size_t pctr = 0;
>> >> > 
>> >> >     nss_ctx = talloc_get_type(cmdctx->cctx->rctx->pvt_ctx, struct 
>> >> > nss_ctx);
>> >> >-    ret = sss_parse_name(cmdctx, nss_ctx->global_names, full_name,
>> >> nss_ctx->global_names is used just in two functions
>> >>   nss_check_name_of_well_known_sid
>> >>   nss_check_well_known_sid
>> >> 
>> >> All SID related functions should be used with AD.
>> >> I would prefer to directly change default to IPA/AD regex for 
>> >> global_names.
>> >
>> >Thank you for checking the usage of global_names, I should have checked
>> >it myself. You are right, I updated the patch accordingly.
>> >
>> >> 
>> >> Or alternatively iterate over all domains and use their regexes.
>> >> In teory, someone can use alternative regex 
>> >> "(?P<name>[^@]+)&(?P<domain>.+$)"
>> >> and you will not be able to parse it with default ipa ad regex.
>> >
>> >In this case the regex can be set in the [sssd] section to set
>> >global_names accordingly.
>> >
>> 
>> >From 4c41bb30206f4c7e1305f19f02b84d780814c099 Mon Sep 17 00:00:00 2001
>> >From: Sumit Bose <sb...@redhat.com>
>> >Date: Tue, 14 Jul 2015 14:41:34 +0200
>> >Subject: [PATCH] nss_check_name_of_well_known_sid() improve name splitting
>> >
>> >Currently in the default configuration
>> >nss_check_name_of_well_known_sid() can only split fully-qualified names
>> >in the u...@domain.name style. DOM\user style names will cause an error
>> >and terminate the whole request.
>> >
>> >With this patch both styles can be handled by default, additionally if
>> >the name could not be split nss_check_name_of_well_known_sid() returns
>> >ENOENT which can be handled more gracefully by the caller.
>> >
>> >Resolves https://fedorahosted.org/sssd/ticket/2717
>> 
>> Alexender's use-case is fixed and code is much simpler.
>> 
>>   [root@host sssd]# rpm -q python-libsss_nss_idmap
>>   python-libsss_nss_idmap-1.13.1-0.20150715.1247.git66d99f6.el7.x86_64
>>   
>>   Python 2.7.5 (default, Jul  8 2015, 05:01:23)
>>   [GCC 4.8.3 20140911 (Red Hat 4.8.3-9)] on linux2
>>   Type "help", "copyright", "credits" or "license" for more information.
>>   >>> import pysss_nss_idmap
>>   >>> pysss_nss_idmap.getsidbyname('user1_dom1-20...@sssdad.com')
>>   {'user1_dom1-20...@sssdad.com': {'type': 1, 'sid': 
>> u'S-1-5-21-1305200397-2901131868-73388776-21064'}}
>>   >>> pysss_nss_idmap.getsidbyname('sssdad.com\\user1_dom1-20549')
>>   {'sssdad.com\\user1_dom1-20549': {'type': 1, 'sid': 
>> u'S-1-5-21-1305200397-2901131868-73388776-21064'}}
>>   >>> pysss_nss_idmap.getsidbyname('sssdad.com\user1_dom1-20549')
>>   {'sssdad.com\\user1_dom1-20549': {'type': 1, 'sid': 
>> u'S-1-5-21-1305200397-2901131868-73388776-21064'}}
>>   >>>
>> 
>> Functional ACK
>> 
>> I just want to be sure that other developers agree with changing
>> default regex.
>
>I'm fine with it. 
>
>I'll push the patch tomorrow unless there's any opposition.
>
Acctually,
I found out that changing default for ldap provider caused
regression for upstream ticket #2163. I have already sent test for
ticket #2163.

LS
_______________________________________________
sssd-devel mailing list
sssd-devel@lists.fedorahosted.org
https://lists.fedorahosted.org/mailman/listinfo/sssd-devel

Reply via email to