I don't think we are all that far off from each other. 1. Each resource provider, if it supports security, should be responsible for security 2. There should be a common interface to tell a resource provider what permissions to be set. 3. I should be able to take a resource and if I have the privilege, determine what permission restrictions are in force. This should work no matter what the resource provider is.
And where I feel I'm really differing from others: 4. The permissions should be reflected within the context of the resources that the resource provider provides. Much like how the jcr resource provider stores acl as a rep:policy node. If I tell the servlet resource provider to that only admin can get to any servlets under /content/custom/servlets/ that when I'm using a resource browser to go down that tree, the resource provider adds something like /content/custom/servlets/sling:policy that defines what was set. What I don't want as a user is to have multiple locations to check to determine what restrictions are being set for a given path. What I don't want as a developer is to have multiple classes to deal with so that I have to create restrictions differently if a user asks me to set a restriction on a resource. I want magic {mock} SlingSecurity security = resource.adaptTo(SlingSecurity); security.grantRead("bob") for (SecurityRules rule: security.appliedRules()){ print(rules.toString()); } {/end} which would produce admin / all * set by jcr resourceProvider sling-scripting / denyAll * set by jcr resourceProvider generic-users /custom read * set by file resourceProvider bob /custom/path read * set by jasons awesome customResourceProvider Where I have a problem with Radu's original suggestion is that the permissions are defined in a separate tree, I would have less of a problem with this, if the resource providers checked this tree and echoed them out, or if multiple resource providers used this tree as a common store of permissions. I don't care so much then. I'm more concerned about the experience and the interface. - Jason On Fri, Oct 5, 2018, at 12:52 AM, Carsten Ziegeler wrote: > Well, this will be a fun discussion :) Adding security on top of > something is usually easier to be bypassed than having security built-in. > > But I would like to get briefly back to the use case of this "dangerous > servlet". Why isn't that servlet doing the permission checks which I > think is way safer than relying on additional magic somewhere else > (regardless of what it is)? > > Regards > Carsten >