Julian Sedding created SLING-12107:
--------------------------------------
Summary: JCR Repoinit executes operations out of order.
Key: SLING-12107
URL: https://issues.apache.org/jira/browse/SLING-12107
Project: Sling
Issue Type: Task
Components: Repoinit
Affects Versions: Repoinit JCR 1.1.44
Reporter: Julian Sedding
Assignee: Julian Sedding
When applying ACLs, repoinit checks if the referenced authorizable exists, and
it fails if it doesn't.
However, my goal was to set up ACLs with my deployment for a group that was to
be sync'ed from an {{ExternalIdentityProvider}} once the first member of that
group logs in.
To work around this limitation, I tried running the following repoinit script:
{noformat}
create group testGroup
set ACL for testGroup
allow jcr:read on /content/foo
deny jcr:write on /content/foo
end
delete group testGroup
{noformat}
It turned out that the statements were executed in the following order:
{noformat}
create group testGroup
delete group testGroup
set ACL for testGroup
allow jcr:read on /content/foo
deny jcr:write on /content/foo
end
{noformat}
Of course that caused the script to fail just as if no group was created.
The incorrect ordering may also cause other scenarios to fail.
The {{ExecutionOrderTest}} suggests that some re-ordering is done on purpose.
E.g. namespaces and nodetypes should be created before e.g. paths are created.
I would expect that registration of custom privileges should also be executed
before other operations. I don't see how that could be harmful.
But for all other statements, I would expect the execution order to match the
order of the statements within the repoinit script.
cc [~bdelacretaz], [~cziegeler], [~angela]
--
This message was sent by Atlassian Jira
(v8.20.10#820010)