用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.
}