@Override
    public void onChange(final PermissionChangeEvent event) {
        if (event.getUserRef() != null) {
            // User is not a Doc so DocRef is being abused to make use of EntityEvent
            // DocRef.name is User.subjectId
            // DocRef.uuid is User.userUuid
            String subjectId = event.getUserRef().getSubjectId();
            if (subjectId != null) {
                // Don't know if it is a user or a group so invalidate both
                cacheBySubjectId.invalidate(subjectId);
            }
        }
    }
Gets a user from the cache and if it doesn't exist creates it in the database.

@param subjectId This is the unique identifier for the user that links the stroom user
                 to an IDP user, e.g. may be the 'sub' on the IDP depending on stroom config.
stroom-security/stroom-security-impl/src/main/java/stroom/security/impl/StroomUserIdentityFactory.java