/*
 * Decompiled with CFR 0.152.
 * 
 * Could not load the following classes:
 *  com.l7tech.identity.ldap.LdapGroup
 *  com.l7tech.identity.ldap.LdapIdentityProviderConfig
 *  com.l7tech.identity.ldap.LdapUser
 *  com.l7tech.identity.ldap.MemberStrategy
 *  com.l7tech.objectmodel.IdentityHeader
 */
package com.l7tech.server.identity.ldap;

import com.l7tech.identity.ldap.LdapGroup;
import com.l7tech.identity.ldap.LdapIdentityProviderConfig;
import com.l7tech.identity.ldap.LdapUser;
import com.l7tech.identity.ldap.MemberStrategy;
import com.l7tech.objectmodel.IdentityHeader;
import com.l7tech.server.identity.ListableIdentityProvider;
import com.l7tech.server.identity.ldap.LdapGroupManager;
import com.l7tech.server.identity.ldap.LdapUrlProvider;
import com.l7tech.server.identity.ldap.LdapUserManager;
import java.util.Collection;
import javax.naming.NamingException;
import javax.naming.directory.Attributes;
import javax.naming.directory.DirContext;
import javax.naming.directory.SearchResult;

public interface LdapIdentityProvider
extends ListableIdentityProvider<LdapUser, LdapGroup, LdapUserManager, LdapGroupManager>,
LdapUrlProvider {
    public static final int DEFAULT_LDAP_CONNECTION_TIMEOUT = 5000;
    public static final int DEFAULT_LDAP_READ_TIMEOUT = 30000;
    public static final int LDAP_POOL_IDLE_TIMEOUT = 30000;
    public static final String DESCRIPTION_ATTRIBUTE_NAME = "description";
    public static final String OBJECTCLASS_ATTRIBUTE_NAME = "objectclass";

    public LdapIdentityProviderConfig getConfig();

    public String userSearchFilterWithParam(String var1);

    public String groupSearchFilterWithParam(String var1, MemberStrategy ... var2);

    public DirContext getBrowseContext() throws NamingException;

    public DirContext getPaginatedSearchContext() throws NamingException;

    public Collection<String> getReturningAttributes();

    public IdentityHeader searchResultToHeader(SearchResult var1);

    public boolean isValidEntryBasedOnUserAccountControlAttribute(String var1, Attributes var2);

    public boolean checkExpiredMSADAccount(String var1, Attributes var2);
}

