however, avoid putting the given 'princ' but assert that
the cached principal is obtained with the system session
used to deliver principals with this provider implementation.
*/
addToCache(auth.getPrincipal());
Iterator<Group> itr = auth.memberOf();
while (itr.hasNext()) {
Group group = itr.next();
Principal gp = group.getPrincipal();
addToCache(gp);
membership.add(gp);