Unresolvable Subject Deletion Utility (USDU)
As of Grouper v2.4, updates were made to allow deleting subjects after being unresolvable for X days.
As of Grouper v2.5, USDU has been changed to perform other functions as well. See Grouper USDU v2.5+.
Because of these changes, USDU should be run using the daemon now instead of the instructions in the "Usage" section below.
The Unresolvable Subject Deletion Utility (USDU) finds and optionally deletes memberships for subjects which can not be found by their source.
An unresolvable subject is a subject that can not be found by its source. A subject may be unresolvable because of a temporary or permanent source failure, or because it was removed from its source before memberships or privileges were deleted or revoked.
This utility attempts to lookup every member's subject. If a subject can not be found, it's immediate memberships are printed and optionally deleted.
A future version may extend the Source class to provide more efficient lookups of subjects.
Without any arguments, USDU prints its usage
For every unresolvable subject, usdu prints one line for every immediate membership. If an unresolvable subject is not a member of any groups and has no privileges, usdu prints no_memberships.
Find unresolvable subjects from all sources
Find unresolvable subjects from a specified source
Find unresolvable subject via member uuid
Delete unresolvable subject from all groups
This utility finds and deletes memberships and privileges. It is possible for an unresolvable subject to be a creator or modifier of a group, in that case, calling Group.getCreateSubject() or Group.getModifySubject() will result in a SubjectNotFoundException.
Unresolvable subjects are not deleted from the grouper_members table. If an unresolvable subject becomes resolvable again, it will retain its member uuid.