diff --git a/README.md b/README.md
index d7d1736..52d9733 100644
--- a/README.md
+++ b/README.md
@@ -15,16 +15,15 @@ The image contains the midPoint application along with some TIER-specific compon
- `shibboleth` to show integration with Shibboleth IdP,
- `postgresql` to show how to use alternative dockerized repository,
- `extrepo` to show how to use external repository,
- - `complex` to demonstrate more complex deployment of midPoint in a sample university environment, featuring midPoint along with Grouper, LDAP directory, RabbitMQ, Shibboleth IdP, source and target systems.
+ - `grouper` to demonstrate more complex deployment of midPoint in a sample university environment, featuring midPoint along with Grouper, LDAP directory, RabbitMQ, Shibboleth IdP, source and target systems.
# Build instructions
```
$ ./build.sh
```
-You can then continue with one of demo composition, e.g. simple or complex one.
+You can then continue with one of demo composition.
# Documentation
Please see [Dockerized midPoint](https://spaces.at.internet2.edu/display/MID/Dockerized+midPoint) wiki page.
This is a work in progress, suitable for testing.
-For details on the project, see [Status of the work](https://spaces.at.internet2.edu/display/MID/Status+of+the+work).
diff --git a/demo/grouper/midpoint-objects/archetypes/archetype-academic-person.xml b/demo/grouper/midpoint-objects (obsolete)/archetypes/archetype-academic-person.xml
similarity index 100%
rename from demo/grouper/midpoint-objects/archetypes/archetype-academic-person.xml
rename to demo/grouper/midpoint-objects (obsolete)/archetypes/archetype-academic-person.xml
diff --git a/demo/grouper/midpoint-objects/archetypes/archetype-affiliation.xml b/demo/grouper/midpoint-objects (obsolete)/archetypes/archetype-affiliation.xml
similarity index 100%
rename from demo/grouper/midpoint-objects/archetypes/archetype-affiliation.xml
rename to demo/grouper/midpoint-objects (obsolete)/archetypes/archetype-affiliation.xml
diff --git a/demo/grouper/midpoint-objects/archetypes/archetype-course.xml b/demo/grouper/midpoint-objects (obsolete)/archetypes/archetype-course.xml
similarity index 100%
rename from demo/grouper/midpoint-objects/archetypes/archetype-course.xml
rename to demo/grouper/midpoint-objects (obsolete)/archetypes/archetype-course.xml
diff --git a/demo/grouper/midpoint-objects/archetypes/archetype-department.xml b/demo/grouper/midpoint-objects (obsolete)/archetypes/archetype-department.xml
similarity index 100%
rename from demo/grouper/midpoint-objects/archetypes/archetype-department.xml
rename to demo/grouper/midpoint-objects (obsolete)/archetypes/archetype-department.xml
diff --git a/demo/grouper/midpoint-objects/archetypes/archetype-generic-grouper-group.xml b/demo/grouper/midpoint-objects (obsolete)/archetypes/archetype-generic-grouper-group.xml
similarity index 100%
rename from demo/grouper/midpoint-objects/archetypes/archetype-generic-grouper-group.xml
rename to demo/grouper/midpoint-objects (obsolete)/archetypes/archetype-generic-grouper-group.xml
diff --git a/demo/grouper/midpoint-objects/archetypes/archetype-mailing-list.xml b/demo/grouper/midpoint-objects (obsolete)/archetypes/archetype-mailing-list.xml
similarity index 100%
rename from demo/grouper/midpoint-objects/archetypes/archetype-mailing-list.xml
rename to demo/grouper/midpoint-objects (obsolete)/archetypes/archetype-mailing-list.xml
diff --git a/demo/grouper/midpoint-objects/archetypes/archetype-midpoint-group.xml b/demo/grouper/midpoint-objects (obsolete)/archetypes/archetype-midpoint-group.xml
similarity index 100%
rename from demo/grouper/midpoint-objects/archetypes/archetype-midpoint-group.xml
rename to demo/grouper/midpoint-objects (obsolete)/archetypes/archetype-midpoint-group.xml
diff --git a/demo/grouper/midpoint-objects/archetypes/archetype-non-academic-person.xml b/demo/grouper/midpoint-objects (obsolete)/archetypes/archetype-non-academic-person.xml
similarity index 100%
rename from demo/grouper/midpoint-objects/archetypes/archetype-non-academic-person.xml
rename to demo/grouper/midpoint-objects (obsolete)/archetypes/archetype-non-academic-person.xml
diff --git a/demo/grouper/midpoint-objects/functionLibraries/function-library-grouper.xml b/demo/grouper/midpoint-objects (obsolete)/functionLibraries/function-library-grouper.xml
similarity index 100%
rename from demo/grouper/midpoint-objects/functionLibraries/function-library-grouper.xml
rename to demo/grouper/midpoint-objects (obsolete)/functionLibraries/function-library-grouper.xml
diff --git a/demo/grouper/midpoint-objects/objectTemplates/template-user.xml b/demo/grouper/midpoint-objects (obsolete)/objectTemplates/template-user.xml
similarity index 100%
rename from demo/grouper/midpoint-objects/objectTemplates/template-user.xml
rename to demo/grouper/midpoint-objects (obsolete)/objectTemplates/template-user.xml
diff --git a/demo/grouper/midpoint-objects/orgs/org-affiliations.xml b/demo/grouper/midpoint-objects (obsolete)/orgs/org-affiliations.xml
similarity index 100%
rename from demo/grouper/midpoint-objects/orgs/org-affiliations.xml
rename to demo/grouper/midpoint-objects (obsolete)/orgs/org-affiliations.xml
diff --git a/demo/grouper/midpoint-objects/orgs/org-courses.xml b/demo/grouper/midpoint-objects (obsolete)/orgs/org-courses.xml
similarity index 100%
rename from demo/grouper/midpoint-objects/orgs/org-courses.xml
rename to demo/grouper/midpoint-objects (obsolete)/orgs/org-courses.xml
diff --git a/demo/grouper/midpoint-objects/orgs/org-departments.xml b/demo/grouper/midpoint-objects (obsolete)/orgs/org-departments.xml
similarity index 100%
rename from demo/grouper/midpoint-objects/orgs/org-departments.xml
rename to demo/grouper/midpoint-objects (obsolete)/orgs/org-departments.xml
diff --git a/demo/grouper/midpoint-objects/orgs/org-generic-groups.xml b/demo/grouper/midpoint-objects (obsolete)/orgs/org-generic-groups.xml
similarity index 100%
rename from demo/grouper/midpoint-objects/orgs/org-generic-groups.xml
rename to demo/grouper/midpoint-objects (obsolete)/orgs/org-generic-groups.xml
diff --git a/demo/grouper/midpoint-objects/orgs/org-grouper-sysadmin.xml b/demo/grouper/midpoint-objects (obsolete)/orgs/org-grouper-sysadmin.xml
similarity index 100%
rename from demo/grouper/midpoint-objects/orgs/org-grouper-sysadmin.xml
rename to demo/grouper/midpoint-objects (obsolete)/orgs/org-grouper-sysadmin.xml
diff --git a/demo/grouper/midpoint-objects/orgs/org-mailing-lists.xml b/demo/grouper/midpoint-objects (obsolete)/orgs/org-mailing-lists.xml
similarity index 100%
rename from demo/grouper/midpoint-objects/orgs/org-mailing-lists.xml
rename to demo/grouper/midpoint-objects (obsolete)/orgs/org-mailing-lists.xml
diff --git a/demo/grouper/midpoint-objects/orgs/org-midpoint-groups.xml b/demo/grouper/midpoint-objects (obsolete)/orgs/org-midpoint-groups.xml
similarity index 100%
rename from demo/grouper/midpoint-objects/orgs/org-midpoint-groups.xml
rename to demo/grouper/midpoint-objects (obsolete)/orgs/org-midpoint-groups.xml
diff --git a/demo/grouper/midpoint-objects/resources/ldap-main.xml b/demo/grouper/midpoint-objects (obsolete)/resources/ldap-main.xml
similarity index 100%
rename from demo/grouper/midpoint-objects/resources/ldap-main.xml
rename to demo/grouper/midpoint-objects (obsolete)/resources/ldap-main.xml
diff --git a/demo/grouper/midpoint-objects/resources/resource-grouper.xml b/demo/grouper/midpoint-objects (obsolete)/resources/resource-grouper.xml
similarity index 100%
rename from demo/grouper/midpoint-objects/resources/resource-grouper.xml
rename to demo/grouper/midpoint-objects (obsolete)/resources/resource-grouper.xml
diff --git a/demo/grouper/midpoint-objects/resources/scriptedsql-sis-persons.xml b/demo/grouper/midpoint-objects (obsolete)/resources/scriptedsql-sis-persons.xml
similarity index 100%
rename from demo/grouper/midpoint-objects/resources/scriptedsql-sis-persons.xml
rename to demo/grouper/midpoint-objects (obsolete)/resources/scriptedsql-sis-persons.xml
diff --git a/demo/grouper/midpoint-objects/resources/target-cs-portal.xml b/demo/grouper/midpoint-objects (obsolete)/resources/target-cs-portal.xml
similarity index 100%
rename from demo/grouper/midpoint-objects/resources/target-cs-portal.xml
rename to demo/grouper/midpoint-objects (obsolete)/resources/target-cs-portal.xml
diff --git a/demo/grouper/midpoint-objects/resources/target-faculty-portal.xml b/demo/grouper/midpoint-objects (obsolete)/resources/target-faculty-portal.xml
similarity index 100%
rename from demo/grouper/midpoint-objects/resources/target-faculty-portal.xml
rename to demo/grouper/midpoint-objects (obsolete)/resources/target-faculty-portal.xml
diff --git a/demo/grouper/midpoint-objects/resources/target-mailing-lists.xml b/demo/grouper/midpoint-objects (obsolete)/resources/target-mailing-lists.xml
similarity index 100%
rename from demo/grouper/midpoint-objects/resources/target-mailing-lists.xml
rename to demo/grouper/midpoint-objects (obsolete)/resources/target-mailing-lists.xml
diff --git a/demo/grouper/midpoint-objects/roles/metarole-grouper-provided-group.xml b/demo/grouper/midpoint-objects (obsolete)/roles/metarole-grouper-provided-group.xml
similarity index 100%
rename from demo/grouper/midpoint-objects/roles/metarole-grouper-provided-group.xml
rename to demo/grouper/midpoint-objects (obsolete)/roles/metarole-grouper-provided-group.xml
diff --git a/demo/grouper/midpoint-objects/roles/metarole-ldap-group.xml b/demo/grouper/midpoint-objects (obsolete)/roles/metarole-ldap-group.xml
similarity index 100%
rename from demo/grouper/midpoint-objects/roles/metarole-ldap-group.xml
rename to demo/grouper/midpoint-objects (obsolete)/roles/metarole-ldap-group.xml
diff --git a/demo/grouper/midpoint-objects/roles/role-ldap-basic.xml b/demo/grouper/midpoint-objects (obsolete)/roles/role-ldap-basic.xml
similarity index 100%
rename from demo/grouper/midpoint-objects/roles/role-ldap-basic.xml
rename to demo/grouper/midpoint-objects (obsolete)/roles/role-ldap-basic.xml
diff --git a/demo/grouper/midpoint-objects/systemConfigurations/SystemConfiguration.xml b/demo/grouper/midpoint-objects (obsolete)/systemConfigurations/SystemConfiguration.xml
similarity index 100%
rename from demo/grouper/midpoint-objects/systemConfigurations/SystemConfiguration.xml
rename to demo/grouper/midpoint-objects (obsolete)/systemConfigurations/SystemConfiguration.xml
diff --git a/demo/grouper/midpoint-objects/tasks/task-group-scavenger.xml b/demo/grouper/midpoint-objects (obsolete)/tasks/task-group-scavenger.xml
similarity index 100%
rename from demo/grouper/midpoint-objects/tasks/task-group-scavenger.xml
rename to demo/grouper/midpoint-objects (obsolete)/tasks/task-group-scavenger.xml
diff --git a/demo/grouper/midpoint-objects/users/user-banderson.xml b/demo/grouper/midpoint-objects (obsolete)/users/user-banderson.xml
similarity index 100%
rename from demo/grouper/midpoint-objects/users/user-banderson.xml
rename to demo/grouper/midpoint-objects (obsolete)/users/user-banderson.xml
diff --git a/demo/grouper/midpoint-objects-manual/tasks/task-reconciliation-grouper-groups.xml b/demo/grouper/midpoint-objects-manual/tasks/task-reconciliation-grouper-groups.xml
index b59f5d7..c3ddcda 100644
--- a/demo/grouper/midpoint-objects-manual/tasks/task-reconciliation-grouper-groups.xml
+++ b/demo/grouper/midpoint-objects-manual/tasks/task-reconciliation-grouper-groups.xml
@@ -25,7 +25,7 @@
Grouper reconciliation (groups)
- ri:CustomPlainGroupObjectClass
+ ri:Group
605a0127-a313-442a-9d5e-151eac8b0745
diff --git a/demo/grouper/midpoint_server/container_files/mp-home/icf-connectors/connector-grouper-rest-0.4.jar b/demo/grouper/midpoint_server/container_files/mp-home/icf-connectors/connector-grouper-rest-0.4.jar
deleted file mode 100644
index b072d05..0000000
Binary files a/demo/grouper/midpoint_server/container_files/mp-home/icf-connectors/connector-grouper-rest-0.4.jar and /dev/null differ
diff --git a/demo/grouper/midpoint_server/container_files/mp-home/icf-connectors/connector-grouper-rest-0.5.jar b/demo/grouper/midpoint_server/container_files/mp-home/icf-connectors/connector-grouper-rest-0.5.jar
new file mode 100644
index 0000000..8418d8d
Binary files /dev/null and b/demo/grouper/midpoint_server/container_files/mp-home/icf-connectors/connector-grouper-rest-0.5.jar differ
diff --git a/demo/grouper/midpoint_server/container_files/mp-home/post-initial-objects/functionLibraries/function-library-grouper.xml b/demo/grouper/midpoint_server/container_files/mp-home/post-initial-objects/functionLibraries/function-library-grouper.xml
index 9ebd543..c9bd2ae 100644
--- a/demo/grouper/midpoint_server/container_files/mp-home/post-initial-objects/functionLibraries/function-library-grouper.xml
+++ b/demo/grouper/midpoint_server/container_files/mp-home/post-initial-objects/functionLibraries/function-library-grouper.xml
@@ -78,12 +78,16 @@
import static com.evolveum.midpoint.schema.constants.SchemaConstants.*
import com.evolveum.midpoint.schema.util.*
import com.evolveum.midpoint.prism.path.*
- import com.evolveum.midpoint.schema.constants.*
- import com.evolveum.midpoint.prism.delta.*
+ import com.evolveum.midpoint.schema.constants.*
+ import com.evolveum.midpoint.prism.delta.*
- PLAIN_GROUP_OBJECT_CLASS = new ItemName(MidPointConstants.NS_RI, 'CustomPlainGroupObjectClass')
- TRIGGER_FIRE_AFTER = 60000
- TRIGGER_SAFETY_MARGIN = 10000
+ GROUP_OBJECT_CLASS = new ItemName(MidPointConstants.NS_RI, 'Group')
+ ATTR_NAME = new ItemName(MidPointConstants.NS_RI, 'name')
+ ATTR_UUID = new ItemName(MidPointConstants.NS_RI, 'uuid')
+ ATTR_MEMBER = new ItemName(MidPointConstants.NS_RI, 'member')
+
+ TRIGGER_FIRE_AFTER = 60000
+ TRIGGER_SAFETY_MARGIN = 10000
esbEvent = midpoint.getMessageBodyAsMap(message)['esbEvent'][0]
log.info('esbEvent = {}', esbEvent)
@@ -94,11 +98,11 @@
log.warn('No group name in membership change message, ignoring it: {}', esbEvent)
return null
}
- groupId = esbEvent['groupId']
- if (groupId == null) {
- log.warn('No group ID in membership change message, ignoring it: {}', esbEvent)
- return null
- }
+ groupId = esbEvent['groupId']
+ if (groupId == null) {
+ log.warn('No group ID in membership change message, ignoring it: {}', esbEvent)
+ return null
+ }
isExported = matches(groupName, groupIncludePattern, groupExcludePattern)
if (!isExported) {
log.info('Irrelevant group membership change, ignoring it: {}', groupName)
@@ -110,29 +114,29 @@
return null
}
subjectId = esbEvent['subjectId']
- if (subjectId == null) {
- log.info('Null subject ID in membership change message, ignoring it: {}', sourceId)
- return null
- }
+ if (subjectId == null) {
+ log.info('Null subject ID in membership change message, ignoring it: {}', sourceId)
+ return null
+ }
log.info('### {} - {} - {}', subjectId, eventType, groupName)
identifiers = new HashMap()
- identifiers.put(ICFS_NAME, groupName)
- identifiers.put(ICFS_UID, groupId)
+ identifiers.put(ATTR_NAME, groupName)
+ identifiers.put(ATTR_UUID, groupId)
ObjectDeltaType delta
itemDelta = new ItemDeltaType()
itemDelta.modificationType = eventType == 'MEMBERSHIP_ADD' ? ModificationTypeType.ADD : ModificationTypeType.DELETE
- itemDelta.path = new ItemPathType(ItemPath.create(ShadowType.F_ATTRIBUTES, 'member'))
+ itemDelta.path = new ItemPathType(ItemPath.create(ShadowType.F_ATTRIBUTES, ATTR_MEMBER))
itemDelta.value.add(RawType.fromPropertyRealValue(subjectId, null, prismContext))
delta = new ObjectDeltaType()
delta.changeType = ChangeTypeType.MODIFY
delta.itemDelta.add(itemDelta)
- added = midpoint
- .getOptimizingTriggerCreator(TRIGGER_FIRE_AFTER, TRIGGER_SAFETY_MARGIN)
- .createForNamedUser(subjectId)
- log.info('Recompute trigger for {}: {}', subjectId, added ? 'added' : 'not added (already present or user not found)')
+ added = midpoint
+ .getOptimizingTriggerCreator(TRIGGER_FIRE_AFTER, TRIGGER_SAFETY_MARGIN)
+ .createForNamedUser(subjectId)
+ log.info('Recompute trigger for {}: {}', subjectId, added ? 'added' : 'not added (already present or user not found)')
- return UcfChangeUtil.create(PLAIN_GROUP_OBJECT_CLASS, identifiers, delta, prismContext)
+ return UcfChangeUtil.create(GROUP_OBJECT_CLASS, identifiers, delta, prismContext)
} else if (eventType == 'GROUP_ADD' || eventType == 'GROUP_DELETE') {
groupName = esbEvent['name']
groupId = esbEvent['id']
@@ -142,8 +146,8 @@
return null
}
identifiers = new HashMap()
- identifiers.put(ICFS_NAME, groupName)
- identifiers.put(ICFS_UID, groupId)
+ identifiers.put(ATTR_NAME, groupName)
+ identifiers.put(ATTR_UUID, groupId)
ObjectDeltaType delta
if (eventType == 'GROUP_DELETE') {
delta = new ObjectDeltaType()
@@ -151,7 +155,7 @@
} else {
delta = null
}
- return UcfChangeUtil.create(PLAIN_GROUP_OBJECT_CLASS, identifiers, delta, prismContext)
+ return UcfChangeUtil.create(GROUP_OBJECT_CLASS, identifiers, delta, prismContext)
} else {
log.warn('Unsupported event type: {} -> {}', eventType, esbEvent)
return null
diff --git a/demo/grouper/midpoint_server/container_files/mp-home/post-initial-objects/resources/resource-grouper.xml b/demo/grouper/midpoint_server/container_files/mp-home/post-initial-objects/resources/resource-grouper.xml
index abfe97d..11fc705 100644
--- a/demo/grouper/midpoint_server/container_files/mp-home/post-initial-objects/resources/resource-grouper.xml
+++ b/demo/grouper/midpoint_server/container_files/mp-home/post-initial-objects/resources/resource-grouper.xml
@@ -32,15 +32,15 @@
https://grouper-ws:443
banderson
password
- etc:sysadmingroup
+ :
+
+ :
app:.*
test:.*
ref:.*
.*_(includes|excludes|systemOfRecord|systemOfRecordAndIncludes)
ldap
- g:gsa
true
- :
@@ -86,10 +86,10 @@
entitlement
group
- ri:CustomPlainGroupObjectClass
+ ri:Group
true
- [icfs:name]
+ [ri:name]
strong
@@ -139,7 +139,7 @@
true
entitlement
group
- ri:CustomPlainGroupObjectClass
+ ri:Group
OrgType
diff --git a/demo/grouper/midpoint_server/container_files/mp-home/post-initial-objects/systemConfigurations/SystemConfiguration.xml b/demo/grouper/midpoint_server/container_files/mp-home/post-initial-objects/systemConfigurations/SystemConfiguration.xml
index 9970677..ec86810 100644
--- a/demo/grouper/midpoint_server/container_files/mp-home/post-initial-objects/systemConfigurations/SystemConfiguration.xml
+++ b/demo/grouper/midpoint_server/container_files/mp-home/post-initial-objects/systemConfigurations/SystemConfiguration.xml
@@ -49,6 +49,10 @@
INFO
com.evolveum.midpoint.model.impl.lens.Clockwork
+
+ DEBUG
+ com.evolveum.polygon.connector.grouper
+
%date [%X{subsystem}] [%thread] %level \(%logger\): %msg%n
MIDPOINT_LOG