Java クラスを使用して OpenLDAP の属性を更新できるようにする必要があります。
LDAP エントリの作成に挑戦しましたが、適切な LDAP エントリではなく、Java オブジェクトのように見えます。(ぐう)
javax.naming.Context をインポートします。
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.naming.NameAlreadyBoundException;
import javax.naming.directory.*;
import java.util.*;
公開クラス TestLDAP {
static final long serialVersionUID = -1240113639782150930L;
final static String ldapServerName = "localhost:636";
final static String rootdn = "cn=The Manager,ou=mydept,o=mycompany";
final static String rootpass = "パスワード";
final static String rootContext = "ou=mydept,o=mycompany";
public static void main( String[] args ) {
System.setProperty("javax.net.ssl.trustStore", "C:\\cacerts");
プロパティ env = new Properties();
env.put("com.sun.jndi.ldap.trace.ber", System.out);
env.put( Context.INITIAL_CONTEXT_FACTORY,
"com.sun.jndi.ldap.LdapCtxFactory" );
env.put(Context.SECURITY_PROTOCOL, "ssl");
env.put( Context.PROVIDER_URL, "ldap://" + ldapServerName + "/" + rootContext );
env.put( Context.SECURITY_PRINCIPAL, rootdn );
env.put( Context.SECURITY_CREDENTIALS, rootpass );
試す {
// 環境を使用して初期ディレクトリ コンテキストを取得する
DirContext ctx = new InitialDirContext( env );
// LDAP エントリを追加
属性 myAttrs = new BasicAttributes(true);
属性 oc = new BasicAttribute("objectclass");
oc.add("inetOrgPerson");
oc.add("組織の人");
oc.add("人");
oc.add("トップ");
myAttrs.put(oc);
myAttrs.put("cn","test996");
myAttrs.put("sn","テスト 996");
ctx.bind("cn=test997", myAttrs);
} catch ( NameAlreadyBoundException 鍋 ) {
System.err.println( "値は既にバインドされています!" );
キャッチ(例外e){
e.printStackTrace();
}
}
}
助けてください!