package com.autentia.tnt.manager.security;
import org.acegisecurity.providers.ProviderManager;
import org.acegisecurity.providers.dao.DaoAuthenticationProvider;
import org.acegisecurity.providers.ldap.LdapAuthenticationProvider;
import java.util.ArrayList;
import java.util.List;
public class CustomProviderManager extends ProviderManager {
private final Boolean ldapEnabled;
public CustomProviderManager(Boolean ldapProviderEnabled) {
super();
ldapEnabled = ldapProviderEnabled;
}
@Override
public void setProviders(List newList) {
List cloneList = new ArrayList(newList);
for (Object provider : newList) {
if (provider instanceof DaoAuthenticationProvider && ldapEnabled) {
cloneList.remove(provider);
}
if (provider instanceof LdapAuthenticationProvider && !ldapEnabled) {
cloneList.remove(provider);
}
}
super.setProviders(cloneList);
}
}