2010-12-09 11 views
6

के माध्यम से एलडीएपी पासवर्ड कैसे बदलें मैं जेएनडीआई के माध्यम से उपयोगकर्ता का पासवर्ड बदलने की कोशिश कर रहा हूं लेकिन मुझे नीचे त्रुटि मिल रही है।जेएनडीआई

javax.naming.directory.SchemaViolationException: [एलडीएपी: त्रुटि कोड 65 - प्रविष्टि uid = yiwei, ou = प्रशासक, ओ = एसआईडी, डीसी = प्रश्नोत्तरी को संशोधित नहीं किया जा सकता क्योंकि परिणामस्वरूप प्रविष्टि सर्वर स्कीमा का उल्लंघन करती है: प्रविष्टि uid = yiwei, ou = Administrator, o = SID, dc = QuizPortal निर्देशिका सर्वर स्कीमा कॉन्फ़िगरेशन का उल्लंघन करता है क्योंकि इसमें विशेषता उपयोगकर्ता पासवर्ड शामिल है जिसे उस प्रविष्टि में परिभाषित किसी भी ऑब्जेक्ट क्लास द्वारा अनुमति नहीं है];

नीचे मेरा कोड है।

public class ModifyAtt 
{ 

    public static String INITCTX = "com.sun.jndi.ldap.LdapCtxFactory"; 
    public static String MY_HOST = "ldap://KhooGP-Comp1:1389/dc=QuizPortal"; 
    public static String MGR_DN = "cn=Directory Manager"; 
    public static String MGR_PW = "password"; 

    public static void main(String[] args) 
    { 

     //Identify service provider to use 
     Hashtable env = new Hashtable(); 
     env.put(Context.INITIAL_CONTEXT_FACTORY, INITCTX); 
     env.put(Context.PROVIDER_URL, MY_HOST); 
     env.put(Context.SECURITY_AUTHENTICATION, "simple"); 
     env.put(Context.SECURITY_PRINCIPAL, MGR_DN); 
     env.put(Context.SECURITY_CREDENTIALS, MGR_PW); 

     try 
     { 
      // Create the initial directory context 
      InitialDirContext initialContext = new InitialDirContext(env); 
      DirContext ctx = (DirContext)initialContext; 

      System.out.println("Context Sucessfully Initialized"); 

      ModificationItem[] mods = new ModificationItem[1]; 

      Attribute mod0 = new BasicAttribute("user password", "a"); 

      mods[0] = new ModificationItem(DirContext.REPLACE_ATTRIBUTE, mod0); 

      ctx.modifyAttributes("uid=yiwei,ou=Administrator,o=SID", mods); 

     } 
     catch(Exception e) 
     { 
      System.err.println(e); 
     } 
    } 
} 

कोई विचार क्यों ?? अग्रिम में बहुत धन्यवाद ..

केविन

उत्तर

11

आह .. उपयोगकर्ता पासवर्ड के लिए किसी भी अंतर वहाँ नहीं होना चाहिए।

को

Attribute mod0 = new BasicAttribute("userpassword", "a"); 
1

विशेषता

Attribute mod0 = new BasicAttribute("user password", "a"); 

बदलने के लिए किसी भी स्थान के बिना एक शब्द भी होना चाहिए की जरूरत है।

+0

क्या आप उत्तर से जुड़े एक उदाहरण कोड पोस्ट कर सकते हैं? – Sachith

संबंधित मुद्दे