On Mar 15, 2013, at 10:33 AM, Denis Gervalle <[email protected]> wrote:
> On Fri, Mar 15, 2013 at 3:12 AM, Ludovic Dubost <[email protected]> wrote: > >> 2013/3/14 Denis Gervalle <[email protected]> >> >>> On Thu, Mar 14, 2013 at 11:12 PM, Jerome Velociter <[email protected] >>>> wrote: >>> >>>> Hi Denis, >>>> >>>> Le 14/03/13 22:59, Denis Gervalle a écrit : >>>> >>>> On Thu, Mar 14, 2013 at 9:20 PM, Denis Gervalle <[email protected]> >> wrote: >>>>> >>>>> Hi devs, >>>>>> >>>>>> We have a new (component based) authorization module since a while >> now, >>>>>> and I think 5.0 is the perfect time to introduce it as the default >>> right >>>>>> service. First, I simply propose to change the default in xwiki.cfg: >>>>>> >>>>>> >>>>>> >>> xwiki.authentication.**rightsclass=org.xwiki.**security.authorization.** >>>>>> internal.**XWikiCachingRightService >>>>>> >>>>>> (Later, I propose that we deprecate that bridge and that we create a >>>>>> friendly (xwiki oriented) interface over the more generic >>>>>> org.xwiki.security.**authorization.**AuthorizationManager. But leave >>>>>> this for a >>>>>> later proposal.) >>>>>> >>>>>> So this vote is about changing the default in xwiki.cfg before 5.0M2. >>>>>> >>>>>> pros: >>>>>> - improved performance, since the new service is using caching >>>>>> techniques >>>>>> and a single page load required lots of calls to it. >>>>>> - ability for extension to add new rights >>>>>> - define right declaratively >>>>>> - separate method for checking and verifying right (throws opposed >> to >>>>>> boolean return) >>>>>> - fix some long waiting bugs like XWIKI-5174, XWIKI-6987, as well >> as >>>>>> some unstated ones >>>>>> >>>>>> Also XWIKI-4550 >>>>> >>>>> - possibility to easily solve issues like XWIKI-4491 >>>>>> - no more admin right per default >>>>>> - being in good position to improve it and release dependencies to >>>>>> oldcore for security matters. >>>>>> - possibility for third party to adapt the right settler to their >>>>>> special >>>>>> needs (right decision is plugable) >>>>>> - a consistant right evaluation with very few exception that could >> be >>>>>> explained and documented >>>>>> >>>>>> cons: >>>>>> - no more admin right per default, but since we have DW, the >> initial >>>>>> setup is no more a problem, and advanced users may use superadmin. >>>>>> - groups are only checked from the user wiki, not from the accessed >>>>>> entity wiki. >>>>>> >>>>> >>>> This sound like a big regression. >>>> >>>> Can you explicit more ? Does this mean that adding a global (main wiki) >>>> user in a local group has no effect ? >>>> >>> >>> You have got it right. This could be improved, and help is welcome. What >>> happen is that the user groups are evaluated independently to the >> targeted >>> entity, and therefore only in the user wiki. >>> >>> I admit this is a regression, but I have not cross lots of use case like >>> those. The simple display in admin of Global user in local Group is even >>> broken (double xwiki:xwiki:...) so this does not seems to me a common >>> usage. >>> You may provide access to global group in a local wiki to achieve the >> same >>> goals. >>> >>> >> This looks to be indeed a big regression. It's quite a common use case to >> have only global users and to create groups in the local wiki that refer to >> local users. >> > ^^^^^^^^ > I suppose you means global users here. > > IMHO, having user managed by a separate entity (global admin), and these > same individual users grouped by another one (local admin) is very uncommon > delegation of authority to me (but I may be wrong). On the other hand, > having a local admin providing access to local ressources to global group > (and potentially some global users) makes more sense. In that way, the same > admin manage its users, and group its users, and the local admin trust the > global admin to know its users. > > That said, I am not against any improvement on the way it works, if it is a > common use case (moreover used by workspace), we should obviously support > it. However, I am convince that evaluating groups based on both the user > and the targeted entity is not easily achievable and conduct to very > complex partial caching. > > I have currently not implemented in the security module anything that would > cause all wikis to be scanned, and I would really like to avoid that to > happen. So, it will be difficult to avoid partial caching, but we need to > limit that at the higher level, the subwiki. This would allow to had only > scan both the wiki of the user and the target entry to consider our cache > valid. It means subwiki will be unable to share groups (I do not think this > has ever worked), but it will keep performance on large farm. > > This would really need to be fixed sooner than later otherwise I know >> plenty of projects for which migration to 5.0 would be almost impossible >> > > I will need helps to achieve that for 5.0 ok so before changing anything we need a plan i.e. someone volunteering to work on this, right? Thanks -Vincent >> This would really need to be fixed sooner than later otherwise I know >> plenty of projects for which migration to 5.0 would be almost impossible >> >> I think even Workspaces is using that so XEM by default would fail with >> this. >> >> Ludovic >> >>> >>>> >>>> Jérôme >>>> >>>> >>>> - may exhibit some other minor differences compare to existing >>>>>> implementation (but mostly consistency fixes) >>>>>> - test could be improved, critical part (right, settler, data >>>>>> structure, >>>>>> cache) are covered at almost 100%, api at 60%, this is probably >> better >>>>>> than the old right service >>>>>> - documentation should be improved, but this is not worse than the >>> old >>>>>> one anyway >>>>>> >>>>>> Since I use the new module in all my production servers for several >>>>>> months >>>>>> with success, and I really think that if we do not do it now we will >>>>>> never >>>>>> go ahead, here is my big +1 >>>>>> >>>>>> WDYT ? _______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs

