diff --git a/demo/complex/midpoint-objects/functionLibraries/function-library-grouper.xml b/demo/complex/midpoint-objects/functionLibraries/function-library-grouper.xml
index f3cfdc8..8ac9b0e 100644
--- a/demo/complex/midpoint-objects/functionLibraries/function-library-grouper.xml
+++ b/demo/complex/midpoint-objects/functionLibraries/function-library-grouper.xml
@@ -73,8 +73,12 @@
xsd:string
- exportedGroupPrefix
- xsd:string
+ groupIncludePattern
+ xsd:anyType
+
+
+ groupExcludePattern
+ xsd:anyType
relevantSourceId
@@ -97,7 +101,7 @@
log.warn('No group name in membership change message, ignoring it: {}', esbEvent)
return null
}
- isExported = groupName.startsWith(exportedGroupPrefix)
+ isExported = matches(groupName, groupIncludePattern, groupExcludePattern)
isSuper = groupName == superGroup
if (!isExported && !isSuper) {
log.info('Irrelevant group membership change, ignoring it: {}', groupName)
@@ -129,7 +133,7 @@
} else if (eventType == 'GROUP_ADD' || eventType == 'GROUP_DELETE') {
groupName = esbEvent['name']
groupId = esbEvent['id']
- isExported = groupName.startsWith(exportedGroupPrefix)
+ isExported = matches(groupName, groupIncludePattern, groupExcludePattern)
if (!isExported) {
log.info('Irrelevant group add/delete event, ignoring it: {}', groupName)
return null
@@ -149,6 +153,23 @@
log.warn('Unsupported event type: {} -> {}', eventType, esbEvent)
return null
}
+
+ def matches(String name, Collection includes, Collection excludes) {
+ matches(name, includes) && !matches(name, excludes)
+ }
+
+ def matches(String name, Collection patterns) {
+ if (name == null || patterns == null) {
+ false
+ } else {
+ for (pattern in patterns) {
+ if (name ==~ pattern) {
+ return true
+ }
+ }
+ false
+ }
+ }
c:UcfChangeType
diff --git a/demo/complex/midpoint-objects/resources/resource-grouper.xml b/demo/complex/midpoint-objects/resources/resource-grouper.xml
index 4745877..e644711 100644
--- a/demo/complex/midpoint-objects/resources/resource-grouper.xml
+++ b/demo/complex/midpoint-objects/resources/resource-grouper.xml
@@ -42,8 +42,11 @@
banderson
password
etc:midpointGroups
- midpoint
+ midpoint:.*
+ ref:.*
+ ref:.*_(includes|excludes|systemOfRecord|systemOfRecordAndIncludes)
ldap
+ g:gsa
true
@@ -72,9 +75,10 @@
// ------------------ START OF CONFIGURATION ------------------
parameters = [
- superGroup: 'etc:midpointGroups',
- exportedGroupPrefix: 'midpoint:',
- relevantSourceId: 'ldap'
+ superGroup: 'etc:midpointGroups',
+ groupIncludePattern: [ 'midpoint:.*', 'ref:.*' ],
+ groupExcludePattern: [ 'ref:.*_(includes|excludes|systemOfRecord|systemOfRecordAndIncludes)' ],
+ relevantSourceId: 'ldap'
]
// ------------------ END OF CONFIGURATION ------------------
diff --git a/demo/complex/midpoint_server/container_files/mp-home/icf-connectors/connector-grouper-rest-0.1.jar b/demo/complex/midpoint_server/container_files/mp-home/icf-connectors/connector-grouper-rest-0.2.jar
similarity index 99%
rename from demo/complex/midpoint_server/container_files/mp-home/icf-connectors/connector-grouper-rest-0.1.jar
rename to demo/complex/midpoint_server/container_files/mp-home/icf-connectors/connector-grouper-rest-0.2.jar
index b8fe937..f0a05d4 100644
Binary files a/demo/complex/midpoint_server/container_files/mp-home/icf-connectors/connector-grouper-rest-0.1.jar and b/demo/complex/midpoint_server/container_files/mp-home/icf-connectors/connector-grouper-rest-0.2.jar differ