2023年6月21日发(作者:)

连接。

例代码:private DirContext getInitialContext() throws Exception {

}

Hashtable env = new Hashtable();

(L_CONTEXT_FACTORY,

"xFactory");

(ER_URL, "ServerHost");

(TY_AUTHENTICATION, "simple");

(TY_PRINCIPAL, "username");

(TY_CREDENTIALS, "password");

DirContext ctx = new InitialDirContext(env);

return ctx;

2、JNDI对Ldap进行查询

事例代码:

private String getPersonIdFromCMCC(String uid){

String personid = "";

DirContext dc = null;

Object obj = null;

SearchResult si = null;

Attributes atts = null;

String searchDN = "OU=users,dc=SX,DC=CMCC";

String userDN = "uid="+uid+","+searchDN;

try {

dc = getInitialContext();

SearchControls constraints = new SearchControls();

String filter = "(uid="+uid+")";

NamingEnumeration en = (searchDN, filter,

constraints);

if(eElements()){

obj = ement();

if (obj instanceof SearchResult) {

si = (SearchResult) obj;

atts = ributes();

personid = ("cmcc-sx-appAttribute12");

}

}

}

catch (Exception e) {

// TODO Auto-generated catch block

tackTrace();

}finally{

try {

();

} catch (NamingException e) {

// TODO Auto-generated catch block

tackTrace();

}

}

return personid;

}

3、向LDAP中增加数据

public void addLdap(PortalEntity user, DirContext idc) {

String baseDN = "OU=users,dc=SX,DC=CMCC";

Attributes attrs = new BasicAttributes();

Attribute objectclassAttr = new

BasicAttribute("objectclass");

("top");

("person");

(objectclassAttr);

if(()!= null){

Attribute snAttr = new BasicAttribute("sn");

(());

(snAttr);

}

if(()!=null){

Attribute nameAttr = new BasicAttribute("uid");

(());

(nameAttr);

}

if(()!=null){

Attribute cn = new BasicAttribute("cn");

(());

(cn);

}

}

try {

Subcontext("uid=" + () + "," +

baseDN,attrs);

} catch (Exception e) {

tackTrace();

}

4、从LDAP中删除数据

public void deleteUserLdap(String uid) {

DirContext dc = null;

Object obj = null;

SearchResult si = null;

Attributes atts = null;

String searchDN = "ou=people,dc=sxmcc,dc=com,dc=cn";

SearchControls constraints = new SearchControls();

try {

dc = talLdapContext();

String filter = "(uid="+uid+ ")";

NamingEnumeration en = (searchDN, filter,

constraints);

while (eElements()) {

obj = ement();

if (obj instanceof SearchResult) {

si = (SearchResult) obj;

atts = ributes();

if (atts != null) {

String jobDN = "uid=" +

("uid").get().toString() + ","

+ searchDN;

ySubcontext(jobDN);

}

}

}

} catch (Exception e) {

tackTrace();

} finally {

if (dc != null)

try {

();

log(" = " + dc, _LOG);

} catch (NamingException e) {

tackTrace();

}

}

}

5、修改LDAP中数据

public void updateLdap(PortalEntity user, DirContext idc,Attributes

atts) {

String baseDN = "ou=people,dc=sxmcc,dc=com,dc=cn";

try {

if (atts != null) {

String userDN = "uid="+ ("uid").get().toString()+

"," + baseDN;

ModificationItem[] mods = null;

Vector v = new Vector();

BasicAttribute bat = null;

//1

if(()!=null){

if(("sn")== null

|| !("sn").contains(())){

bat = new BasicAttribute("sn");

(());

(bat);

}

}

//2

if( () != null){

if(("cn")== null

|| !("cn").contains(())){

bat = new BasicAttribute("cn");

(());

(bat);

}

}

if (() != 0) {

}

}

}

mods = new ModificationItem[()];

for (int j = 0; j < (); j++) {

mods[j] = new ModificationItem(

E_ATTRIBUTE,

(BasicAttribute) tAt(j));

Attributes(userDN, mods);

}

} catch (Exception e) {

}

tackTrace();

2023年6月21日发(作者:)

连接。

例代码:private DirContext getInitialContext() throws Exception {

}

Hashtable env = new Hashtable();

(L_CONTEXT_FACTORY,

"xFactory");

(ER_URL, "ServerHost");

(TY_AUTHENTICATION, "simple");

(TY_PRINCIPAL, "username");

(TY_CREDENTIALS, "password");

DirContext ctx = new InitialDirContext(env);

return ctx;

2、JNDI对Ldap进行查询

事例代码:

private String getPersonIdFromCMCC(String uid){

String personid = "";

DirContext dc = null;

Object obj = null;

SearchResult si = null;

Attributes atts = null;

String searchDN = "OU=users,dc=SX,DC=CMCC";

String userDN = "uid="+uid+","+searchDN;

try {

dc = getInitialContext();

SearchControls constraints = new SearchControls();

String filter = "(uid="+uid+")";

NamingEnumeration en = (searchDN, filter,

constraints);

if(eElements()){

obj = ement();

if (obj instanceof SearchResult) {

si = (SearchResult) obj;

atts = ributes();

personid = ("cmcc-sx-appAttribute12");

}

}

}

catch (Exception e) {

// TODO Auto-generated catch block

tackTrace();

}finally{

try {

();

} catch (NamingException e) {

// TODO Auto-generated catch block

tackTrace();

}

}

return personid;

}

3、向LDAP中增加数据

public void addLdap(PortalEntity user, DirContext idc) {

String baseDN = "OU=users,dc=SX,DC=CMCC";

Attributes attrs = new BasicAttributes();

Attribute objectclassAttr = new

BasicAttribute("objectclass");

("top");

("person");

(objectclassAttr);

if(()!= null){

Attribute snAttr = new BasicAttribute("sn");

(());

(snAttr);

}

if(()!=null){

Attribute nameAttr = new BasicAttribute("uid");

(());

(nameAttr);

}

if(()!=null){

Attribute cn = new BasicAttribute("cn");

(());

(cn);

}

}

try {

Subcontext("uid=" + () + "," +

baseDN,attrs);

} catch (Exception e) {

tackTrace();

}

4、从LDAP中删除数据

public void deleteUserLdap(String uid) {

DirContext dc = null;

Object obj = null;

SearchResult si = null;

Attributes atts = null;

String searchDN = "ou=people,dc=sxmcc,dc=com,dc=cn";

SearchControls constraints = new SearchControls();

try {

dc = talLdapContext();

String filter = "(uid="+uid+ ")";

NamingEnumeration en = (searchDN, filter,

constraints);

while (eElements()) {

obj = ement();

if (obj instanceof SearchResult) {

si = (SearchResult) obj;

atts = ributes();

if (atts != null) {

String jobDN = "uid=" +

("uid").get().toString() + ","

+ searchDN;

ySubcontext(jobDN);

}

}

}

} catch (Exception e) {

tackTrace();

} finally {

if (dc != null)

try {

();

log(" = " + dc, _LOG);

} catch (NamingException e) {

tackTrace();

}

}

}

5、修改LDAP中数据

public void updateLdap(PortalEntity user, DirContext idc,Attributes

atts) {

String baseDN = "ou=people,dc=sxmcc,dc=com,dc=cn";

try {

if (atts != null) {

String userDN = "uid="+ ("uid").get().toString()+

"," + baseDN;

ModificationItem[] mods = null;

Vector v = new Vector();

BasicAttribute bat = null;

//1

if(()!=null){

if(("sn")== null

|| !("sn").contains(())){

bat = new BasicAttribute("sn");

(());

(bat);

}

}

//2

if( () != null){

if(("cn")== null

|| !("cn").contains(())){

bat = new BasicAttribute("cn");

(());

(bat);

}

}

if (() != 0) {

}

}

}

mods = new ModificationItem[()];

for (int j = 0; j < (); j++) {

mods[j] = new ModificationItem(

E_ATTRIBUTE,

(BasicAttribute) tAt(j));

Attributes(userDN, mods);

}

} catch (Exception e) {

}

tackTrace();