package io.lumify.web.auth;
import io.lumify.core.bootstrap.BootstrapBindingProvider;
import io.lumify.core.config.Configuration;
import io.lumify.core.exception.LumifyException;
import io.lumify.ldap.LdapSearchConfiguration;
import io.lumify.ldap.LdapSearchService;
import io.lumify.ldap.LdapSearchServiceImpl;
import io.lumify.ldap.LdapServerConfiguration;
import com.google.inject.Binder;
import com.google.inject.Provider;
import com.google.inject.Scopes;
public class LdapX509AuthenticationProviderBootstrapBindingProvider implements BootstrapBindingProvider {
@Override
public void addBindings(Binder binder, final Configuration configuration) {
binder.bind(LdapSearchService.class)
.toProvider(new Provider<LdapSearchService>() {
@Override
public LdapSearchService get() {
LdapServerConfiguration ldapServerConfiguration = new LdapServerConfiguration();
configuration.setConfigurables(ldapServerConfiguration, "ldap");
LdapSearchConfiguration ldapSearchConfiguration = new LdapSearchConfiguration();
configuration.setConfigurables(ldapSearchConfiguration, "ldap");
try {
return new LdapSearchServiceImpl(ldapServerConfiguration, ldapSearchConfiguration);
} catch (Exception e) {
throw new LumifyException("failed to configure ldap search service", e);
}
}
})
.in(Scopes.SINGLETON);
}
}