package org.pac4j.config.builder;
import org.pac4j.cas.client.CasClient;
import org.pac4j.cas.config.CasConfiguration;
import org.pac4j.cas.config.CasProtocol;
import org.pac4j.config.client.PropertiesConstants;
import org.pac4j.core.client.Client;
import java.util.List;
import java.util.Map;
import static org.pac4j.core.util.CommonHelper.isNotBlank;
/**
* Builder for CAS clients.
*
* @author Jerome Leleu
* @since 2.0.0
*/
public class CasClientBuilder extends AbstractBuilder implements PropertiesConstants {
public CasClientBuilder(final Map<String, String> properties) {
super(properties);
}
public void tryCreateCasClient(final List<Client> clients) {
for (int i = 0; i <= MAX_NUM_CLIENTS; i++) {
final String loginUrl = getProperty(CAS_LOGIN_URL, i);
final String protocol = getProperty(CAS_PROTOCOL, i);
if (isNotBlank(loginUrl)) {
CasConfiguration configuration = new CasConfiguration();
final CasClient casClient = new CasClient(configuration);
configuration.setLoginUrl(loginUrl);
if (isNotBlank(protocol)) {
configuration.setProtocol(CasProtocol.valueOf(protocol));
}
if (i != 0) {
casClient.setName(concat(casClient.getName(), i));
}
clients.add(casClient);
}
}
}
}