content: package com.sohu.cache.web.util;
  
  import java.util.Hashtable;
  
  import javax.naming.directory.DirContext;
  import javax.naming.directory.InitialDirContext;
  
  import org.apache.commons.lang.StringUtils;
  import org.slf4j.Logger;
  import org.slf4j.LoggerFactory;
  
  import com.sohu.cache.util.ConstUtils;
  
  /**
   * 域账户LDAP登陆简单工具
   * 
   * @author leifu
   * @Time 2014年6月12日
   */
  public class LoginUtil {
      
      private final static Logger logger = LoggerFactory.getLogger(LoginUtil.class);
  
      public static boolean passportCheck(String username, String password) {
          //LDAP登陆地址
          String ldapUrl = ConstUtils.LDAP_URL;
          if (StringUtils.isBlank(ldapUrl)) {
              logger.warn("ldap url is empty!!");
              return true;
          }
          if (ConstUtils.IS_DEBUG) {
              logger.warn("isDebug=true return");
              return true;
          }
          Hashtable<String, String> env = new Hashtable<String, String>();
          env.put("java.naming.factory.initial", "com.sun.jndi.ldap.LdapCtxFactory");
          env.put("java.naming.provider.url", ldapUrl);
          env.put("java.naming.security.authentication", "simple");
          env.put("java.naming.security.principal", username + ConstUtils.EMAIL_SUFFIX);
          env.put("java.naming.security.credentials", password);
          DirContext ctx = null;
          try {
              ctx = new InitialDirContext(env);
              if (ctx != null) {
                  return true;
              }
          } catch (Exception e) {
              logger.error("username {} passportCheck: " + e.getMessage(), username, e);
          } finally {
              if (ctx != null) {
                  try {
                      ctx.close();
                  } catch (Exception e) {
                      logger.error(e.getMessage(), e);
                  }
              }
          }
          return false;
      }
  }
  