Hi Angela,
thank you, you helped me a lot. I will put a breakpoint where you say and I
will check what's going on.

Regards.
Jorge

El vie., 24 may. 2019 a las 8:03, Angela Schreiber
(<anch...@adobe.com.invalid>) escribió:

> Hi Jorge
>
> If you are not using the default setup, the general notes should still
> apply... that is:
> What goes into the Subject upon authentication (or comes with the Subject
> in case of pre-authenticated login) is used for the permission evaluation.
> So, in other words: the relevant piece is the set of principals that is
> passed to the PermissionProvider and how the configured permission
> provider(s) (default implemenation or custom, single provider or
> composition of many) evaluate the effective permissions for these
> principals.
>
> If you are interested in the inner workings of Oak, you may start your
> investigation at MutableRoot line 127. There you can see how the
> PermissionProvider is constructed based on the principal set associated
> with the Subject, which in turn has been passed to the Root object upon
> construction in ContentSessionImpl line 105.
>
> How permissions are evaluation in a custom security setup obviously
> depends both on the authentication setup and how the set of principals is
> computed therein and the authorization mechanism i.e. how permissions for
> these principals are collected/weighted/ordered/evaluated.
>
> Hope that helps
> Angela
>
> ________________________________________
> From: jorgeeflorez . <jorgeeduardoflo...@gmail.com>
> Sent: Friday, May 24, 2019 2:25 PM
> To: oak-dev@jackrabbit.apache.org
> Subject: Re: Users, groups and permissions
>
> Hello Angela,
>
> thank you for taking your time and writing this awesome reply. You saved my
> life :)
> It is clear to me now how it works by default. It seems that we are not
> using the default security setup for Oak. I will have to look into it.
>
> Best regards.
>
> Jorge Flórez
>
> El vie., 24 may. 2019 a las 2:03, Angela Schreiber
> (<anch...@adobe.com.invalid>) escribió:
>
> > Hi Jorge
> >
> > The
> https://jackrabbit.apache.org/oak/docs/security/user/groupaction.html
> > are not directly related to permission evaluation. This is just an
> optional
> > add on to perform specific verification or action upon modification of
> the
> > set of members of a given group.... e.g. write a log message.
> >
> > When it comes to permissions it all boils down to the set of principals
> > contained in the Subject after the Repository login and whether that set
> of
> > principals is granted permission to perform a given read/write action.
> >
> > So, for simplicity let's look at the default setup as present with Oak
> out
> > of the box:
> > - the default authentication will
> >   > verify the passed Credentials object,
> >   > lookup the user associated with the Credentials and get it's
> principal
> >   > resolve the declared and inherited group membership for that user and
> > get the group principals
> >   > update the subject with the complete set of principals both for the
> > user and it's groups
> > - the default authorization will
> >   > look at the permission entries for the set of principals and the
> > target path and all it's ancestors
> >   > verify if a given action is granted (or denied) for any of the user
> > principals or any of the group principals
> >   > if it is neither granted or explicitly denied, permission is not
> > granted
> >   see https://jackrabbit.apache.org/oak/docs/security/permission.html
> and
> >
> >
> https://jackrabbit.apache.org/oak/docs/security/permission/evaluation.html
> > for details and examples.
> >
> > So, back to your initial question:
> > If you take the default security setup of Oak, assign permissions to a
> > group principal  at /test/path and assign your user to that group will
> > result in your user inheriting the permissions of the group. if you
> remove
> > the user from the group again, the subject upon login will no longer be
> > populated with the group principal and therefore the user no longer
> > inherits the permissions granted/denied to that group.
> > similarly, if you remove that permission entry again and persist the
> > change, the test group and all of it's members will no longer get that
> > permission granted/denied (assuming there is no other entry that has the
> > same effect).
> >
> > Kind regards
> > Angela
> >
> > ________________________________________
> > From: jorgeeflorez . <jorgeeduardoflo...@gmail.com>
> > Sent: Thursday, May 23, 2019 8:03 PM
> > To: oak-dev@jackrabbit.apache.org
> > Subject: Users, groups and permissions
> >
> > Hello,
> >
> > I have been reading regarding Jackrabbit and Oak security and I think I
> > understand. but I would like to confirm before implementing something...
> > When I create a group and assign a permission (e.g. rep:write) to that
> > group over a node path.
> > If I assign an user to that group then the user will have the permission
> > that I gave to that group over that node?
> > If I remove that user from the group the permission will be removed?
> >
> > From what I understand from here
> > https://jackrabbit.apache.org/oak/docs/security/user/groupaction.html
> that
> > will not happen, and I will have to make it happen, am I right?
> >
> > Thanks.
> >
>

Reply via email to