用JAVA通过JNDI操作Domino中LDAP计算机二级考试

文章作者 100test 发表时间 2009:06:15 09:48:51
来源 100Test.Com百考试题网


  编辑特别推荐:

  全国计算机等级考试(等考)指定教材

  全国计算机等级考试学习视频

  全国计算机等级考试网上辅导招生

  全国计算机等级考试时间及科目预告

  百考试题教育全国计算机等级考试在线测试平台

  全国计算机等级考试资料下载

  全国计算机等级考试论坛

  由于现在好多企业都在使用Domino系统。这里我就使用JAVA语言直接调用Domino中用户信息,进行常见的认证,增加,修改和删除操作。
  一、获取Domino连接
  /**
  * 从连接池中获取一个连接.
  *
  * @return LdapContext
  * @throws NamingException
  */
  public LdapContext getConnectionFromFool() throws NamingException {
  Properties env = new Properties().
  env.put(Context.INITIAL_CONTEXT_FACTORY,
  "com.sun.jndi.ldap.LdapCtxFactory").
  env.put(Context.PROVIDER_URL, "ldap://192.168.0.189:389").
  env.put(Context.SECURITY_AUTHENTICATION, "simple").
  env.put(Context.SECURITY_PRINCIPAL,
  "CN=administrator,O=fall").
  env.put(Context.SECURITY_CREDENTIALS, "123456").
  env.put("com.sun.jndi.ldap.connect.pool", "true").
  env.put("java.naming.referral", "follow").
  return new InitialLdapContext(env, null).
  }
  二、认证用户信息
  /**
  * 校验用户登录.
  *
  * @param userDn
  * String
  * @param password
  * String
  * @return boolean
  */
  public boolean authenticate(String userDn, String password) {
  LdapContext ctx = null.
  try {
  Control[] connCtls = new Control[] {}.
  ctx = getConnectionFromFool().
  ctx.getRequestControls().
  ctx.addToEnvironment(Context.SECURITY_PRINCIPAL, userDn).
  ctx.addToEnvironment(Context.SECURITY_CREDENTIALS, password).
  ctx.reconnect(connCtls).
  return true.
  } catch (AuthenticationException e) {
  return false.
  } catch (NamingException e) {
  return false.
  } finally {
  if (ctx != null) {
  try {
  ctx.addToEnvironment(Context.SECURITY_PRINCIPAL,
  "CN=administrator,O=fall").
  ctx.addToEnvironment(Context.SECURITY_CREDENTIALS,
  "123456").
  ctx.reconnect(ctx.getConnectControls()).
  ctx.close().
  } catch (NamingException e) {
  // TODO Auto-generated catch block
  e.printStackTrace().
  }
  ctx = null.
  }
  }
  }
  三、添加用户信息
  /**
  * 添加用户.
  *
  * @param userDN
  * String用户DN
  * @param userName
  * String 用户登录名
  * @param userPwd
  * String 用户密码
  * @return boolean 添加是否成功.
  *
  */
  public boolean addUser(String userDN, String userName, String userPwd) {
  LdapContext ctx = null.
  try {
  ctx = getConnectionFromFool().
  // Create attributes to be associated with the new user
  Attributes attrs = new BasicAttributes(true).
  attrs.put("objectClass", "person").
  attrs.put("userPassword", userPwd).
  attrs.put("cn", userName).
  attrs.put("sn", userName).
  return true.
  } catch (NamingException e) {
  e.printStackTrace().
  } catch (IOException e) {
  e.printStackTrace().
  } finally {
  if (ctx != null) {
  try {
  ctx.close().
  } catch (NamingException e) {
  // TODO Auto-generated catch block
  e.printStackTrace().
  }
  ctx = null.
  }
  }
  return false.
  }

相关文章


JAVA技巧:JAVA中实现汉字转拼音计算机二级考试
用JAVA通过JNDI操作Domino中LDAP计算机二级考试
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛