# Automatische Ordner- und Berechtigungsstruktur (Aktive Directory)



## tt33tt (17. Nov 2014)

Hallo alle zusammen,

ich kenne mich mit den Grundlagen in Java aus: Klassen, Methoden, Attribute, ganz einfache Librarys, Schleifen etc.
Projekte habe ich bisher allerdings in der Script-Sprache AutoIt programmiert. Die Sprache ist ziemlich gut, trotzdem haben Objektorientierte Sprachen ihre Vorteile ;-)

Nun zu meinem Projekt, was ich bereits erfolgreich in AutoIt umgesetzt hatte. Dies möchte ich mit erweiterten Funktionen nun in Java umsetzen.

Input: Ich habe eine CSV-Datei, in der Ordner, Elternordner und diverse Optionen zu den Ordnern stehen. Später plane ich als Ergänzung eine GUI.

Vorbereitung: Das Programm stellt eine Verbindung zum ActiveDirectory her unter Verwendung des angemeldeten Logins. Es ist keine Eingabe von Login-Informationen notwendig. 

Output: In einem definierten Root-Ordner wird die Ordnerstruktur automatisch erstellt, die in der CSV-Datei beschrieben ist. Außerdem werden in einer festgelegten OU im ActiveDirectory für jeden erstellten Ordnern zwei Gruppen angelegt: Volllzugriff-Gruppe und Lesezugriff-Gruppe.
Die besagten Gruppen werden mit den entsprechenden Berechtigungen im jeweiligen Ordner hinterlegt. Die Gruppen werden in der Vererbung entsprechend meinen Vorgaben angepasst.
Sofern als Option hinterlegt, werden auch noch Verknüpfungen nach gewissen Vorgaben erstellt.

Nun zu meinen Fragen 

Wo finde ich die entsprechenden Librarys und Klassen:
-Auslesen von CSV-Dateien
-Zugriff auf das Active Directory ohne Passwort einzugeben mit aktivem Anmeldenamen
-Erstellen von Ordnern und Verknüpfungen
-Erstellen, Auslesen und Modifkation von Berechtigungen

Ich würde gerne die Ordner und Verknüpfungen und eventuell die Berechtigungen in einer Baum-Variable speichern.
Bisher habe ich es in einem Array hinterlegt.
-Ist für den Baum JTree richtig? Wo finde ich die Library?

Schon einmal vielen Dank und liebe Grüße


----------



## EasyEagle (18. Nov 2014)

Hallo tt33tt,

Also:
- Auslesen von CSV-Dateien kannst du z.B. mit

```
new BufferedReader(new FileReader(new File("path/to/file")));
```
- Erstellen von Ordnern geht auch mit dem File API:

```
File folder = new File("path/to/folder");
if(!folder.exists()){
    folder.createNewFile();  // geht auch mit file.mkdir();
}
```
- AD-Zugriff und Berechtigungen bearbeiten geht dann über den Java-Standard hinaus. Zumindest ist mir da kein Standard-API bekannt.
Vor ein paar Jahren hatte ich mal mit einer LDAP-Anbindung zu tun und soweit ich mich erinnere, hatten wir damals ein Apache Realm: Apache Tomcat Configuration Reference (6.0.41) - The Realm Component

- JTree hab ich selbst noch nie verwendet, das ist aber Java Standard und Teil von Swing.

Viele Grüße,
EasyEagle


----------



## tt33tt (18. Nov 2014)

Danke schonmal! Was ist eigentlich ein Realm?


----------



## EasyEagle (19. Nov 2014)

Soweit ich mich erinnern kann bietet das Realm Mechanismen zur Authentifizierung und Autorisierung.

Ich hab gerade nochmal nachgeschaut und es gibt wohl doch ein Standard-API für die LDAP-Anbindung.
Einfach mal nach Java + LDAP googeln, da kommen schon einige Beispiele.


----------

