Skip to content

Commit 70e4158

Browse files
committed
Merge branch 'develop' into feature/503-improve-performance-of-applying-users-and-groups
2 parents 3b96771 + ecfbab2 commit 70e4158

File tree

3 files changed

+26
-10
lines changed

3 files changed

+26
-10
lines changed

accesscontroltool-bundle/src/main/java/biz/netcentric/cq/tools/actool/configreader/YamlConfigReader.java

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -218,17 +218,20 @@ private AuthorizablesConfig getAuthorizableBeans(
218218

219219
if ((currentAuthorizableData != null) && !currentAuthorizableData.isEmpty()) {
220220

221-
for (final Map<String, Object> currentPrincipalDataMap : currentAuthorizableData) {
222-
try {
223-
final AuthorizableConfigBean tmpPrincipalConfigBean = getNewAuthorizableConfigBean();
224-
setupAuthorizableBean(tmpPrincipalConfigBean, currentPrincipalDataMap, currentAuthorizableIdFromYaml, isGroupSection);
225-
if (authorizableValidator != null) {
226-
authorizableValidator.validate(tmpPrincipalConfigBean);
227-
}
228-
authorizableBeans.add(tmpPrincipalConfigBean);
229-
} catch (AcConfigBeanValidationException e) {
230-
throw new AcConfigBeanValidationException("Invalid authorizable " + currentAuthorizableIdFromYaml, e);
221+
if (currentAuthorizableData.size() > 1) {
222+
throw new AcConfigBeanValidationException("Invalid authorizable " + currentAuthorizableIdFromYaml
223+
+ " - configuration needs to contain exactly one yaml list entry");
224+
}
225+
try {
226+
Map<String, Object> currentPrincipalDataMap = currentAuthorizableData.get(0);
227+
final AuthorizableConfigBean tmpPrincipalConfigBean = getNewAuthorizableConfigBean();
228+
setupAuthorizableBean(tmpPrincipalConfigBean, currentPrincipalDataMap, currentAuthorizableIdFromYaml, isGroupSection);
229+
if (authorizableValidator != null) {
230+
authorizableValidator.validate(tmpPrincipalConfigBean);
231231
}
232+
authorizableBeans.add(tmpPrincipalConfigBean);
233+
} catch (AcConfigBeanValidationException e) {
234+
throw new AcConfigBeanValidationException("Invalid authorizable " + currentAuthorizableIdFromYaml, e);
232235
}
233236
}
234237

accesscontroltool-bundle/src/test/java/biz/netcentric/cq/tools/actool/configreader/YamlConfigurationMergerTest.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,11 @@ public void testReadInvalidYaml2() throws IOException, RepositoryException, AcCo
8888
getAcConfigurationForFile(getConfigurationMerger(), session, "test-invalid2.yaml");
8989
}
9090

91+
@Test(expected = AcConfigBeanValidationException.class)
92+
public void testReadInvalidYaml3() throws IOException, RepositoryException, AcConfigBeanValidationException {
93+
getAcConfigurationForFile(getConfigurationMerger(), session, "test-invalid3.yaml");
94+
}
95+
9196
@Test()
9297
public void testReadEmptyYaml() throws IOException, RepositoryException, AcConfigBeanValidationException {
9398
getAcConfigurationForFile(getConfigurationMerger(), session, "test-empty.yaml");
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
2+
- group_config:
3+
4+
- fragment-xyz-editor:
5+
- path: /home/groups/test
6+
# only one item allowed underneath group name
7+
- isMemberOf:
8+
- fragment-xyz

0 commit comments

Comments
 (0)