LDAP: Daten eintragen funktioniert nicht

plisam

Mitglied
Hi,
Ich habe ein klein Programm geschrieben was Daten von ein Excel Tabelle Daten nehmen soll und die in ein LDAP Datenbank einträgt. Die Verbindung funktioniert nur weiß ich nicht warum die Eintragung nicht erfolgt. Hier unten mein Java Code und das Output nachdem das Programm ausgeführt ist.

Java:
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package hsappldap;

import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.Hashtable;
import java.util.Iterator;
import javax.naming.Context;
import javax.naming.directory.Attribute;
import javax.naming.directory.BasicAttribute;
import javax.naming.directory.BasicAttributes;
import javax.naming.directory.DirContext;
import javax.naming.directory.InitialDirContext;

import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
/**
*
* @author laurent
*/
public class HsAppLDAP {

    /**
     * @param args the command line arguments
     */
    @SuppressWarnings("rawtypes")
    public static void main(String[] args) {

        // Déclaration des variables
                @SuppressWarnings("Convert2Diamond")
        ArrayList<String> values = new ArrayList<String>();
        Connection connection;
        Statement statement;

        // Récupération des données depuis le fichier excel
        try {

            InputStream input = new FileInputStream("student.xls");
            POIFSFileSystem fs = new POIFSFileSystem(input);
            HSSFWorkbook wb = new HSSFWorkbook(fs);
            HSSFSheet sheet = wb.getSheetAt(0);
            Iterator rows = sheet.rowIterator();

            while (rows.hasNext()) {

                values.clear();

                HSSFRow row = (HSSFRow) rows.next();

                Iterator cells = row.cellIterator();

                while (cells.hasNext()) {

                    HSSFCell cell = (HSSFCell) cells.next();
                  
                    if (HSSFCell.CELL_TYPE_NUMERIC == cell.getCellType())
                        values.add(Integer.toString((int) cell.getNumericCellValue()));
                    else if (HSSFCell.CELL_TYPE_STRING == cell.getCellType())
                        values.add(cell.getStringCellValue());
                  
                }

                // Insertion en BDD
                                String url = "ldap://10.10.10.10:389";
                                @SuppressWarnings("UseOfObsoleteCollectionType")
                                Hashtable env = new Hashtable();
                                env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
                                env.put(Context.PROVIDER_URL, url);
                                env.put(Context.SECURITY_AUTHENTICATION, "none");
                                env.put(Context.SECURITY_PRINCIPAL, "uid=admin,o=organisation");
                                env.put(Context.SECURITY_CREDENTIALS, "Password");
                              
                try {
                    DirContext ctx = new InitialDirContext(env);
                                        System.out.println("connected");
                                        System.out.println(ctx.getEnvironment());

                                        try {
                                          
                                            Attribute cn = new BasicAttribute("cn", values.get(0));
                                            System.out.println(cn);
                                            Attribute sn = new BasicAttribute("sn", values.get(1));
                                            System.out.println(sn);
                                            Attribute fullName = new BasicAttribute("fullName", values.get(2) +" "+ values.get(1));
                                            System.out.println(fullName);
                                            Attribute givenName = new BasicAttribute("givenName", values.get(2));
                                            System.out.println(givenName);
                                            Attribute uid = new BasicAttribute("uid", values.get(0));
                                            System.out.println(uid);
                                            Attribute ou = new BasicAttribute("ou", values.get(3));
                                            System.out.println(ou);
                                          
                                            Attribute oc = new BasicAttribute("objectClass");
                                            System.out.println(oc);
                                            oc.add("Top");
                                            oc.add("Person");
                                            oc.add("organizationalPerson");
                                            oc.add("inetOrgPerson");
                                          
                                            BasicAttributes entry = new BasicAttributes();
                                          
                                            entry.put(cn);
                                            entry.put(sn);
                                            entry.put(fullName);
                                            entry.put(givenName);
                                            entry.put(uid);
                                            entry.put(ou);
                                            entry.put(oc);
                                          
                                            String entryDN = "cn=" + values.get(0) + ",ou=AI,o=organisation";
                                            System.out.println("1 Etape");
                                    
                                            //To Do Tommorrow
                                            ctx.createSubcontext(entryDN, entry);
                                            System.out.println("Enter");
                                          
                                        } catch (Exception e) {
                                            System.out.println(e.getMessage());
                                        }
                                      
                } catch (Exception e) {
                                    System.out.println(e.getMessage());
                }

            }
        } catch (IOException e) {
        }

    }
 
}

Hier die Ausgabe:

Java:
run:
10.10.10.10:389
connected
{java.naming.provider.url=ldap://10.10.10.10:389, java.naming.factory.initial=com.sun.jndi.ldap.LdapCtxFactory, java.naming.security.principal=uid=admin,o=organisation, java.naming.security.authentication=none, java.naming.security.credentials=Password!}
cn: fdai0021
sn: Wagner
fullName: Toma Wagner
givenName: Toma
uid: fdai0021
ou: AI
objectClass: No values
1 Etape
[LDAP: error code 50 - NDS error: no access (-672)]
BUILD SUCCESSFUL (total time: 22 seconds)

Das Excel Document enthält diese Infos:

fdai0020 Buehler Mark AI
fdai0021 Wagner Toma AI
 
K

kneitzel

Gast
Also die Fehlermeldung interpretiere ich so, dass Du nicht die Rechte hast, die Daten zu speichern. Mich wundert in dem Zusammenhang, dass Du als SECURITY_AUTHENTICATION none angegeben hast. Dadurch wird keine Autorisierung durchgeführt:
http://docs.oracle.com/javase/jndi/tutorial/ldap/security/auth.html
Statt "none" würde ich "simple" eintragen. Und der angegebene Nutzer / Passwort muss natürlich stimmen.

Details diesbezüglich finden sich unter
http://docs.oracle.com/javase/jndi/tutorial/ldap/security/ldap.html
 

plisam

Mitglied
Ooo Cool Danke! Mein versehen. Ich habe "simple" angepasst. Nun habe ich diese Fehlermeldung:

Java:
[LDAP: error code 13 - Confidentiality Required]
[LDAP: error code 13 - Confidentiality Required]

Hast du noch ein Idee?

Danke
 

plisam

Mitglied
Cool Danke euch alle!! Ich habe das SSL bei mir erlaubt und es geht. Es gibt kein Fehler mehr beim Ausführung aber ich finde kein Eintrag im LDAP. Wenn jemand da noch etwas sagen kann dan danke im voraus. Ich bin LDAP Anfänger also weiss noch nicht viel!!

Danke
 
K

kneitzel

Gast
Dein entryDN ist korrekt? Du schaust auch direkt an der richtigen Stelle und es kann auch nicht sein, dass Du an einem anderen LDAP Server schaust und deine Änderungen noch nicht repliziert sind?

(Kenne mich mit den reinen LDAP Servern nicht aus - habe meine Erfahrungen fast ausschließlich im AD Umfeld gemacht. Aber da wären das ggf. typische Probleme.)
 

plisam

Mitglied
Das entryDN ist richtig glaube ich:
- Das Excel Document enthält Bsp.: fdai0020 | Buehler | Mark | AI
Davon möchte ich als Primary Key das cn = fdai0020 nehmen also -> cn=fdai0020

String entryDN ="cn="+ values.get(0)+",ou=AI,o=organisation";

Ansonst, das LDAP Datenbank ist richtig ich habe nur ein
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Google Web Toolkit LDAP - Verbindung Datenbankprogrammierung 2
F die DN eines LDAP verzeichnisses abfragen Datenbankprogrammierung 2
D Alte Daten ins neue Modell quetschen Datenbankprogrammierung 1
R Mongodb Daten werden immer überschrieben Datenbankprogrammierung 7
R Mongodb Daten in einem bestimmten Document speichern Datenbankprogrammierung 1
OnDemand Daten auf mehrere Tabellen aufteilen oder Spalten nutzen Datenbankprogrammierung 2
B Daten HSQL-DB Datenbankprogrammierung 2
V H2 ManyToMany wie speichere ich die Daten? Datenbankprogrammierung 10
thobren Projekt SQlite! Wie kann ich auf auf SQlite Daten zugreifen? Datenbankprogrammierung 4
OnDemand Daten verschlüsseln Datenbankprogrammierung 42
L Oracle Daten in Häppchen selektieren Datenbankprogrammierung 5
L Oracle Daten von Oracle zu MSSQL übertragen Datenbankprogrammierung 4
D Daten aus der Firebase-Echtzeitdatenbank abfragen und in Variablen speichern (JAVA) Datenbankprogrammierung 0
Z Ausgabe nur bestimmter Daten Datenbankprogrammierung 6
E netbeans - jsp Daten in Datenbank hinzufügen Datenbankprogrammierung 2
N Java Abfrage über GUI, Daten hinzufügen Datenbankprogrammierung 54
Kirby.exe Vorschläge zur Verschlüsselung von Daten in der DB Datenbankprogrammierung 2
T Java Spiel Daten speichern Datenbankprogrammierung 1
LimDul H2 Embedded DB und Gigabytes an Daten Datenbankprogrammierung 0
C Datenbank anlegen und über eine Website mit Daten füllen? Datenbankprogrammierung 25
R Wie mit zu viele Daten umgehen? Datenbankprogrammierung 2
F MySQL Wie speichere ich Daten zeitlich abhängig? Datenbankprogrammierung 4
T Oracle Normalisierung und Daten splitten Datenbankprogrammierung 1
JG12111989 DB-Daten werden falsch dargestellt Datenbankprogrammierung 7
K H2 Daten in die H2 console DB eintragen Datenbankprogrammierung 2
L SQLite Ändern der Daten in einem UNIQUE Feld Datenbankprogrammierung 1
S Daten von SQLite Datenbank nutzen Datenbankprogrammierung 5
P JSP - Daten aus 2 Tabellen in eine neue Tabelle einfügen Datenbankprogrammierung 1
L Oracle Daten von einem Server zum andere kopieren Datenbankprogrammierung 24
P Daten in eine mySQL Datenbank einfügen Datenbankprogrammierung 4
L MySQL Vergleichen von Array-Inhalt, Ausgabe gleicher Daten Datenbankprogrammierung 3
W Daten in Java intern abfragen Datenbankprogrammierung 1
G MySQL Java Problem: Nullpointer Exception obwohl Daten vorhanden sind? Datenbankprogrammierung 2
W Daten aus einer Datei von einem VServer auslesen Datenbankprogrammierung 1
I MySQL Datenbankstruktur angleichen - Daten behalten Datenbankprogrammierung 7
O JDBC Daten in zwei Tabellen mit zwei foreach-Schleifen einfügen (insert into) Datenbankprogrammierung 1
B MySQL LogIn Daten im Code verstecken Datenbankprogrammierung 3
O mit Multi-Thread Daten aus Datenbank lesen und schreiben Datenbankprogrammierung 22
F Daten verdichten Datenbankprogrammierung 0
Z Finde den Fehler: Daten aus einer Access-Datenbank lesen Datenbankprogrammierung 12
B Daten aus DB in Word Dokument Datenbankprogrammierung 2
D Aktualisierung einer ListView mit Daten aus MySQL-DB Datenbankprogrammierung 5
D Daten posten auf RestApi (Mongodb/NoSQL) Datenbankprogrammierung 0
I Fehler bei Ausgabe der Daten aus der DB Datenbankprogrammierung 3
OnDemand MySQL Daten aktualisieren Datenbankprogrammierung 6
D Daten von einem Server in eigenem Java-Programm benutzen Datenbankprogrammierung 6
M Vergleich von Daten in verschiedenen Tabellen Datenbankprogrammierung 1
S Daten aus Form in Datenbank nur einmal eintragen Datenbankprogrammierung 2
6 JBDC Daten verschlüsseln? Datenbankprogrammierung 2
F MySQL Daten ändern über Java Datenbankprogrammierung 3
G SQLite Daten aus SQLite DB in andere SQLite DB importieren Datenbankprogrammierung 4
H Grosse Menge an Daten in eine Datenbank Datenbankprogrammierung 32
M Daten nachträglich hinzufügen Datenbankprogrammierung 6
2 MySQL Daten aus einer Array auslesen und MySQL Statment erstellen. Datenbankprogrammierung 5
E Daten einer SQL-Datenbank aus Combobox in labels schreiben Datenbankprogrammierung 6
N HSQLDB Daten Auslesen Datenbankprogrammierung 3
O Viele Verbindungen-Exception bei insert Daten zur MySQL-Datenbank Datenbankprogrammierung 2
P MySql daten in leeren jtable übertragen Datenbankprogrammierung 5
SexyPenny90 SQL Daten sortieren und top 5 ausgeben Datenbankprogrammierung 7
L Hibernat will Daten nicht einfügen??? Datenbankprogrammierung 2
B MySQL DB Daten aktualisieren Datenbankprogrammierung 9
D MySQL Daten werden aus Datenbank gelesen, obwohl sie dort gar nicht angekommen sind Datenbankprogrammierung 8
Kenan89 Oracle Daten einer Tabelle in Array speichern Oracle Datenbankprogrammierung 10
L SQLite Daten werden nicht in die Tabelle eingefügt Datenbankprogrammierung 7
D Übersichtliche Zuweisung von Daten in Tabellen Datenbankprogrammierung 17
C ResultSet enthält nicht alle Daten Datenbankprogrammierung 4
A Problem mit Eintragen von Daten in eine Datenbank mittels DAO Datenbankprogrammierung 4
J Daten synchronisieren in Multi-Client-Anwendungen (Hibernate) Datenbankprogrammierung 6
S JPA: DB Schema ändern und Daten nicht verlieren - wie? Datenbankprogrammierung 5
T MySQL Select: Zusammenfassen von Daten und bilden von Durchschnitt? Datenbankprogrammierung 4
F Daten in die DB hinzufügen Datenbankprogrammierung 7
H Klasse welche Mysql Daten zurück gibt Datenbankprogrammierung 18
S JPA: Problem mit Update von Daten Datenbankprogrammierung 7
H Daten in/aus Datenbank schreiben Datenbankprogrammierung 2
M DropDownBoxen mit MySQL Daten füllen Datenbankprogrammierung 3
E MySQL Daten in die Datenbank eingeben via Java Programm Datenbankprogrammierung 3
F ORA 17410 Keine weiteren Daten aus Socket zu lesen Datenbankprogrammierung 2
B Daten aus Datenbank holen Datenbankprogrammierung 6
T Problem beim schreiben von daten Datenbankprogrammierung 4
N Daten aus Datenbank abfragen und anzeigen in der Praxis?? Datenbankprogrammierung 2
G MySQL Bekomme keine Daten. Datenbankprogrammierung 7
L CLOB-Daten werden beim Einfügen in die Datenbank geändert? Datenbankprogrammierung 5
G Daten aggregieren Datenbankprogrammierung 11
Gossi Oracle 2 Daten (Datum) vergleichen Datenbankprogrammierung 6
W MySQL Daten aus bestimmter Spalte lesen Datenbankprogrammierung 2
E MySQL Befüllen einer MySQL DB mit großen Daten Datenbankprogrammierung 6
J Doppelte Daten in Spalte, nur die erste abrufen wie? Datenbankprogrammierung 15
P Daten aus MySql Datenbank lesen??? Datenbankprogrammierung 6
J Daten vergleichen Datenbankprogrammierung 10
S Daten einer Tabelle vergleichen und ggs neuen Wert einfügen Datenbankprogrammierung 8
X Daten einer DatenbankTabelle in JTable darstellen Datenbankprogrammierung 13
T Designfrage: DB-Daten direkt oder verzögert speichern Datenbankprogrammierung 2
Dragonfire Daten aus jsp Datei in datenbank speichern Datenbankprogrammierung 15
A Daten von Webshop einlesen Datenbankprogrammierung 5
S Daten aus jTextfiled in DB schreiben - SQL Befehl Datenbankprogrammierung 2
T Daten aus DB in variable Zahl an Variablen speichern Datenbankprogrammierung 18
A Datenbankanbindung an mySQL und Ein-/Auslesen der Daten Datenbankprogrammierung 4
D Vector mit Daten aus der Datenbank füllen Datenbankprogrammierung 7
G Daten aus ResultSet in String-Liste Datenbankprogrammierung 13
S Fehler beim Auslesen von Daten Datenbankprogrammierung 6

Ähnliche Java Themen

Neue Themen


Oben