[
https://issues.apache.org/jira/browse/SLING-981?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Eric Norman updated SLING-981:
--
Attachment: SLING-981_patch.txt
Hi Ian,
I agree that bootstrapping the principals and security policies is an important
feature that is missing from sling.
I've taken a look at your contribution and in my opinion this functionality
should really be integrated into the base ContentLoader. I think that would be
easier to maintain and ensures that the nodes are created before the ACLs.
I've prepared a new patch (attached as SLING-981_patch.txt) that provides the
same functionality by patching the org.apache.sling.jcr.contentloader bundle.
Also for clarity, I have slightly modified the JSON syntax you had proposed.
Hopefully there will not be any conflicts with node properties using the new
reserved names 'security:acl' and 'security:princpals'.
The new JSON syntax to create Users and Groups:
{
"security:principals" : [
{
"name":"TestUser1",
"password":"mypassword",
"extraProp1":"extraProp1Value"
},
{
"name":"TestGroup1",
"isgroup":"true",
"members":["TestUser1"],
"extraProp1":"extraProp1Value"
}
]
}
And the JSON syntax to create an ACL for the current node:
{
"security:acl" : [
{
"principal" : "TestGroup1",
"granted" : [
"jcr:read",
"jcr:write"
]
},
{
"principal" : "TestUser1",
"granted" : [
"jcr:read"
],
"denied" : [
"jcr:write"
]
}
]
}
What do you think?
> A security loader, along the lines of the contentloader to make it possible
> to populate ACL,s and Authorizables on startup
> --
>
> Key: SLING-981
> URL: https://issues.apache.org/jira/browse/SLING-981
> Project: Sling
> Issue Type: New Feature
> Components: JCR Contentloader
>Reporter: Ian Boston
> Attachments: securityloader.tgz, SLING-981_patch.txt
>
>
> Th small tar to follow allows bundles to include a Sakai-Initial-Security (to
> be renamed) header in the manifest that points to a json file containing acl
> and authorizable setup for the repository. This may include users or groups
> as required by the acl's and the acls. In for form
> {
> "principals" : [
> {
> "name":"owner",
> "isgroup":"true",
> "members":[],
> "dynamic":"true"
> },
> {
> "name":"everyone",
> "isgroup":"true",
> "members":[],
> "dynamic":"true"
> }
> ],
> "acl" : [
> {
> "path":"/_private",
> "principal":"owner",
> "privil...@jcr:read":"granted",
> "privil...@jcr:write":"granted"
>
> },
> {
> "path":"/public",
> "principal":"owner",
> "privil...@jcr:read":"granted",
> "privil...@jcr:write":"granted"
>
> },
> {
> "path":"/public",
> "principal":"everyone",
> "privil...@jcr:read":"granted"
> }
> ]
> }
> The code is largely based on the contentloader with quite a bit of copying
> (ugly sorry), but since it may not be wanted in in some installations I feel
> its better off in its own bundle. If its acceptable to have it in all
> distributions, then obviusly it should be a patch to contentloader.
> I looked and asked for this functionality already existing in Sling, but
> could not find it hence the patch. If there is a better way of doing the same
> already in the code base then closing this with "invalid" would be the right
> thing to do.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.