CredentialSource getCredentialSource() {
return parent.getCredentialSource();
}
abstract AuthenticationConfiguration reparent(AuthenticationConfiguration newParent);
AuthenticationConfiguration without(Class<?> clazz) {
<BUG>if (clazz.isInstance(this)) return parent;
AuthenticationConfiguration newParent = parent.without(clazz);
if (parent == newParent) return this;</BUG>
return reparent(newParent);
}

CredentialSource getCredentialSource() {
return parent.getCredentialSource();
}
abstract AuthenticationConfiguration reparent(AuthenticationConfiguration newParent);
AuthenticationConfiguration without(Class<?> clazz) {
AuthenticationConfiguration newParent = parent.without(clazz);
if (clazz.isInstance(this)) return newParent;
if (parent == newParent) return this;
return reparent(newParent);
}
