Home
Dokument 1
Contents
1. path seqybas description Home verzeichnisse auf kermit url eifs kermit sgybagl domain ff Boybas sgtest theboss OK Cancel Zuerst erh lt man eine Liste aller f r Benutzer zug nglichen Netzlaufwerke Nach der Installation ist diese Liste leer da ja noch keine Netzlaufwerke konfiguriert wurden 5 2 ADMINISTRATION DES SYSTEMS 75 Hier k nnen bestehende Netzlaufwerke ge ndert oder gel scht werden oder durch den Knopf am Ende der Seite ein neues hinzugef gt werden ber ein Formular k nnen alle Einstellungen f r ein Netzlaufwerk vorge nommen werden Die Bedeutung der einzelnen Felder kann in der Tabelle in Abschnitt 4 4 nachgelesen werden 5 2 3 Direkte Bearbeitung der Konfigurationsdatei Statt ber HTML Formulare wie im vorherigen Kapitel kann auch die XML Konfigurationsdatei direkt mit jedem beliebigen Texteditor bearbeitet wer den Sie befindet sich im Hauptverzeichnis der Web Anwendung und tr gt den Namen conf xml Allerdings muss nach nderungen die Servlet Engine neu gestartet werden damit die Datei neu eingelesen wird Au erdem ist darauf zu achten dass die XML Datei wohlgeformt bleibt sonst kann der XML Parser sie nicht mehr lesen In diesem Fall wird die fehlerhafte Konfigurationsdatei umbenannt und vom WebDAV Servlet eine neue Konfigurationsdatei ohne Netzlaufwerke erzeugt Sie kann dann f r weitere Konfigurationsarbeiten genutzt werden Auf Grund der gerade beschriebenen m
2. 3 10 Java Standards 2A Grog 2 eg lt p tg cane RAD Oe A he RER 37 3 10 1 Java Beans te Bee nth de Beat Wa EE He Book aime 37 310 2 Jaya Servlets arn does Gye EEE PS a e 39 3 10 3 JavaServer Pages JSP 22 2000 40 3 10 4 XML mit Java erg Been Oe PR EA OR eG 42 3 10 5 Web Anwendungen 43 4 Implementierung und Test 47 Al WE EE 47 4 2 Das WebDAV Servlet 48 4 3 Zugriff auf CIES Laufwerke ser Se Ha ara era ol 4 4 Verwaltung der Konfigurationsdateien 54 4 5 Authentifizierung ber LDAP 57 4 6 Aufteilung in Archive E ak Ata eo ae A 59 4 6 1 Lizenzen der Pakete e 60 4 7 Test des Systems ua An ae ae e 60 4 8 Zusammenfassung EE 63 5 Benutzung des Systems 65 5 1 Benutzerhandbuch e aoa Gee EE EE E 65 5 1 1 Zugriff mit einem Webbrowser 65 5 1 2 Zugriff mit einem WebDAV Client 68 5 2 Administration des Systems 71 5 2 1 Installation des Systems 71 5 2 2 Administration ber die HTML Oberfl che 74 5 2 3 Direkte Bearbeitung der Konfigurationsdatei 75 Literaturverzeichnis 77 A Urspr ngliche Aufgabenstellung 83 B GNU General Public License 85 Bj Vorwort 2 Aalt 2 8 een ee er Dr ee ee 85 B 2 Allgemeine ffentliche GNU Lizenz 87 B 2 1 Keine Gew hrleistung 92 C Erkl rung 95 Kapitel 1 Analyse der Anforderungen Da gro e Teile dieser Analyse schon durch die Aufgabenstellung vorgegeben waren f llt dieses Kapitel relativ
3. lt body gt lt HTML gt Eine Liste aller erlaubten und notwendigen Tags ist in der Spezifikation der aktuellen HTML Version 4 01 in HTML 4 01 enthalten Eine gute Einf h rung in die HTML Programmierung ist M nz das auch kostenlos ber das Internet gelesen werden kann Entworfen wurde HTML schon Ende der achtiger Jahre am CERN in Genf zur Pr sentation von wissenschaftlichen Dokumenten Schnell kam aber der Wunsch der Benutzer auf nicht nur statische Dokumente lesen zu k nnen sondern auch interaktiv deren Inhalt beeinflussen zu k nnen Ein wichtiges und auch das heute am h ufigsten eingesetzte Anwendungsgebiet ist die Ab frage von Datenbanken mit Hilfe eines Webbrowsers Der Benutzer f llt ein Formular aus schickt die eingegebenen Werte an einen Webserver und erh lt eine dynamisch erzeugte HTML Seite als Antwort zur ck 3 2 CASCADING STYLE SHEETS CSS 15 Zur Eingabe von Informationen in Formulare stehen verschiedene Elemente zur Verfiigung e Textinformation wie zum Beispiel ein Name oder eine Anschrift k n nen in Textfeldern oder mehrzeiligen Textboxen eingegeben werden e Zur Auswahl von mehreren M glichkeiten zum Beispiel der Versandart bei einer Online Bestellung gibt es Auswahllisten oder so genannte Ra diokn pfe engl radio buttons von denen nur einer ausgew hlt werden kann Neuere HTML Versionen wie die aktuelle Version 4 0 siehe HTML 4 01 unterst tzen neben den traditionellen Eingabeme
4. Content type text xml charset utf 8 Content Length xxxx lt xml version 1 0 encoding utf 8 gt lt D propfind xmlns D DAV gt lt D prop xmlns R http www foo bar boxschema gt lt R bigbox gt lt R author gt lt R DingALing gt lt R Random gt lt D prop gt lt D propfind gt Als Antwort auf diese Anfrage k nnte zum Beispiel folgendes geliefert werden HTTP 1 1 207 Multi Status Content Type text xml charset utf 8 Content Length xxxx lt xml version 1 0 encoding utf 8 gt lt D multistatus xmlns D DAV gt lt D response gt lt D href gt http www foo bar file gt lt D propstat gt lt D prop xmlns R http www foo bar boxschema gt lt R bigbox gt lt R BoxType gt Box type A lt R BoxType gt lt R bigbox gt lt R author gt lt R Name gt J J Johnson lt R Name gt lt R author gt lt D prop gt bezeichnet 3 5 VERSCHLUSSELUNG 23 lt D status gt HTTP 1 1 200 OK lt D status gt lt D propstat gt BEE lt D response gt lt D responsedescription gt lt D responsedescription gt lt D multistatus gt Die Erweiterung um neue HTTP Methoden kann zu Problemen f hren wenn die Anfrage ber einen Proxy an den Webserver weitergeleitet wird Ein Proxy ist unter Umst nden mit den Erweiterungen nicht vertraut und weigert sich nicht HTTP konforme Anfragen durchzureichen und meldet stattdessen einen Fehler an der Webbrowser zur ck Durch diese Art der
5. gt nachdem der Server zuvor eine Authentifizierung gefordert hat Hierbei gibt es zwei Arten 1 Die einfachere Art bertr gt den Benutzernamen und das zugeh rige Passwort fast im Klartext ber das Netzwerk Diese beiden Daten wer den lediglich durch einen Doppelpunkt getrennt zusammengef gt und nach dem Base64 Standard wie in RFC 2617 beschrieben kodiert Bei dieser Basic Authentifizierung genannten Methode hat der Webserver die M glichkeit das Passwort wieder im Klartext zu ge winnen Es kann dann zum Beispiel von einem Skript das dynamische Webseiten erstellt zum Login bei einem Datenbankzugriff verwendet werden Diese Methode hat aber auch den Nachteil dass jeder der die HTTP Verbindung mith rt unberechtigten Zugang zu dem Benutzernamen und dem Passwort erlangen kann Solch ein Angriff kann an jedem Netzwerkknoten oder jeder Leitung auf dem Weg vom Client zum Ser ver erfolgen 3 4 WEBDAV ALS ERWEITERUNG ZU HTTP 19 2 Die Digest Authentifizierung hingegen verwendet einen sicheren Hash Algorithmus und sendet ber das Netzwerken nur eine Pr fsumme aus der das unverschl sselte Passwort nicht mehr ermittelt werden kann Damit der Webserver aber dennoch feststellen kann ob der Benutzer das korrekte Passwort eingegeben hat muss er lokal das Passwort im Klartext gespeichert haben Er wendet auf dieses Passwort den selben Hash Algorithmus an und vergleicht das Ergebnis mit dem vom Client bermittelten Wert
6. lt login config gt lt web app gt Wenn ein Web Archiv in das Anwendungsverzeichnis eines Webservers ko piert wird steht diese Anwendung sofort unter dem Namen des Archivs zur Verf gung Wenn also die Datei webdav jar installiert wird kann die darin enthaltene Anwendung auf dem Webserver unter dem Pfad webdav genutzt werden F r diesen Pfad und alle darunter liegenden Verzeichnisse gelten dann die Konfigurationseinstellungen aus der Datei WEB INF web xml im Web Archiv 46 KAPITEL 3 VERWENDETE STANDARDS UND TECHNOLOGIEN Kapitel 4 Implementierung und Test 4 1 berblick Die Grundstruktur des Komplettsystems wurde schon in Abschnitt 2 2 er l utert Nun wird das WebDAV Servlet das in dem Diagramm in Abschnitt 2 2 rechts dargestellt ist n her besprochen Die dabei eingesetzten Proto kolle und Technologien sind im vorherigen Kapitel allgemein erkl rt ihre Funktionsweise wird daher hier als bekannt vorausgesetzt Etwas detaillierter dargestellt hat das WebDAV Servlet vier Komponenten die alle ber die Hauptkomponente die selber das WebDAV und HTTP Protokoll implementiert miteinander kommunizieren Die folgenden Abschnitte widmen sich diesen Komponenten gefolgt von ei nem Abschnitt ber die Aufteilung dieses Systems in Debian Pakete und in Web Archive und schlie lich besch ftigt sich ein letzter Abschnitt vor der Zusammenfassung mit Testl ufen Den genaue Aufbau zusammen mit den jeweils vorhandenen Unterkomp
7. verbunden dass dieses Zuordnungsverfahren hier nicht verwendet werden kann Stattdessen wird die eigene Klasse ContextMapper eingesetzt die die Zuordnung anhand der Konfigurationsdatei durchf hrt Dieses Konfigurati onsschema wird im bern chsten Abschnitt erl utert 50 KAPITEL 4 IMPLEMENTIERUNG UND TEST Damit ergibt sich folgendes Zusammenspiel der Klassen DefaultServlet Ls service v id FileResources WebDA VServlet CSCS service vdid LT ContextMapper SS Jede Anfrage eines Browsers oder eines WebDAV Clients an die Anwendung wird an das WebDAV Servlet weitergeleitet Dies wird durch einen entspre chenden Eintrag in der Konfigurationsdatei f r die Web Anwendung sicher gestellt Das Servlet ermittelt nun aus dieser Anfrage die HTTP Methode und die angeforderte Datei Falls es sich um eine reine HT TP Anfrage handelt also die Methode GET oder POST verwendet wurde wird die Anfrage an die Oberklasse DefaultServlet weitergeleitet Im anderen Fall wird sie direkt in der WebDAVServlet Klasse abgearbeitet und je nach Methode an ein Unterprogramm verwiesen Dazu wird die service Methode der Klasse HTTPServlet berschrieben um zuerst auch noch die Authentifizierung durchzuf hren protected void service HttpServletRequest req HttpServletResponse resp throws ServletException IOException String method req getMethod Die richtige Funktion fiir jede HTTP Methode aus
8. 2 2 SSL 3 0 Tomcat X 509 LITERATURVERZEICHNIS R Fielding et al Hypertext Transfer Protocol HTTP 1 1 The Internet Engineering Task Force 1999 http www ietf org rfc rfc2616 txt J Franks et al HTTP Authentication Basic and Digest Access Authentica tion The Internet Engineering Task Force 1999 http www ietf org rfc rfc2617 txt M Wahl H Alvestrand J Hodges R Morgan Authentication Methods for LDAP The Internet Engineering Task Force 2000 http www ietf org rfc rfc2829 txt Dr Andrew Tridgell et al The Samba project an OpenSource SMB CIFS implemen tation http de samba org samba samba html David Megginson SAX Simple API for XML Version 2 0 http www megginson com SAX Bruce Schneier Applied Cryptography 2nd Edition Wiley 1996 James Duncan Davidson Danny Coward Java Servlet Specification Version 2 2 Sun Microsystems Inc 1999 http java sun com products servlet Alan O Freier Philip Karlton Paul C Kocher The SSL Protocol Version 3 0 Netscape Corporation 1996 The Apache Jakarta Project Tomcat Java Servlet 2 2 and JavaServer Pages 1 1 Reference Implementation Version 3 2 http http jakarta apache org tomcat index html X 509 The Directory Authentication Framework ITU T Recommendation 1988 LITERATURVERZEICHNIS 81 Xerces XHTML 1 0 XML 1 0 XML Schema XSLT The Apache XML Project Xerces Java XML Parser Version 1
9. 7Cookies sind in der HTTP Spezifikation RFC 2616 erl utert 8Eine davon ist zum Beispiel das Modul HTML EP das auf jedem Perl Mirror zu finden ist 3 10 JAVA STANDARDS 41 spezifiziert die standardisierte Methode Das eigentliche Problem n mlich eine saubere Trennung zwischen HTML Struktur und Programmlogik ist damit noch nicht gel st Ob nun HTML Code innerhalb eines Programms oder Programmfragmente innerhalb einer HTML Datei verwendet werden spielt bei komplexen Dokumenten keine Rol le In beiden F llen entsteht eine Datei die praktisch nicht wartbar ist Um diese Trennung dennoch zu erreichen kann man in den JSP Dateien ausschlie lich Java Beans und einfache Kontrollstrukturen wie zum Beispiel for oder if Anweisungen einsetzen Der gr te Teil der Programmlogik ist hier in den Methoden der Beans enthalten und dadurch vollstandig vom HTML Code getrennt Das folgende Beispiel demonstriert die Einbindung eines Java Beans in eine JSP Seite und den Zugriff auf Eigenschaften dieses Beans Au erdem wird noch Java Code direkt innerhalb der Tags lt und gt eingef gt lt html gt lt head gt lt title gt JSP Beispiel lt title gt lt head gt lt body gt lt jsp useBean id clock scope page class JspCalendar type JspCalendar gt Day of month lt jsp getProperty name clock property day0fMonth gt Year lt jsp getProperty name clock property year gt el lt for int i
10. Authorization Header wie in Abschnitt 3 3 1 beschrieben ermittelt werden Benutzername und Passwort aus dem HTTP Header Authorization ermitteln Dieses Verfahren funktioniert nur bei der basic Authnetifizierung String user String password String auth req getHeader Authorization if auth null try Zuerst Basic am Anfang abschneiden auth new String new sun misc BASE64Decoder decodeBuffer auth substring 6 Das Format ist username password int index auth indexOf user auth substring 0 index password auth substring index 1 catch IOException e wird ignoriert wenn sie auftritt bleiben user und password einfach leer 4 6 AUFTEILUNG IN ARCHIVE 59 Diese beiden Daten werden dann nach dem Verfahren aus 3 6 berpr ft Dazu ist nur ein Methodenaufruf aus den Mozilla Klassen notwendig Er liefert true zur ck wenn Benutzername und Passwort g ltig sind Die Authentifizierung ber LDAP wird nur verwendet um die Liste der zu g nglichen Netzlaufwerke eines Benutzers zu sch tzen Die Daten die mit dem obigen Beispiel gewonnen wurden werden au erdem f r den Zugriff auf die CIFS Laufwerke in der Klasse CifsLogin verwendet wie in Abschnitt 4 3 beschrieben 4 6 Aufteilung in Archive Um eine einfache Installation wie in der Aufgabenstellung gefor dert zu erm glichen wurden alle ben tigten Komponenten in Debian Pakete aufgetei
11. Dokumenten mit einem abschlie enden Schr gstrich gekennzeichnet werden Das HTML Beispiel aus Abschnitt 3 1 ist kein g ltiges XML Dokument es kann jedoch leicht zu einem umgewandelt werden Der Standard f r solche Dokumente hei t 30 KAPITEL 3 VERWENDETE STANDARDS UND TECHNOLOGIEN XHTML und in XHTML 1 0 definiert Er wird von den aktuellen Versio nen der g ngigen Webbrowser ohne Probleme unterst tzt Als Beispiel f r ein XHTML Dokument folgt nun das modifizierte und gek rzte oben schon angesprochene HTML Dokument lt xml version 1 0 encoding UTF 8 gt lt DOCTYPE html PUBLIC W3C DTD XHTML 1 0 Strict EN DTD xhtmli strict dtd gt lt html xmlns http www w3 org 1999 xhtm1 xml lang de lang de gt lt head gt lt link rel stylesheet type text css href stylei css gt lt title gt Einfaches HTML Beispiel lt title gt lt head gt lt body gt lt hi gt Uberschrift des Beispiels lt h1 gt lt p gt Hier ein Textabsatz lt p gt lt img alt height 80 width 80 src bild1 jpg gt lt body gt lt html gt 3 8 2 XSLT XML Dokumente bieten neben der M glichkeit sie einfach erstellen und ein lesen zu k nnen noch ein standardisiertes Verfahren zur Bearbeitung Dabei werden wohlgeformte XML Dokumente in andere wohlgeformte Dokumente oder in ein beliebiges anderes Format umgewandelt Durch die erste Variante ist es zum Beispiel sehr einfach m glich nicht kompatible Konfigurations
12. Hors Ian Jacobs HTML 4 01 Specification World Wide Web Consortium W3C 1999 http www w3 org TR htm14 Jason Hunter William Crawford Java Servlet Programming O Reilly 1998 Norbert Hranitzky Java Klassen fiir einen CIFS Client Version 1 1 http www hranitzky purespace de jcifs jcifs htm International Organization for Standardization Information processing Text and Office Systems Standard Generalized Markup Language SGML ISO Standard 8879 Genf 1986 International Organization for Standardization Information Processing Systems Open Systems Inter connection The Directory Overview of Concepts Models and Service X 500 ISO Standard 9594 1 Genf 1988 Ian Jackson et al Debian Packaging Manual Software in the Public Interest Inc 1996 http www debian org doc packaging manuals Eduardo Pelegri Llopart Larry Cable JavaServer Pages TM Specification Version 1 1 Sun Microsystems Inc 1999 http java sun com products jsp download html Paul J Leach Dilip C Naik A Common Internet File System CIFS 1 0 Protocol Microsoft Corporation 1997 http www cifs com spec html Miodrag Kekic et al Netscape Directory SDK for Java Version 4 1 The Mozilla Organization 2000 http www mozilla org directory javasdk html LITERATURVERZEICHNIS 79 M nz NPL 1 1 RFC 959 RFC 2045 RFC 2246 RFC 2251 RFC 2307 RFC 2396 RFC 2518 Stefan M nz Wolfgang
13. In diesem Fall ist es nicht m glich auf externe Authentifizierungsver fahren zum Beispiel den Verzeichnisdienst LDAP zur ckzugreifen da man hierf r in der Regel das unverschl sselte Passwort ben tigt Da bei der zu implementierenden Web Oberfl che auf Daten von ex ternen Dateiservern zugegriffen werden muss kann hier nur die Basic Authentifizierung verwendet werden Die Authentifizierung bei diesen Datei servern geschieht zwar ber ein verschl sselt bertragenes Passwort aber der Verschl sselungsalgorithmus ist mit dem der Digest Authentifizierung nicht identisch Der Webserver ist daher darauf angewiesen das Passwort des Be nutzers im Klartext zu kennen da er es selber nicht entschl sseln und mit einem anderen Verfahren neu verschl sseln kann Damit nun auf der Verbindungsstrecke zwischen Webbrowser und Webserver das Passwort nicht mitgeh rt werden kann wird dringend empfohlen hier nur eine verschl sselte Verbindung nach dem SSL Standard einzusetzen Details dieser Verschl sselungsart werden im Abschnitt 3 5 behandelt 3 4 WebDAV als Erweiterung zu HTTP Wie im vorherigen Abschnitt schon erl utert wird bei einer Anfrage nach dem HTTP Standard eine bertragungsmethode angegeben In den meisten F llen lautet diese GET oder POST es besteht hier aber die M glichkeit HTTP beliebig zu erweitern und neue Methoden einzuf hren Genau dieser Weg wird bei WebDAV wie in der Spezifikation unter RFC 2518 beschrieben
14. Nefzger HTML 4 0 Handbuch Franzis Verlag 1998 http www netzwelt com selfhtm1 The Netscape Public License Version 1 1 Netscape Corporation 1999 http www mozilla org MPL NPL 1 1 html J Postel J Reynolds File Transfer Protocol FTP The Internet Engineering Task Force 1985 http www ietf org rfc rfc959 txt Ned Freed Nathaniel S Borenstein Multipurpose Internet Mail Extensions MIME Part One Format of Internet Message Bodies The Internet Engineering Task Force 1996 http www ietf org rfc rfc2045 txt T Dierks C Allen The TLS Protocol Version 1 0 The Internet Engineering Task Force 1999 http www ietf org rfc rfc2246 Lt M Wahl T Howes S Kille Lightweight Directory Access Protocol LDAP v3 The Internet Engineering Task Force 1997 http www ietf org rfc rfc2251 txt Luke Howard An Approach for Using LDAP as a Network Information Service The Internet Engineering Task Force 1998 http www ietf org rfc rfc2307 txt T Berners Lee R Fielding U C Irvine L Masinter Uniform Resource Identifiers URI Generic Syntax The Internet Engineering Task Force 1998 http www ietf org rfc rfc2396 txt Y Goland E Whitehead A Faizi S Carter D Jensen HTTP Extensions for Distributed Authoring WEBDAV The Internet Engineering Task Force 1999 http www ietf org rfc rfc2518 txt 80 RFC 2616 RFC 2617 RFC 2829 Samba SAX 2 0 Schneier Servlet
15. Web Anwendung eingefiigt werden Dadurch kann jede Anwendung Klassen un ter dem gleichen Namen enthalten die sich gegenseitig nicht beeinflussen Dies ist zum Beispiel sinnvoll wenn unterschiedliche Ver sionen einer Klassenbibliothek verwendet werden miissen WEB INF web xml Konfigurationsdatei f r die Servlet Engine Die Konfigurationsdatei f r den Webserver im WEB INF Verzeichnis ist wie die Dateiendung schon vermuten l sst eine XML Datei In ihr lassen sich alle Einstellungen die global f r den ganzen Webserver konfiguriert wer den k nnen f r die betreffende Web Anwendung berschreiben Ein kleiner Ausschnitt aus einer solchen Datei demonstriert die Regelung von Zugriffs rechten 3 10 JAVA STANDARDS 45 lt xml version 1 0 encoding ISO0 8859 1 gt lt DOCTYPE web app PUBLIC Sun DTD Web Application 2 2 EN http java sun com j2ee dtds web app_2_2 dtd gt lt web app gt lt security constraint gt lt web resource collection gt lt web resource name gt Protected Area lt web resource name gt lt url pattern gt webdav lt url pattern gt lt http method gt DELETE lt http method gt lt http method gt GET lt http method gt lt web resource collection gt lt auth constraint gt lt role name gt admin lt role name gt lt auth constraint gt lt security constraint gt lt login config gt lt auth method gt BASIC lt auth method gt lt realm name gt Admin lt realm name gt
16. des Servlets samt seiner im vorigen Kapi tel dargestellten Komponenten Teilweise kann auch hier auf bereits erh ltli che Open Source Software zur ckgegriffen werden Zum Beispiel gibt es f r den Zugriff auf CIFS Netzlaufwerke schon fertige Klassen deren Schnittstelle jedoch an die Anforderungen angepasst werden musste Auch zum Einlesen und Schreiben der XML Konfigurationsdateien existieren wie bereits im vo rigen Kapitel erw hnt direkt verwendbare Klassen Die hierbei im Einzelnen eingesetzten Standards und Technologien werden im n chsten Kapitel behandelt Detailliertere Informationen und die komplet ten Spezifikationen befinden sich in den im Literaturverzeichnis angegebenen Quellen Kapitel 3 Verwendete Standards und Technologien 3 1 Formulare in HTML HTML die Hypertext Markup Language ist eine so genannte Auszeich nungssprache engl markup language die im Internet zur Gestaltung von Webseiten eingesetzt wird Mit ihrer Hilfe wird die logische Struktur eines Dokuments beschrieben also Teile wie berschriften Tabellen und Verwei se auf andere Dokumente Urspr nglich war es nicht vorgesehen das genaue Layout eines Dokuments mit HTML festzulegen spezielle Erweiterungen von Netscape und Microsoft haben sp ter aber auch dies erm glicht Ein HTML Dokument besteht aus ASCII Text und so genannten Steuerbe fehlen engl tags die durch spitze Klammern markiert werden Das gesamte Dokument besteht also nur aus reine
17. des XML Parser Xerces eingesetzt Diese ruft nach dem Callback Verfahren f r jedes gefundene Anfangs und Ende Tag die Metho den startElement bzw endElement auf innerhalb derer dann die ein zelnen ContextElement Beans mit Werten gef llt werden 5 Xerces ist eine Entwicklung des Apache XML Projekts und unter einer Open Source Lizenz im Internet unter Xerces verf gbar 56 KAPITEL 4 IMPLEMENTIERUNG UND TEST Instanzvariablen ContextElement ce String elemnt Kass public void startElement String namespaceURI String localName String rawName Attributes atts throws SAXException In der Instanzvariablen element wird das gerade bearbeitete Tag gespeichert element localName if localName equals cifsdrive Beginn eines neuen Netzlaufwerks ce new ContextElement public void characters char ch int start int end throws SAXException Der Text zwischen Anfangs und Ende Tag wird hier im aktuellen ContextElement gespeichert String s new String ch start end if element equals path ce setPath s if element equals description ce setDescription s 4 5 AUTHENTIFIZIERUNG UBER LDAP 97 Die Klasse ContextAdmin bietet schlie lich die HTML Schnittstelle zur gra fischen Administration des Systems Sie holt vom ContextManager die Liste aller Netzlaufwerke stellt diese in einer HTML Tabelle dar und erlaubt so deren Bearbeitung Ein Beispiel f r
18. die Ausgaben des Programms unterliegen dieser Lizenz nur wenn der Inhalt ein auf dem Programm basierendes Datenwerk darstellt unabh ngig davon da die Ausgabe durch die Ausf hrung des Programmes erfolgte Ob dies zutrifft h ngt von den Funktionen des Programms ab 81 Sie d rfen auf beliebigen Medien unver nderte Kopien des Quelltex tes des Programms wie sie ihn erhalten haben anfertigen und verbreiten Voraussetzung hierf r ist da Sie mit jeder Kopie einen entsprechenden Copyright Vermerk sowie einen Haftungsausschlu ver ffentlichen alle Ver merke die sich auf diese Lizenz und das Fehlen einer Garantie beziehen un ver ndert lassen und desweiteren allen anderen Empf ngern des Programms zusammen mit dem Programm eine Kopie dieser Lizenz zukommen lassen 88 ANHANG B GNU GENERAL PUBLIC LICENSE Sie diirfen fiir den eigentlichen Kopiervorgang eine Gebiihr verlangen Wenn Sie es wiinschen diirfen Sie auch gegen Entgeld eine Garantie fiir das Pro gramm anbieten 2 Sie d rfen Ihre Kopie n des Programms oder eines Teils davon ver n dern wodurch ein auf dem Programm basierendes Datenwerk entsteht Sie d rfen derartige Bearbeitungen unter den Bestimmungen von Paragraph 1 vervielf ltigen und verbreiten vorausgesetzt da zus tzlich alle im folgenden genannten Bedingungen erf llt werden a Sie m ssen die ver nderten Dateien mit einem auff lligen Vermerk ver sehen der auf die von Ihnen vorgenommene Modifizi
19. diese Darstellung befindet sich im Hand buch f r Administratoren in Kapitel 5 2 Zusammengefasst sind also die im nachfolgenden Schaubild dargestellten Klassen f r die Verwaltung der Konfiguration zust ndig DefaultServlet WebDA VServlet N XMLParser a ConfigAdmin Po ConfigReader Po Config Writer SS a E ContextMapper O l Po ContextElement EE 4 5 Authentifizierung ber LDAP F r Zugriffe auf LDAP Server existieren schon eine Reihe von Klassen die vom Mozilla Projekt abstammen Sie bieten von LDAP Abfragen bis hin zu Ziel dieses Projekts ist die Weiterentwicklung des von Netscape ver ffentlichten Quellcodes ihres Browsers Communicator In einem Teilprojekt wurden dabei LDAP Bibliotheken f r diverse Programmiersprachen erstellt und im Internet frei zug nglich gemacht 98 KAPITEL 4 IMPLEMENTIERUNG UND TEST Ver nderungen der Daten alle M glichkeiten die das LDAP Protokoll selber zur Verf gung stellt Mit ihrer Hilfe ist die Authentifizierung von Benutzern durch ein LDAP Verzeichnis m glich Daf r musste lediglich eines der in Mozilla enthalte nen Beispiele leicht angepasst und eine Methode checkAuth implemen tiert werden Diese Methode erwartet als Parameter eine Instanz der Klas se HttpServletRequest aus der alle Daten der HTTP Anfrage ermittelt werden Der Benutzername kann direkt durch getRemoteUser gewonnen werden das Passwort muss aber aus dem
20. ein Schema zusammen mit einer XML Eingabedatei verwenden um deren syntaktische Korrektheit zu garantieren Das folgen de Beispiel stellt einen Ausschnitt eines XML Schemas zur Definition von digitalen Unterschriften in XML dar lt xml version 1 0 gt lt DOCTYPE schema SYSTEM http www w3 org 1999 XMLSchema dtd lt ENTITY dsig http www w3 org 2000 02 xmldsig gt E lt schema targetNamespace amp dsig 3 9 DEBIAN PAKETE 33 version 0 1 xmlns http www w3 org 1999 XMLSchema xmlns ds amp dsig elementFormDefault qualified gt lt Basic Types Defined for Signatures gt lt simpleType name CryptoBinary base binary gt lt encoding value base64 gt lt simpleType gt lt Start Signature gt lt element name Signature gt lt complexType content elementOnly gt lt sequence minOccurs 1 maxOccurs 1 gt lt element ref ds SignedInfo minOccurs 1 maxOccurs 1 gt lt element ref ds SignatureValue minOccurs 1 maxOccurs 1 gt lt element ref ds KeyInfo minOccurs 0 maxOccurs 1 gt lt element ref ds Object minOccurs 0 maxOccurs unbounded gt lt sequence gt lt attribute name Id type ID gt lt complexType gt lt element gt 3 9 Debian Pakete Bei Unix Systemen ist es tiblich Software als tar Archive die eventuell auch
21. einen ffentlichen Konstruktor besitzen der keine Parameter erwartet Nur so ist es m glich eine Instanz dieser Klasse zu erzeugen ohne ihre genauen Eigenschaften zu kennen e Die Bean Klasse muss serialisierbar sein das hei t sie muss das Inter face Serializable aus dem Paket java io implementieren 38 KAPITEL 3 VERWENDETE STANDARDS UND TECHNOLOGIEN e Der Aufbau der Klasse insbesondere die Namen der Methoden miissen den Design Patterns der Java Beans Spezifikation gen gen Methoden zum Lesen und Setzen von Eigenschaften m ssen zum Beispiel mit get bzw set beginnen Ein einfaches Beispiel f r ein Bean mit nur einem einzigen Attribut und den zugeh rigen Methoden zur Manipulation dieses Attributs ist folgende Klasse import java io Serializable public class Person implements Serializable Attribute bzw Properties private String name Konstruktoren public Person public Person String name this name name Methoden zum Zugriff auf die Attribute public String getName return this name public void setName String name this name name Die Kommunikation zwischen einzelnen Beans geschieht im Wesentlichen ber Ereignisse engl events wie es auch schon bei den grafischen Ober fl chen AWT und Swing der Fall ist Alle Beans die an Ereignissen in einer 3 10 JAVA STANDARDS 39 anderen Bean interessiert sind registrieren sich bei dieser als so genannte EventListener B
22. geheimen privaten Schliis sel und einen zugeh rigen ffentlichen Schl ssel Daten die mit einem 6ffent lichen Schl ssel kodiert wurden k nnen nur mit dem zugeh rigen privaten Schl ssel wieder entschl sselt werden So kann ein Rechner der mit einem anderen kommunizieren will einfach den ffentlichen Schl ssel dieses Rech ners anfordern und seine Daten mit diesem verschl sseln In der Praxis wird typischerweise aus Geschwindigkeitsgr nden eine Kom bination aus beiden Verfahren eingesetzt Zuerst wird mit einem asymme trischen Verfahren ein so genannter Verbindungsschl ssel bertragen mit dessen Hilfe dann die restliche Kommunikation symmetrisch verschl sselt wird Eine detaillierte Beschreibung der gebr uchlichen Verschl sselungsverfahren und ihrer mathematischen Grundlagen findet sich in Schneier 3 5 2 Kryptografische Authentifizierung Ein asymmetrisches Schl sselpaar l sst sich nicht nur zur Verschl sselung sondern auch f r digitale Unterschriften nutzen Dazu werden diese beiden Schl ssel einfach vertauscht Der geheime private Schl ssel wird zur Kodie rung verwendet und der ffentliche Schl ssel zur Dekodierung Wenn der bertragene Text erfolgreich entschl sselt werden konnte ist dies ein Anzei chen daf r dass er nur vom Inhaber des privaten Schl ssels stammen kann denn nur er hat Zugriff auf diesen Das einzige Problem dabei ist sicherzustellen dass ein Schl sselpaar wirk lich dem angeg
23. knapp aus Es erl utert nur die dortigen Angaben und zeigt die im Laufe des Projekts aufgetretenen und mit dem Betreuer abgestimmten nderungen auf Teile dieses Kapitels gehen durch die Vorgaben des Betreuers schon in die Entwurfsphase ber zum Beispiel bei der Wahl der Programmiersprache und der eintzusetzenden Technologien 1 1 Ist Zustand Umfeld In der Firma debis Systemhaus GEI mbH in Leinfelden Echterdingen ar beitet ein Teil der Mitarbeiter kurzzeitig oder ber einen l ngeren Zeitraum von zu Hause aus oder bei einem Kunden In beiden F llen besteht zwar die M glichkeit sich ber Modem oder ISDN in das interne debis Netzwerk einzuw hlen f r solche Fernzugriffe gelten jedoch strengere Richtlinien als f r lokale Zugriffe Konkret bedeutet dies dass sich solche Mitarbeiter in einem anderen Netz segment als an ihrem Arbeitsplatz befinden Dadurch ist kein direkter Zugriff auf Dateiserver am Arbeitsplatzes m glich da solche Zugriffe durch eine Fi rewall unterbunden werden Von diesem externen Netzsegment hat man nur Zugriff auf Rechner die auch von anderen Standorten aus erreichbar sind und hierbei auch nur auf spezielle freigeschaltete Dienste wie zum Beispiel einen Webserver 6 KAPITEL 1 ANALYSE DER ANFORDERUNGEN Einerseits ist die Anzahl der IP Adressen die vom ganzen Konzern aus er reichbar sind beschrankt andererseits ist es nicht gewiinscht allen Mitar beiter im gesamten debis Systemhaus Zugriff auf al
24. ndern oder zu ver breiten Diese Handlungen sind gesetzlich verboten wenn Sie diese Lizenz nicht anerkennen Indem Sie das Programm oder ein darauf basierendes Datenwerk ver ndern oder verbreiten erkl ren Sie Ihr Einverst ndnis mit dieser Lizenz und mit allen ihren Bedingungen bez glich der Vervielf ltigung Verbreitung und Ver nderung des Programms oder eines darauf basierenden Datenwerks 86 Jedesmal wenn Sie das Programm oder ein auf dem Programm ba sierendes Datenwerk weitergeben erh lt der Empf nger automatisch vom urspr nglichen Lizenzgeber die Lizenz das Programm entsprechend den hier festgelegten Bestimmungen zu vervielf ltigen zu verbreiten und zu ver n dern Sie d rfen keine weiteren Einschr nkungen der Durchsetzung der hier in zugestandenen Rechte des Empf ngers vornehmen Sie sind nicht daf r B 2 ALLGEMEINE FFENTLICHE GNU LIZENZ 91 verantwortlich die Einhaltung dieser Lizenz durch Dritte durchzusetzen 87 Sollten Ihnen infolge eines Gerichtsurteils des Vorwurfs einer Patent verletzung oder aus einem anderen Grunde nicht auf Patentfragen begrenzt Bedingungen durch Gerichtsbeschlu Vergleich oder anderweitig auferlegt werden die den Bedingungen dieser Lizenz widersprechen so befreien Sie diese Umst nde nicht von den Bestimmungen dieser Lizenz Wenn es Ihnen nicht m glich ist das Programm unter gleichzeitiger Beachtung der Bedin gungen in dieser Lizenz und Ihrer anderweitigen Verpflichtung
25. noch komprimiert sein k nnen auszuliefern Diese Archive enthalten jedoch au er den eigentlichen Programmdateien keine weiteren Informationen wie z B eine Beschreibung Daher haben sich in Linux Distributionen Pakete 34 KAPITEL 3 VERWENDETE STANDARDS UND TECHNOLOGIEN zur Verbreitung von Software durchgesetzt von denen zur Zeit die beiden Systeme rpm von RedHat und dpkg von Debian am h ufigsten im Einsatz sind Im Wesentlichen enthalten diese Pakete ein tar Archiv mit den Programmda ten und ein weiteres Archiv das die ganzen Steuerinformationen beinhaltet Zu den Steuerinformationen geh ren die Beschreibung die Abh ngigkeiten und Konflikte mit anderen Paketen sowie die Versionsnummer 3 9 1 Vorteile von Paketen Mit Hilfe eines oder mehrerer Systemkommandos die zur Grundausstattung einer Linux Distribution geh ren ist es m glich neue Pakete auf einfache Weise zu installieren Im Gegensatz zu Windows bei dem jedes Software produkt mit einer eigenen Installationsroutine ausgeliefert wird sind Linux Pakete nicht nur kleiner sondern auch einheitlich zu installieren und auch wieder einfach und vollst ndig zu entfernen Die Vorteile von Paketen im Vergleich zu einfachen tar Archiven oder propriet ren Installationsroutinen sind zusammengefasst e Pakete beinhalten sowohl eine Kurzbeschreibung als auch eine ausf hr liche Beschreibung die eine Suche in allen verf gbaren Paketen erm g licht und au erdem eine Klassifika
26. sofort auswirken Dies bedeutet dass zum Beispiel ein neues Netzlaufwerk f r alle folgenden Zugriffe verf gbar ist ohne den Webserver neu zu starten 2 2 Aufteilung des Systems in Komponenten Das Komplettsystem besteht im Wesentlichen aus einem Webserver der die dynamisch generierten Seiten an die Clients weiterleitet Zur Verschl sselung der bertragung ist es notwendig dass der Webserver den SSL Standard unterst tzt Au erdem muss er die M glichkeit bieten Java Servlets die mit der Java Version JDK 1 2 erstellt wurden einzubinden Die gesamte zu erstellende Anwendung besteht aus nur einem Servlet das f r jede Anfrage ber den Webserver aufgerufen wird Das Servlet selber besteht aus mehreren Komponenten wie im folgenden Diagramm dargestellt 12 KAPITEL 2 GROBENTWURF Webserver WedDAV Browser Servlet __ Konfigurationsverwaltlng _JServlet Eng E ol __ LDAP Authentisierpnp Die einzelnen Komponenten werden im Kapitel 4 1 Implementierung und Test im Detail erl utert 2 3 Zu entwickelnde Komponenten F r den Webserver mit SSL Modul und Servlet Engine kann auf bestehen de Produkte zur ckgegriffen werden Gerade in diesem Bereich gibt es frei erh ltliche Open Source Projekte deren Leistungsf higkeit sich gut mit kom merziellen Produkten messen lassen kann Die tats chlich im Rahmen dieser Arbeit ausgew hlten Komponenten sind aus Kapitel 4 1 ersichtlich Es bleibt also die Implementierung
27. 1 i lt 5 i gt lt p gt Dies ist Textzeile lt i gt lt p gt lt h h gt lt body gt lt html gt 42 KAPITEL 3 VERWENDETE STANDARDS UND TECHNOLOGIEN 3 10 4 XML mit Java XML Dokumente k nnen von allen Programmiersprachen aus ber zwei einheitliche Schnittstellen bearbeitet werden Von den meisten erh ltlichen XML Parsern werden beide Schnittstellen unterst tzt so dass je nach Bedarf die g nstigere gew hlt werden kann 1 Die SAX Schnittstelle ist wie ihr ausgeschriebener Name Simple API for XML schon andeutet die einfachere der beiden Varianten Sie un terst tzt nur das Einlesen von XML Dokumenten und erzeugt bei je dem gefundenen Tag ein Ereignis das dann individuell behandelt wer den kann Hierbei wird die XML Quelle sequenziell eingelesen und nicht komplett im Hauptspeicher gehalten Dadurch eignet sich SAX auch f r sehr gro e XML Dokumente 2 Die zweite Schnittstelle ist DOM das Document Object Model bei der ein XML Dokument komplett in den Arbeitsspeicher geladen und dort in seine Baumstruktur zerlegt wird Sie erm glicht im Gegenzug aber die direkte Manipulation der Baumstruktur so k nnen auf einfa che Weise neue Unterb ume eingef gt oder verschoben werden Durch einen einfachen Funktionsaufruf kann das ge nderte XML Dokument wieder gespeichert werden Der Zugriff und die Manipulation von DOM B umen ist sehr zeitauf w ndig Deshalb werden alle ben tigten Daten zur L
28. 2 0 http xml apache org xerces j index html Dave Raggett et al XHTML 1 0 The Extensible HyperText Markup Language World Wide Web Consortium W3C 2000 http www w3 org TR xhtml1 Tim Bray Jean Paoli C M Sperberg McQueen Eve Maler Extensible Markup Language XML 1 0 Second Edition World Wide Web Consortium W3C 2000 http www w3 org TR REC xml David C Fallside XML Schema Part 0 to 2 World Wide Web Consortium W3C 2000 http www w3 org XML Schema James Clark XSL Transformations XSLT Version 1 0 World Wide Web Consortium W3C 1999 http www w3 org TR xslt 82 LITERATURVERZEICHNIS Anhang A Ursprungliche Aufgabenstellung Ziel dieser Arbeit ist der sichere externe Zugriff von Mitarbeitern auf Daten eines oder mehrerer Projekte Dabei haben diese Mitarbeiter keinen direk ten Netzwerkzugriff auf den Dateiserver mit diesen Daten z B bei einer Einwahl ber ISDN werden durch Firewalls nur TCP IP Verbindungen zu einem Webserver gestattet Es soll daher eine Web Oberfl che entwickelt werden die den Benutzern mit Hilfe eines Standard Webbrowsers den Datenzugriff erlaubt Diese Oberfl che mu Operationen wie Download Upload L schen Umbenennen Verschie ben Setzen von Zugriffsrechten u s w erlauben also die Datei Operationen die auch der NT Explorer auf dem Windows Desktop zur Verf gung stellt Bei diesem Schema authentifizieren sich die Benutzer zuerst auf einer Web seite durch i
29. G 63 4 8 Zusammenfassung Bei diesem Projekt wurde auf zahlreiche Open Source Komponenten zurtick gegriffen ohne die es nur mit deutlich h herem Aufwand m glich gewesen w re Die folgende Tablle verdeutlicht das Verh ltnis zwischen selber entwi ckelten und wiederverwendeten Klassen Servlet 2 2 11163 Mozilla LDAP 4 1 51573 jCIFS 11 18556 Tomcat 3 2b6 56224 Eigene Klassen 6634 Die Spalte klassen enth lt auch Interfaces und abstrakte Klassen Bei den eigenen Klassen wurden auch stark ver nderte Klassen aus anderen Projekten gez hlt bei der Anzahl der Zeilen aber nur die tats chlich ge nderten Zeilen In der Aufstellung wurden alle Klassen dem Tomcat Projekts ber cksichtigt also auch die komplette Servlet Engine Damit entsprechen die Zahlen dem Gesamtsystem wie in Abschnitt 2 2 dargestellt Die LDAP Klassen bieten wesentlich mehr Funktionalit t als hier verwendet wurde deshalb werden f r die Summe nur 20 Prozent davon ber cksichtigt Somit besteht das ganze Projekt aus fast 400 Klassen mit ca 100 000 Code zeilen davon wurden aber nur ca 7 Prozent selber entwickelt 64 KAPITEL 4 IMPLEMENTIERUNG UND TEST Kapitel 5 Benutzung des Systems 5 1 Benutzerhandbuch 5 1 1 Zugriff mit einem Webbrowser Die einfachste Zugriffsmethode auf die Netzlaufwerke erfolgt mit einem Web browser zum Beispiel dem Netscape Communicator Dazu muss in das Adressfeld einfach die URL des WebDAV Servers eingetragen werden Hi
30. Instanz in einen XML Ausschnitt umgewandelt Die einzelnen Attribute der Klasse werden in XML Tags mit dem gleichen Namen umgewandelt und in Die Benutzernamen werden jeweils als String dargestellt 4 4 VERWALTUNG DER KONFIGURATIONSDATEIEN 59 nerhalb eines cifsdrive Tags gespeichert Alle cifsdrive Tags werden wie derum nacheinander innerhalb eines cifsconfig Tags das die Wurzel der XML Datei darstellt gespeichert Die gerade genannten Aufgaben bernimmt die statische saveConfig Methode in der Klasse ConfigWriter Der Inhalt der Konfigurationsdatei k nnte beispielsweise folgenden Aufbau haben lt xml version 1 0 gt lt cifsconfig gt lt cifsdrive gt lt path gt verwalt lt path gt lt description gt Netzlaufwerk der Verwaltung lt description gt lt url gt cifs fileservi verwaltung lt url gt lt domain gt NT DOM1 lt domain gt lt users gt tmuster hbeispiel theboss lt users gt lt cifsdrive gt lt cifsdrive gt Be lt cifsdrive gt lt cifsconfig gt Eingelesen werden kann eine solche Konfigurationsdatei durch die eben falls statische readConfig Methode der Klasse ConfigReader Ihr kann als Parameter ein Dateiname bergeben werden um verschiedene Konfi gurationsdateien zu erlauben Das Resultat ist beim erfolgreichen Einle sen eine neue Instanz der Klasse ConfigManager die wiederum eine Lis te aus ConfigElement Eintr gen enth lt Zur Analyse der Datei wird die SAX Schnittstelle
31. L Oberfl che mit den nachfolgend dargestellten Anwen dungsf llen als UML Diagramm HTML Oberfl che Datei runterladg Benutzer 10 KAPITEL 2 GROBENTWURF Das L schen von Dateien soll dabei durch Markieren aller zu l schen den Dateien und anschlie endem Bet tigen eines entsprechend markier ten Knopfs eines HTML Formulars geschehen Zum Hochladen engl upload von Dateien soll ebenfalls ein Knopf verwendet werden nach dessen Bet tigung ein Dialog zur Auswahl der hochzuladenden Da tei en erscheint Die zweite Zugriffsm glichkeit geschieht mit Hilfe eines WebDAV Clients der gegen ber der erste Methode weitere Operationen zul sst WebDAV Zugriff Datei Verz l schen Benutzer WebDAV Clients bieten eine eigene grafische Oberfl che die meist der des Windows Explorers nachempfunden ist Au erdem ist es mit aktu ellen Versionen von Microsoft Windows auch m glich auf WebDAV Verzeichnisse direkt mit dem Explorer zuzugreifen Als letzte nach au en sichtbare Schnittstelle ist f r Administratoren noch die M glichkeit zur Konfiguration des Systems ber Webbrowser zu reali sieren Diese Methode kann alternativ zur direkten Bearbeitung der XML Konfigurationsdateien gew hlt werden 2 2 AUFTEILUNG DES SYSTEMS IN KOMPONENTEN 11 HTML Oberfl che i hinzuftige end l schen Administrator er DZ _ nderungen die mit dieser Schnittstelle vorgenommen werden m ssen sich
32. Priifer Prof Dr rer nat Eggenberger Betreuer Dipl Inf Gawdi Azem begonnen am 15 April 2000 beendet am 14 November 2000 CR Klassifikation C 2 2 E 3 H 3 5 Diplomarbeit Nr 1859 Entwurf und Realisierung einer Web Oberflache zum sicheren Fernzugriff auf Projektdaten Stefan Gybas Institut f r Informatik Universit t Stuttgart Breitwiesenstra e 20 22 70565 Stuttgart Zusammenfassung Ziel dieser Arbeit war die Konzeption und Implementierung einer Web Oberfl che die den Zugriff auf Netzlaufwerke mit einem normalen Webbrow ser erm glicht Dabei sollen Dateien auf mehrerer verteilten Dateiservern her untergeladen hochgeladen oder gel scht werden k nnen Falls weitere Ope rationen wie zum Beispiel das Umbenennen von Dateien ben tigt werden kann dies mit einem WebDAV Client erreicht werden Die ersten beiden Kapitel beschreiben die Anforderungsanalyse die Aufga benstellung und den Grobentwurf Grundlagen der objektorientierten Pro grammierung und der Unified Modeling Language UML werden dabei vor ausgesetzt Das dritte Kapitel erl utert allgemein die eingesetzten Standards Protokolle und Technologien Im vierten Kapitel wird darauf aufbauend der Feinentwurf und die Implementierung des Projekts vorgestellt Das letzte Kapitel stellt schlie lich das Handbuch f r Benutzer und Adminis tratoren des Systems dar Sowohl zur Nutzung wie auch zur Konfiguration werden nur ein Webbrowser und Grundkenntniss
33. Protokollerweiterung ist es aber m glich auf ein und dieselbe URL Adresse mit einem Webbrowser und WebDAV Client zuzugrei fen Der Browser wird nach Eingabe der URL eine GET Anfrage an den Server schicken der WebDAV Client hingegen eine PROPFIND Methode Auf der Sei te des Servers kann dies entsprechend behandelt werden und je nach Client das korrekte Format zur ckgeliefert werden 3 5 Verschl sselung 3 5 1 Kryptografische Grundlagen Normale TCP IP Verbindungen im Internet bertragen die Steuer und Nutzdaten im Klartext das hei t ohne Verschl sselung Dadurch lassen sich sensible Daten wie zum Beispiel Passw rter an jedem Netzknoten oder an Verbindungen zwischen diesen abh ren mit deren Hilfe man dann unberech tigt Zugang zu Systemen erlangen kann Als Abhilfe wurden schon fr h Verschl sselungsalgorithmen entwickelt bei denen Sender und Empf nger dasselbe Verschl sselungspasswort verwenden Diese symmetrischen Verfahren haben jedoch den Nachteil dass beide Par teien sich zuvor ber einen sicheren Kanal auf ein Passwort verst ndigen m ssen Um ungewolltes Abh ren zu vermeiden wird f r jeden Partner ein eigener Schl ssel ben tigt Bei der Anzahl der Rechner die ber das Internet miteinander kommunizieren ist dies nicht realisierbar 24 KAPITEL 3 VERWENDETE STANDARDS UND TECHNOLOGIEN Daher wurden schon in den siebziger Jahren asymmetrische Verschliisselungs verfahren entwickelt Hierbei hat jede Partei einen
34. Verzeichnis META INF das Steuerinformationen beinhaltet Vor allem kann hier die Hauptklasse festgelegt werden die beim Start einer Applikation aufgerufen wird Mit dieser Technik ist es seit der Java Version JDK 1 1 m glich Anwendungen direkt aus JAR Archiven her aus zu starten ohne sie vorher zu entpacken Web Archive tragen typischerweise die Datei nderungen war und stellen ei ne Erweiterung der JAR Archive dar Sie enthalten au er dem META INF Verzeichnis noch ein zweites Verzeichnis WEB INF das unter anderem ei ne Konfigurationsdatei f r den Webserver enth lt Im Gegensatz zu JAR Archiven werden die Klassendateien nicht im Hauptverzeichnis sondern auch in einem Unterverzeichnis von WEB INF abgelegt Ein Web Archiv hat damit 44 KAPITEL 3 VERWENDETE STANDARDS UND TECHNOLOGIEN diesen Aufbau Hauptverzeichnis und Unterverzeichnisse f r den direkten Zugriff ber den Webser ver Hier k nnen beliebige Dateien abgelegt wer den die einfach an den Client geschickt wer den falls ihre Endung nicht mit einem Serv let in web xml verkn pft wurde META INF Informationen ber den Archiv Inhalt wie schon bei JAR Archiven WEB INF classes entpackte Klassendateien mit ihrer vollst n digen Paketstruktur Dieses Verzeichnis ist im Klassenpfad der je weiligen Anwendung und wird automatisch aktualisiert wenn sich eine Klasse in diesem Verzeichnis ndert WEB INF 1ib HAR Archive die in den Klassenpfad der
35. _1 2 0 2_all deb 637624 Nov 02 13 11 dav dav gt exit Connection closed Im nachsten Schritt wurde dann ein Zugriff auf einen Dateiserver unter Win dows NT versucht dies scheiterte jedoch wie schon in Abschnitt 4 3 erw hnt Nachdem nach mehrw chiger Fehlersuche auch dies funktionierte wurde der Windows Explorer zum WebDAV Zugriff getestet Hierbei traten ein paar Warnungen auf Grund von fehlerhaften XML Antworten auf diese konnten aber mit Hilfe der Log Protokolle schnell gefunden werden Bis zu diesem Zeitpunkt war die Konfiguration des Systems statisch im Programmcode verankert Nun ging es also darum eine XML Konfigurationsdatei einlesen und schreiben zu k nnen und die Liste aller verf gbaren Netzlaufwerke innerhalb von WebDAV Zugriffen anzuzeigen Diese Liste wurde angezeigt sobald ein g ltiger Benutzername eingegeben wurde da die LDAP Authentifizierung noch nicht implementiert war Zum Zugriff auf Daten von Netzlaufwerken selber war aber ein g ltiges Kenn wort erforderlich da diese berpr fung vom Dateiserver selber vorgenommen wird Nachdem alle internen Komponenten geschrieben waren wurden die HTML Oberfl chen zum Dateizugriff und zur Administration erstellt Getestet wur den sie mit dem Netscape Navigator 4 75 und dem Internet Explorer 5 0 um die Unabh ngigkeit von einem Browser Hersteller sicherzustellen Abbildun gen solcher Testl ufe befinden sich im Benutzerhandbuch in Kapitel 5 1 4 8 ZUSAMMENFASSUN
36. achtet wird 88 Wenn die Verbreitung und oder die Benutzung des Programms in be stimmten Staaten entweder durch Patente oder durch urheberrechtlich ge sch tzte Schnittstellen eingeschr nkt ist kann der Urheberrechtsinhaber der das Programm unter diese Lizenz gestellt hat eine explizite geographische Begrenzung der Verbreitung angeben in der diese Staaten ausgeschlossen 92 ANHANG B GNU GENERAL PUBLIC LICENSE werden so daf die Verbreitung nur innerhalb und zwischen den Staaten er laubt ist die nicht ausgeschlossen sind In einem solchen Fall beinhaltet diese Lizenz die Beschr nkung als w re sie in diesem Text niedergeschrieben 89 Die Free Software Foundation kann von Zeit zu Zeit berarbeitete und oder neue Versionen der General Public License ver ffentlichen Solche neuen Versionen werden vom Grundprinzip her der gegenw rtigen entspre chen k nnen aber im Detail abweichen um neuen Problemen und Anforde rungen gerecht zu werden Jede Version dieser Lizenz hat eine eindeutige Versionsnummer Wenn in ei nem Programm angegeben wird da es dieser Lizenz in einer bestimmten Versionsnummer oder jeder sp teren Version any later version unter liegt so haben Sie die Wahl entweder den Bestimmungen der genannten Version zu folgen oder denen jeder beliebigen sp teren Version die von der Free Software Foundation ver ffentlicht wurde Wenn das Programm keine Versionsnummer angibt k nnen Sie eine beliebige Versi
37. allation verwendeten Skripte Als besondere Ausnahme jedoch braucht der verteil te Quelltext nichts von dem zu enthalten was blicherweise entweder als Quelltext oder in bin rer Form zusammen mit den Hauptkomponenten des Betriebssystems Kernel Compiler usw geliefert wird unter dem das Pro gramm l uft es sei denn diese Komponente selbst geh rt zum ausf hrbaren Programm Wenn die Verbreitung eines ausf hrbaren Programms oder von Objectco de dadurch erfolgt da der Kopierzugriff auf eine daf r vorgesehene Stelle gew hrt wird so gilt die Gew hrung eines gleichwertigen Zugriffs auf den Quelltext als Verbreitung des Quelltextes auch wenn Dritte nicht dazu ge zwungen sind den Quelltext zusammen mit dem Objectcode zu kopieren 84 Sie d rfen das Programm nicht vervielf ltigen ver ndern weiter li zenzieren oder verbreiten sofern es nicht durch diese Lizenz ausdr cklich gestattet ist Jeder anderweitige Versuch der Vervielf ltigung Modifizierung Weiterlizenzierung und Verbreitung ist nichtig und beendet automatisch Ih re Rechte unter dieser Lizenz Jedoch werden die Lizenzen Dritter die von Ihnen Kopien oder Rechte unter dieser Lizenz erhalten haben nicht beendet solange diese die Lizenz voll anerkennen und befolgen 85 Sie sind nicht verpflichtet diese Lizenz anzunehmen da Sie sie nicht unterzeichnet haben Jedoch gibt Ihnen nichts anderes die Erlaubnis das Programm oder von ihm abgeleitete Datenwerke zu ver
38. asic Methode sonst leicht abh rbar w ren Allerdings hat dies auch zur Folge dass man beim Einsatz von einem Webser ver f r mehrere Domains eine eigene IP Adresse pro Domain ben tigt Die Information auf welche Domain zugeriffen werden soll wird erst mit einer HTTP Anfrage in einem Host Header bertragen m sste aber schon zu Beginn des SSL Protokolls vorliegen In der Zwischenzeit ist der Entwurf von SSL Version 3 0 als Internet Standard ausgelaufen das hei t SSL wurde nie zu einem formalen Standard Ein neuer Standard der auf SSL basiert namens TLS Transport Layer Security Ver sion 1 0 wurde als RFC 2246 mit geringen Erweiterungen eingereicht und steht kurz vor seiner Verabschiedung Jl Dieses Domains werden auch als virtuelle Hosts bezeichnet 3 6 LIGHTWEIGHT DIRECTORY ACCESS PROTOCOL LDAP 27 3 5 4 SSL Verbindungen ber HTTP Proxys Wie aus dem vorherigen Ablaufdiagramm ersichtlich ist erfordern SSL Verbindungen schon einen Datenaustausch bevor das eigentliche HTTP Protokoll zum Einsatz kommt Daher k nnen solche Verbindungen nicht einfach ber einen HTTP Proxy geleitet werden sondern m ssen speziell behandelt werden Um dies zu erreichen wurde eine neue HTTP Methode CONNECT eingef hrt die direkt eine TCP IP Verbindung zum Zielrechner aufbaut Diese Methode ist nicht Bestandteil der HTTP Spezifikation und wird nur bei der Kommu nikation eines Webbrowsers mit einem Proxy verwendet Der Proxy lei
39. aufzeit in normalen Java Objekten gespeichert Besonders beim Einsatz von Hash Tabellen ist dieser Weg deutlich schneller SAX und DOM sind beides universelle Schnittstellen die auch in Skript sprachen verwendet werden k nnen Deshalb ist ihr Aufbau nicht objektori entiert im Besonderen gibt es keine einfache M glichkeit ein Objekt in einem XML Baum umzuwandeln Hierbei k nnten alle Attribute eines Objekts in einem Unterbaum rekursiv gespeichert werden was im Prinzip der in Java schon vorhandenen Serialisierung entspricht 7 Da die Umwandlung von Objekten in XML Dateien selbst programmiert wer den muss w rde es keine Vorteile bringen wenn DOM verwendet wird Daher wird hier SAX eingesetzt und beim Einlesen der XML Datei einfach deren Inhalt in Java Objekte kopiert Die genaue Realisierung dieses Verfahrens zusammen mit ein Beispiel befindet sich im Kapitel 4 4 19Ihre Spezifikationen sind unter SAX 2 0 und DOM 1 0 verf gbar 20Fs gibt einige Ans tze um genau dies zu realisieren diese sind aber noch in einem experimentellen Stadium und wurden deshalb hier nicht verwendet 3 10 JAVA STANDARDS 43 3 10 5 Web Anwendungen Im Allgemeinen muss zur Installation von Anwendungen die iiber eine Web Oberfl che gesteuert werden die Konfiguration des Webservers abge ndert werden Typischerweise m ssen dazu bestimmte Dateien oder Verzeichnis se mit einem Skript oder Programm verkn pft werden Dieses Programm erzeugt dann j
40. ausschlie en da Distributoren eines freien Programms individuell Patente lizensieren mit dem Ergeb nis da das Programm propriet r w rde Um dies zu verhindern haben wir klargestellt da jedes Patent entweder f r freie Benutzung durch jedermann lizenziert werden mu oder berhaupt nicht lizenziert werden darf B 2 Allgemeine ffentliche GNU Lizenz Bedingungen f r die Vervielf ltigung Verbreitung und Bearbeitung 80 Diese Lizenz gilt f r jedes Programm und jedes andere Datenwerk in dem ein entsprechender Vermerk des Copyright Inhabers darauf hinweist da das Datenwerk unter den Bestimmungen dieser General Public License verbreitet werden darf Im folgenden wird jedes derartige Programm oder Datenwerk als das Programm bezeichnet die Formulierung auf dem Pro gramm basierendes Datenwerk bezeichnet das Programm sowie jegliche Be arbeitung des Programms im urheberrechtlichen Sinne also ein Datenwerk welches das Programm auch auszugsweise sei es unver ndert oder ver n dert und oder in eine andere Sprache bersetzt enth lt Im folgenden wird die bersetzung ohne Einschr nkung als Bearbeitung eingestuft Jeder Lizenznehmer wird im folgenden als Sie angesprochen Andere Handlungen als Vervielf ltigung Verbreitung und Bearbeitung wer den von dieser Lizenz nicht ber hrt sie fallen nicht in ihren Anwendungsbe reich Der Vorgang der Ausf hrung des Programms wird nicht eingeschr nkt und
41. bundle crt Skipped server crt Skipped snakeoil ca dsa crt Ocf14d7d 0 snakeoil ca rsa crt e52d41d0 0 snakeoil dsa crt 5d8360e1 0 snakeoil rsa crt 82ab5372 0 Setting up libservlet2 2 java 2 2 1 Setting up libxerces java 1 2 0 2 Anschlie end m ssen die noch nicht im offiziellen Debian Archiv enthaltenen Pakete j2sdk und tomcat von Hand installiert werden dpkg i j2sdk1 3_1 3 0 2_1386 deb tomcat_3 1 99b6 1_all deb Selecting previously deselected package j2sdk Selecting previously deselected package tomcat Reading database 124034 files and directories currently installed Unpacking j2sdk from 2sdk1 3_1 3 0 2_i386 deb Unpacking tomcat from tomcat_3 1 99b6 1_all deb Setting up j2sdk 1 3 0 2 Setting up tomcat 3 1 99b6 1 Starting Tomcat servlet engine tomcat Nach diesem Schritt sind alle ben tigten Komponenten installiert und vor konfiguriert Die Konfiguration des Webservers muss nun noch an die lokalen 5 2 ADMINISTRATION DES SYSTEMS 73 Bediirfnisse angepasst werden Tomcat enthalt zwar selber einen Webserver doch dessen Leistungsumfang kann mit Apache bei weitem nicht mithalten Daher wird Apache als Webser ver mit SSL Modul eingesetzt der alle Anfragen an Java Servlets automatisch an Tomcat weiterleitet Dazu muss lediglich noch eine von Tomcat erzeugte Datei in die Apache Konfiguration bernommen werden Bei dem tomcat Paket liegt diese Datei unter var lib tomcat co
42. da teien ineinander zu konvertieren Ein anderes Anwendungsbeispiel ist die Erstellung von HTML Dokumenten aus XML Vorlagen So lassen sich eine Art von Makros definieren um zum 14Diese m ssen zumindest wohlgeformte XML Dokumente sein 3 8 EXTENSIBLE MARKUP LANGUAGE XML 31 Beispiel immer wiederkehrende Konstrukte durch einen einzigen Tag mit eventuellen Parametern darzustellen Dazu werden Formatvorlagen die mit den Cascading Style Sheets aus Abschnitt 3 2 verwandt sind unter der Be zeichnung XSL Extensible Stylesheet Language eingesetzt Diese Vorlagen sind selber auch wieder wohlgeformte XML Dokumente das hei t sowohl die XML Schemata als auch die XML Transformationen werden in XML selber spezifiziert Die eigentliche Umwandlung eines XML Dokuments wird als Transformation bezeichnet Die Spezifikation dazu lautet XSL Transformations XSLT und ist als XSLT verfiigbar Ein Beispiel fiir die Umwandlung einer Zeitabrechnung die in einem XML Format vorliegt in eine HTML Datei stellt der folgende Ausschnitt aus einer XSL Datei vor lt xml version 1 0 gt lt cocoon process type xslt gt lt xsl stylesheet version 1 0 xmlns xsl http www w3 org 1999 XSL Transform gt lt xsl template match workdays gt lt html gt lt head gt lt title gt Arbeitszeiten von lt xsl value of select name gt lt title gt lt head gt lt body gt lt hi gt Arbeitszeiten von lt xsl value of selec
43. e der Internet Technologien ben tigt Inhaltsverzeichnis 1 Analyse der Anforderungen 1 1 Ist Zustand Umfeld e Ae Bae 22 Ba ewe sh eu ash u 1 2 Soll Zustand ser yk o A Bee HE EE a SE 1 3 Aufgabenstellung und Vorgaben Grobentwurf 2 1 Anforderungen an das System 2 2 Aufteilung des Systems in Komponenten 2 3 Zu entwickelnde Komponenten 2 22 22 urn Verwendete Standards und Technologien 3 1 Formulare in HTML 2 44 22 4 a ae od ee dep rz 3 2 Cascading Style Sheets CO 3 3 Hypertext Transfer Protocol HTIP 3 3 1 Authentifizierung von Benutzen 2 2 2 2 3 4 WebDAV als Erweiterung zuHTIP 22 3 4 1 Vorteile von WebDAV 2222er 3 4 2 Neue Methoden in WebDAV 3 5 Verschl sselung an Isa 2 3 5 1 Kryptografische Grundlagen 3 5 2 Kryptografische Authentifizierung 3 5 3 Secure Sockets Layers SSL 2 2 2 3 5 4 SSL Verbindungen ber HTTP Proxys 3 6 Lightweight Directory Access Protocol LDAP 3 7 Common Internet File System CIFS 3 8 Extensible Markup Language XML 2 2 2 2 3 8 1 Darstellung von HTML Dokumenten als XML Gree ROSE na ee oh er 3 8 3 XML Schemata si 8 4 0 ren 3 9 Debian Pakete war 254 es u EB BE 3 9 1 Vorteile von Paketen 2 4 vane 24 zw RA AN 4 INHALTSVERZEICHNIS 3 9 2 Erstellung von Debian Paketen 2 35
44. e nach aufgerufener Datei eine dynamische HTML Seite Bei traditionellen Anwendungen die auf einer Workstation installiert werden und lokal eine grafische Oberfl che bieten fallen zwar hnlich komplexe Kon figurationsschritte an diese stellen aber heutzutage durch langj hrige Erfah rung kein Problem mehr dar So kann w hrend der Installation ein Eintrag in der Windows Registry problemlos hinzugef gt bearbeitet oder gel scht werden Im Vergleich dazu gibt es webbasierte Anwendungen erst seit wenigen Jahren Bisher gab es hier noch keine Technologie die eine Installation von neuen Anwendungen auf beliebigen Webservern erm glichte Je nach Hersteller und Typ des Webservers waren unterschiedlich aufw ndige Schritte n tig um selbst ein einfaches Verzeichnis mit einer Anwendung zu verkn pfen F r Web Anwendungen die mit Hilfe von Java Servlets ab der Version 2 2 geschrieben wurden existiert nun aber so eine M glichkeit Jeder Webser ver der der aktuellen Servlet Spezifikation gen gt ist in der Lage neue An wendungen automatisch einzubinden und zu konfigurieren Dazu muss die Anwendung nur in einem Web Archiv vorliegen und in das Anwendungsver zeichnis des Webservers kopiert werden F r Java Anwendungen gab es bisher schon die M glichkeit sie in einem Archiv weiterzugeben Diese so genannten JAR Archive sind mit den unter Windows popul ren ZIP Archiven verwandt Au er den Java Klassen ent halten sie noch ein spezielles
45. e zum Beispiel Hunter F r jede HTTP Anfrage die ein Webserver erh lt und an ein Servlet weiterleitet wird eine service Methode aufgerufen Jede Servlet Klasse muss diese Methode besitzen da sie das Interface javax servlet http HttpServlet implementiert Dieser Methode wer den in zwei Parametern die notwendigen Daten zur Anfrage und zur Antwort mitgeteilt Die Anfrage wird in einer Instanz der Klasse javax servlet http HttpRequest bergeben die wiederum Methoden zur Abfrage der HTTP Methode des gew nschten Dokuments oder der Kopfzei len bietet 16 CGI 1 1 enth lt die CGI Spezifikation in der Version 1 1 40 KAPITEL 3 VERWENDETE STANDARDS UND TECHNOLOGIEN Um die Zugriffe eines Benutzers ber mehrere HTTP Anfragen hinweg verfol gen zu k nnen werden von der Servlet Engine so genannte Sitzungen engl sessions zur Verf gung gestellt Damit k nnen Attribute eines Benutzers bei einer Online Bestellung zum Beispiel die im Warenkorb befindlichen Pro dukte lokal gespeichert und bei der n chsten Anfrage wieder gelesen werden Technisch wird dies durch Cookies realisiert die eine eindeutige Kennzeich nung einer Sitzung auf dem Webbrowser speichern und bei jeder HTTP Anfrage wieder an den Webserver zur ckschicken Wie schon in Kapitel 3 4 erw hnt m ssen die Antworten f r Webbrowser und WebDAV Clients in unterschiedlichen Formaten generiert werden Des halb ist es speziell in diesem Projekt notwendig nach der HTTP Me
46. ebenen Teilnehmer geh rt Jeder Nutzer kann ein Schl ssel paar mit einer gef lschten Identit t erstellen und den ffentlichen Schl ssel bekanntgeben um so Zugriff auf nicht f r ihn bestimmte Daten zu erlangen Um die Zugeh rigkeit eines Schl sselpaares zu einer Person oder Organisati on zu gew hrleisten muss dieses zertifiziert sein Eine Zertifizierung ist im Grunde nichts anderes als eine digitale Unterschrift einer unabh ngigen dritten Stelle f r einen ffentlichen Schl ssel Auf diese Weise kann man wenn man der Zertifizierungsstelle vertraut die Authenti zit t der Gegenstelle berpr fen Wenn dies beide Kommunikationspartner durchf hren kann jeder von ihnen sicher sein mit der gew nschten Gegen stelle zu kommunizieren 8 Auch der umgekehrte Weg ist m glich dies wird im n chsten Unterkapitel besprochen 3 5 VERSCHL SSELUNG 25 3 5 3 Secure Sockets Layers SSL Das SSL Protokoll wie unter SSL 3 0 definiert wurde von Netscape ent wickelt und in der Version 2 0 zum ersten Mal in ihrem Browser Navigator realisiert Als Verschliisselungsverfahren wurden RSA asymmetrisch und DES symmetrisch verwendet in der sp teren Version 3 0 kamen dann wei tere Verschliisselungsverfahren sowie die Authentifizierung anhand mehrerer hintereinander angewendeter Zertifikate hinzu Jeder Webbrowser der SSL unterstiitzt hat eine Datenbank mit Zertifikaten nach dem X 509 Standard die vom Benutzer auch ver ndert werd
47. efindet sich noch eine Zeile zum schnellen Zugriff auf alle Ober verzeichnisse die mit Up to gekennzeichnet ist Hier kann die jeweilige Komponente des Pfadnamens angeklickt werden um direkt zu diesem Ver zeichnis zu springen Dateien k nnen gel scht werden indem die Checkbox vor ihrem Namen mar kiert wird und anschlie end der Knopf Delete file s gedr ckt wird Es werden dabei immer alle markierten Dateien gel scht eine Sicherheitskopie bleibt jedoch auf dem Backup Laufwerk erhalten Die letzte M glichkeit dieser Webseite ist das Hochladen von weiteren Da teien Dazu muss der Knopf Upload file s bet tigt werden worauf sich ein Siehe Abschnitt 2 1 68 KAPITEL 5 BENUTZUNG DES SYSTEMS Dialog zum Ausw hlen der Datei ffnet tnp sgybas libservlet2 2 java_2 2 1_all deb libxalan java_2 0 1 diff libxerces java_1 2 0 2_all deb tnp sgybasf Die gew nschten Dateien k nnen einfach ausgew hlt werden Mit einer Be st tigung auf dem OK Knopf werden diese dann in das aktuelle Verzeichnis hochgeladen 5 1 2 Zugriff mit einem WebDAV Client Um weitere Dateioperationen und die Handhabung des Windows Explorers einsetzen zu k nnen kann auf die gleiche URL wie beim Webzugriff auch mit WebDAV Clients zugegriffen werden Durch die Installation des Internet Explorers 4 0 ist es mit dem normalen Windows Explorer m glich direkt auf WebDAV Laufwerke zuzugreifen Dort werden diese Laufwerke als Webo
48. ei ihnen wird dann beim Eintreten dieses Ereignisses eine Methode aufgerufen Im Gegensatz zu Java Beans widmen sich die Enterprise Java Beans EJB der Kommunikation zwischen Prozessen Hierzu setzen sie auf bew hrte Stan dards wie zum Beispiel CORBA auf 3 10 2 Java Servlets Webserver bieten schon lange die M glichkeit Programme zur Erzeugung von dynamischen Seiten ablaufen zulassen Sie verwendeten bisher haupt s chlich das Common Gateway Interface CGI das alle Daten zu einer HTTP Anfrage in Umgebungsvariablen bergibt Dadurch konnte CGI mit allen Programmiersprachen verwendet werden haupts chlich wurden aber Perl und C eingesetzt Weitere bermittelte Daten in der Anfrage vor allem Formularinhalte k n nen von CGI Programmen von der Standard Eingabe gelesen werden Die dynamisch erstellte Seite wird einfach an die Standard Ausgabe geschickt und vom Webserver direkt an den Browser weitergeleitet Dazu ist es not wendig ein Dokument zu erstellen das ein Webbrowser anzeigen kann also beispielsweise eine HTML Seite oder ein GIF Bild Die Art der Parameter bergabe in Umgebungsvariablen widersprach jedoch dem Gedanken der Objektorientierung Deshalb wurde von Sun ein Standard f r Java Programme geschaffen der als Servlet bekannt ist Die Spezifikati on selber ist unter Servlet 2 2 in der aktuellen Version 2 2 erh ltlich mittler weile sind zu diesem Themenbereich aber auch zahlreiche B cher erschienen wi
49. em erneuten Zugriff eines anderen Benutzern nicht noch einmal ber ein eventuell langsames Weitverkehrsnetz bertragen werden m ssen 5 Effizienteres Protokoll das mit einer einzigen TCP IP Verbindung auch mehrere Dateien bertragen kann Dies ist auch schon mit HTTP 1 1 m glich und wird dort als Keep Alive Verbindung bezeichnet 3 4 2 Neue Methoden in WebDAV F r alle oben genannten Anwendungsgebiete wurden neben neuen Feldern im Kopf einer Anfrage auch neue Methoden eingef hrt Weiterhin ist es auch m glich Nutzdaten im XML Format nach der eigentlichen HTTP Anfrage zu bermitteln zum Beispiel zur Spezifizierung der gew nschten Eigenschaften bei der PROPFIND Methode Die neu eingef hrten Methoden mit einer kurzen Beschreibung zeigt die fol gende Tabelle DELETE L schen einer Datei oder eines leeren Verzeichnisses COPY MOVE Kopieren bzw L schen einer Ressource LOCK UNLOCK Anlegen und Entfernen einer Sperre auf eine Res source PROPFIND Anzeigen der Dateien und ihrer Eigenschaften in nerhalb eines Verzeichnisses PROPPATCH ndern der Eigenschaften einer Ressource Im WebDAV Standard wird eine Datei oder ein komplettes Verzeichnis als Ressource 22 KAPITEL 3 VERWENDETE STANDARDS UND TECHNOLOGIEN Das folgende Beispiel zeigt eine WebDAV Anfrage zur Ermittlung der Eigen schaften bigbox author DingALing und Random der Resource file auf dem Rechner www foo bar PROPFIND file HTTP 1 1 Host www foo bar
50. en ResourceBean resource null synchronized resourcesCache resource ResourceBean resourcesCache get path if resource null return resource getSize Kein Eintrag im Cache gefunden nun wird auf die CifsDisk Instanz zugegriffen CifsFile file new CifsFile disk path if file null return file length else return 1L Den Zusammenhang aller hier besprochenen Klassen und Interfaces zeigt das 4 3 ZUGRIFF AUF CIFS LAUFWERKE 53 folgende Schaubild CifsLogin interfacd fi a Eed on Leider waren in der unter Hranitzky erh ltlichen Implementierung einige Fehler enthalten die den Einsatz dieser Klassen mit einem Dateiserver unter Windows NT und 2000 nicht erm glichten Mit dem w hrend der Entwick lungsphase verwendeten Samba Server von Samba gab es keinerlei Proble me Dadurch wurde eine langwierige Fehlersuche die auch eine direkte Ana lyse der ber das Netzwerk gesendeten Daten beinhaltete notwendig Symptome dieses Fehlers waren bei einem Teil der CIFS Zugriffe eine Feh lermeldung vom NT Server Diese Fehlermeldung mit dem Code 123 war jedoch weder in der offiziellen CIFS Spezifikation Leach noch im Archiv der Samba Mailingliste Samba zu finden Das Problem lag schlie lich in einer unzul ssigen Umwandlung von relativen in absolute Pfadnamen Es wurde noch eine relative Pfadkomponente dargestellt durch einen Punkt eingef gt Patches zur Behebung dieses und a
51. en kann Dadurch ist es m glich fiir einen SSL Webserver selber ein Zertifikat aus zustellen anstatt auf die teilweise sehr teuren Zertifikate von internationalen Zertifizierungsstellen zur ckzugreifen die zudem nat rlich gegen Geb hr j hrlich erneuert werden m ssen Angesiedelt ist SSL im ISO Schichtenmodell zwischen der Transport und Anwendungsschicht kann also im Prinzip f r alle Anwendungen die auf TCP IP basieren verwendet werden Die folgende Abbildung verdeutlicht dies SSL Kontroll HTTP LDAP Telnet Protokolle SSL Hauptprotokoll TCP Transportschicht IP Netzwerkschicht Am h ufigsten wird es im Internet im Zusammenhang mit dem HTTP Protokoll verwendet die URL der Dokumente beginnt dann mit https statt mit http Der Verbindungsaufbau und die Daten bertragung l uft insgesamt Details zu diesen Verfahren finden sich im Buch von Schneier 10Siehe X 509 26 KAPITEL 3 VERWENDETE STANDARDS UND TECHNOLOGIEN nach dem folgenden zeitlichen Schema ab wobei die Daten nach der Einigung auf ein Verschliisselungsverfahren in der Phase CipherSpec verschliisslet wer den Client Server Client Hello a Server Hello Zertifikat D CipherSpec N CipherSpec HTTP Anfrage HTTP Antwort D Wie man leicht erkennen kann l uft das komplette HTTP Protokoll inner halb einer verschl sselten Verbindung ab also auch die Ubertragung der Au thentifizierungsdaten die bei der b
52. en zu verbrei ten dann d rfen Sie als Folge das Programm berhaupt nicht verbreiten Wenn zum Beispiel ein Patent nicht die geb hrenfreie Weiterverbreitung des Programms durch diejenigen erlaubt die das Programm direkt oder indirekt von Ihnen erhalten haben dann besteht der einzige Weg sowohl das Patent recht als auch diese Lizenz zu befolgen darin ganz auf die Verbreitung des Programms zu verzichten Sollte sich ein Teil dieses Paragraphen als ung ltig oder unter bestimmten Umst nden nicht durchsetzbar erweisen so soll dieser Paragraph seinem Sin ne nach angewandt werden im brigen soll dieser Paragraph als Ganzes gel ten Zweck dieses Paragraphen ist nicht Sie dazu zu bringen irgendwelche Paten te oder andere Eigentumsanspr che zu verletzen oder die G ltigkeit solcher Anspr che zu bestreiten dieser Paragraph hat einzig den Zweck die Inte grit t des Verbreitungssystems der freien Software zu sch tzen das durch die Praxis ffentlicher Lizenzen verwirklicht wird Viele Leute haben gro z gige Beitr ge zu dem gro en Angebot der mit diesem System verbreiteten Software im Vertrauen auf die konsistente Anwendung dieses Systems ge leistet es liegt am Autor Geber zu entscheiden ob er die Software mittels irgendeines anderen Systems verbreiten will ein Lizenznehmer hat auf diese Entscheidung keinen Einflu Dieser Paragraph ist dazu gedacht deutlich klarzustellen was als Konsequenz aus dem Rest dieser Lizenz betr
53. er im Beispiel ist dies http kermit 8081 dav Zuerst werden die Benutzer aufgefordert ihre Benutzerkennung und ihr Pass wort einzugeben 65 66 KAPITEL 5 BENUTZUNG DES SYSTEMS Wenn Benutzername und Passwort giiltig sind wird die Liste der verfiigbaren Netzlaufwerke angezeigt http kermit 8081 dav4 Div Temp Verzeichnis auf filesy 1 Home Verzeichnisse auf kermit Durch Anklicken eines Netzlaufwerks erhalt man seinen Inhalt als Webseite dargestellt Diese bietet die M glichkeit in ein Verzeichnis zu wechseln eine Datei herunterzuladen oder eine Datei zu l schen Statt die Liste der Netzlaufwerke zu verwenden kann man auch di rekt den Namen des gew nschten Netzlaufwerks an die URL mit an h ngen F r das Netzlaufwerk sgybas k nnte man also die Adresse http kermit 8081 dav sgybas direkt in den Browser eingeben 5 1 BENUTZERHANDBUCH 67 File Edit View Go Communicator Help Ile Bookmarks GoTo http kermit 8081 dav sgybas cifs tup ZB j e A dom Ae F Directory Listing for sgybas cifs tmp Up to saybas cifs ois 13 10 2000 22 33 O index html 0 2 KB 19 10 2000 14 50 I screenshot gif 41 2 KB 19 10 2000 09 55 webdav zip 111 2 KB 17 10 2000 18 22 Delete file s Upload file s generated by CIFS gateway 1 0 Fr de DO VB Zum Wechseln in ein Verzeichnis oder zum Herunterladen einer Datei muss einfach nur auf den entsprechenden Eintrag in der Liste geklickt werden Ganz oben b
54. ern Sie das Programm zusammen mit dem vollst ndigen zugeh rigen maschinenlesbaren Quelltext auf einem f r den Datenaustausch blichen Medium aus wobei die Verteilung unter den Bedingungen der Paragraphen 1 und 2 erfolgen mu Oder b Liefern Sie das Programm zusammen mit einem mindestens drei Jahre lang g ltigen schriftlichen Angebot aus jedem Dritten eine vollst ndi ge maschinenlesbare Kopie des Quelltextes zur Verf gung zu stellen zu nicht h heren Kosten als denen die durch den physikalischen Ko piervorgang anfallen wobei der Quelltext unter den Bedingungen der Paragraphen 1 und 2 auf einem f r den Datenaustausch blichen Me dium weitergegeben wird Oder c Liefern Sie das Programm zusammen mit dem schriftlichen Angebot der Zurverf gungstellung des Quelltextes aus das Sie selbst erhalten haben Diese Alternative ist nur f r nicht kommerzielle Verbreitung zul ssig und nur wenn Sie das Programm als Objectcode oder in aus f hrbarer Form mit einem entsprechenden Angebot gem Absatz b erhalten haben Unter dem Quelltext eines Datenwerkes wird diejenige Form des Datenwerkes verstanden die f r Bearbeitungen vorzugsweise verwendet wird F r ein aus f hrbares Programm bedeutet der komplette Quelltext Der Quelltext aller 90 ANHANG B GNU GENERAL PUBLIC LICENSE im Programm enthaltenen Module einschlie lich aller zugeh rigen Modul schnittstellen Definitionsdateien sowie der zur Compilation und Inst
55. erung und das Datum jeder nderung hinweist b Sie m ssen daf r sorgen da jede von Ihnen verbreitete oder ver ffent lichte Arbeit die ganz oder teilweise von dem Programm oder Teilen davon abgeleitet ist Dritten gegen ber als Ganzes unter den Bedin gungen dieser Lizenz ohne Lizenzgeb hren zur Verf gung gestellt wird c Wenn das ver nderte Programm normalerweise bei der Ausf hrung in teraktiv Kommandos einliest m ssen Sie daf r sorgen da es wenn es auf dem blichsten Wege f r solche interaktive Nutzung gestartet wird eine Meldung ausgibt oder ausdruckt die einen geeigneten Copyright Vermerk enth lt sowie einen Hinweis da es keine Gew hrleistung gibt oder anderenfalls da Sie Garantie leisten und da die Benutzer das Programm unter diesen Bedingungen weiter verbreiten d rfen Auch mu der Benutzer darauf hingewiesen werden wie er eine Kopie dieser Lizenz ansehen kann Ausnahme Wenn das Programm selbst inter aktiv arbeitet aber normalerweise keine derartige Meldung ausgibt mu Ihr auf dem Programm basierendes Datenwerk auch keine solche Meldung ausgeben Diese Anforderungen gelten f r das bearbeitete Datenwerk als Ganzes Wenn identifizierbare Teile des Datenwerkes nicht von dem Programm abgeleitet sind und vern nftigerweise als unabh ngige und eigenst ndige Datenwerke f r sich selbst zu betrachten sind dann gelten diese Lizenz und ihre Be dingungen nicht f r die betroffenen Teile wenn Sie d
56. ervice Repara tur oder Korrektur bei Ihnen 812 In keinem Fall au er wenn durch geltendes Recht gefor dert oder schriftlich zugesichert ist irgendein Copyright Inhaber oder irgendein Dritter der das Programm wie oben erlaubt mo difiziert oder verbreitet hat Ihnen gegen ber f r irgendwelche Sch den haftbar einschlie lich jeglicher allgemeiner oder speziel ler Sch den Sch den durch Seiteneffekte Nebenwirkungen oder Folgesch den die aus der Benutzung des Programms oder der Un benutzbarkeit des Programms folgen einschlie lich aber nicht beschr nkt auf Datenverluste fehlerhafte Verarbeitung von Da ten Verluste die von Ihnen oder anderen getragen werden m s sen oder dem Unverm gen des Programms mit irgendeinem ande ren Programm zusammenzuarbeiten selbst wenn ein Copyright Inhaber oder Dritter ber die M glichkeit solcher Sch den unter richtet worden war 94 ANHANG B GNU GENERAL PUBLIC LICENSE Anhang C Erklarung Hiermit versichere ich da ich die vorliegende Arbeit selbst ndig verfasst und keine anderen als die angegebenen Hilfsmittel verwendet habe Stuttgart 14 November 2000 Stefan Gybas
57. erwenden da sowohl HTTP wie auch XML Bibliotheken frei im Internet zur Verf gung stehen Ein weiterer Vorteil ist die einfache Erweiterbarkeit Es k nnen jederzeit neue XML Tags standardi siert werden die dann von alten Programmen einfach ignoriert werden Gegen ber anderen Protokollen zur bertragung von Dateien wie zum Bei spiel FTP nach RFC 959 hat WebDAV mehrere entscheidende Vorteile 1 Sichere Authentisierung von Benutzern durch die Verwendung des digest Verfahrens Dieses Verfahren ist im WebDAV Standard f r un verschl sselte bertragungen vorgeschrieben damit das Passwort nicht HTTP 1 1 definiert zwar bereits eine PUT Methode zum Upload von Dateien in der Praxis wird diese jedoch nicht verwendet Verzeichnisse werden im WebDAV Standard als Sammlung engl collection bezeich net 6Siehe Abschnitt 3 8 3 4 WEBDAV ALS ERWEITERUNG ZU HTTP 21 mitgeh rt werden kann 2 Verschl sselung s mtlicher bertragener Daten also auch der Steuer informationen durch die Verwendung von SSL siehe Abschnitt 3 5 3 Unterst tzung von Proxys die die Anfrage f r den Client an den Webserver weiterleiten Dadurch ist der Aufbau sicherer Firewalls am bergang von einem Firmennetz zum Internet m glich ohne direkte TCP IP Verbindungden erlauben zu m ssen 4 Unterst tzung von Caches die meist in Kombination mit einem Proxy realisiert werden und das Zwischenspeichern von Dokumenten erlau ben damit sie bei ein
58. gegangen WebDAV erm glicht nicht nur den Download von Dateien sondern bietet dar ber hinaus noch einige Erweiterungen 3Siehe Abschnitt 3 6 20 KAPITEL 3 VERWENDETE STANDARDS UND TECHNOLOGIEN e Upload von Dateien e Standardisiertes Auslesen und Bearbeiten von Eigenschaften engl pro perties einer Datei in Form von XML B umen Dazu geh ren neben den schon in Dateisystemenen verwendeten Attributen wie zum Bei spiel das Datum der letzten nderung auch der Autor und die Versi onsnummer e lanagementf higkeiten f r Dateien und Verzeichnisse wie das L schen Umbenennen Kopieren Verschieben und Anlegen e Einrichtung von Zugriffssperren engl locks die nderungen von an deren Benutzern verhindern solange man selbst eine Datei bearbeitet e Verwaltung mehrerer Versionen eines Dokuments mit Anzeige der durchgef hrten nderungen zwischen zwei Versionen Gedacht ist dieses System zur Verwaltung von Webbereichen in dem beste hende HTML Seiten zuerst heruntergeladen werden dann lokal mit einem Text oder grafischen HTML Editor bearbeitet und schlie lich wieder hoch geladen werden WebDAV stellt also ein m chtiges System zur Verwaltung von Dokumenten aller Art in einer hierarchischen Verzeichnisstruktur dar 3 4 1 Vorteile von WebDAV Der gesamte WebDAV Standard nutzt zur bermittlung s mtlicher Nutzda ten das XML Format Dadurch ist es m glich WebDAV mit allen g ngi gen Programmiersprachen zu v
59. glichen Probleme wird davon abge raten diese Datei von Hand zu bearbeiten Es sollte stattdessen immer die Web Oberfl che genutzt werden durch die nderungen au erdem sofort also ohne einen Neustart der Servlet Engine wirksam werden 76 KAPITEL 5 BENUTZUNG DES SYSTEMS Literaturverzeichnis ASL 1 1 CGI 1 1 CSS 1 0 DOM 1 0 Eckstein GPL 2 Hamilton The Apache Software License Version 1 1 The Apache Software Foundation 2000 http www apache org LICENSE txt David Robinson The WWW Common Gateway Interface Version 1 1 University of Cambridge 1996 Hakon Wium Lie Bert Bos Cascading Style Sheets level 1 World Wide Web Consortium W3C 1999 http www w3 org TR REC CSS1 Mark Davis et al Document Object Model DOM Level 2 Core Specification Version 1 0 World Wide Web Consortium W3C 2000 http www w3 org TR DOM Level 2 Core Robert Eckstein David Collier Brown Peter Kelly Using Samba 1st Edition O Reilly 1999 Richard M Stallman GNU General Public License Version 2 The Free Software Foundation 1991 http www gnu org copyleft gpl html Graham Hamilton et al JavaBeans TM API Specification Version 1 01 Sun Microsystems Inc 1997 http java sun com products javabeans docs 77 78 HTML 4 01 Hunter Hranitzky ISO 8879 ISO 9594 Jackson JSP 1 1 Leach Mozilla LITERATURVERZEICHNIS Dave Raggett Arnaud Le
60. h dokumentiert wurden hat sich Microsoft entschlossen einen Teil ihrer propriet ren Erweiterungen ebenfalls offenzulegen und unter dem Namen CIFS Common Internet File System Leach zu standardisieren Durch das Samba Projekt ist eine Bibliothek f r C Programmierer entstan den die sehr schnell und einfach die Nutzung aller SMB Dienste erm glicht Mit ihrer Hilfe ist nicht nur der Zugriff auf Verzeichnisse und Drucker m g lich sondern auch die Benutzerauthentifizierung und sogar das ndern eines Passworts Leider gibt es zur Zeit keine vollst ndige Implementierung dieser Client Funktionalit t in Java es sind aber mindestens zwei Projekte im 12Samba ist im Internet unter Samba f r Unix Systeme erh ltlich 13Ein Projekt wird offiziell vom Samba Team unterst tzt seine Entwicklung befindet sich jedoch noch im Anfangsstadium Das zweite Projekt wurde von einer Privatperson gestartet und bietet eine fast vollst ndige Implementierung es wurde daher in dieser Arbeit verwendet 3 8 EXTENSIBLE MARKUP LANGUAGE XML 29 Gange die genau dieses Ziel verfolgen 3 8 Extensible Markup Language XML XML die Extensible Markup Language ist eine Untermenge des SGML Standards ISO 8879 die zur Speicherung und zum Austausch beliebiger hierarchischer Datenstrukturen geeignet ist Im Prinzip ist es m glich jedes propriet ren Format zur Speicherung von Daten durch XML zu ersetzen was von einigen Gruppen im Internet auch angestrebt
61. hren Benutzernamen und ihr Passwort Das Benutzerverzeich nis f r die Authentifizierung kann dabei von einem LDAP Server oder einem NT Domaincontroller stammen Danach erhalten die Benutzer eine Liste mit allen f r sie freigegebenen Verzeichnissen Wichtig ist hier da die Projektdaten nicht auf dem Webserver selber lie gen sondern auf Dateiservern auf die der Webserver aber direkten Zugriff d h ohne Firewall hat Diese Dateiserver sind i d R NT Server die einige Verzeichnisse als Netzlaufwerke freigeben F r Administratoren mu eine weitere Web Oberflache erstellt werden die es einfach erm glichen soll auf weitere Netzlaufwerke den Zugriff f r einzelne Benutzer oder Benutzergruppen zu erlauben oder diesen wieder zu sperren Au erdem soll es m glich sein ein Protokoll mit allen Zugriffen sortiert nach Dateiname Datum oder Benutzer auszuwerten und so Fehlbedienung oder 83 84 ANHANG A URSPRUNGLICHE AUFGABENSTELLUNG Mi brauch zu entdecken Um Datenverlust zu vermeiden soll es auch m glich sein von allen Dateien vor dem berschreiben bzw Ver ndern automatisch eine Sicherheitskopie erstellen zu lassen Dies kann evtl ber ein Versionsverwaltungssystem rea lisiert werden Die zu erstellende Web Oberfl che soll unabh ngig vom verwendeten Webser ver z B Apache oder Netscape und Betriebssystem NT oder Unix einsetz bar sein daher wird eine Realisierung als Java Servlets empfohlen Dadurch ist dann auch ein
62. ich die Konfigurati 3Eine ausf hrliche Beschreibung des WebDAV Protokolls ist in Abschnitt 3 4 8 KAPITEL 1 ANALYSE DER ANFORDERUNGEN onsdaten in Datenbanken zu speichern Es muss ein Datenformat gew hlt werden das mit jedem beliebigen Texteditor bearbeitet werden kann Als Standard bietet sich hier XML an zumal es zum Erstellen und Einlesen solcher Dateien schon fertige Programmbibliotheken gibt Die M glichkeit zur Erstellung von Sicherheitskopien von Projektdaten die ber dieses Programm ver ndert oder gel scht werden wird dahingehend abge ndert dass auf einem separaten lokalen Datenspeicher nur eine Kopie der alten Version mit angeh ngtem Zeitstempel gespeichert werden muss Die M glichkeit zur Darstellung der nderungen zwischen zwei Versionen wird nicht verlangt Das gesammte Programm soll einfach auf weiteren Rechnern zu installieren sein Es kann hierbei davon ausgegangen werden dass auf den betreffenden Rechnern ein Debian GNU Linux System installiert ist so dass es sich an bietet das Programm als Debian Paket zur Verf gung zu stellen 4XML wird in Kapitel 3 8 erl utert 5Siehe Abschnitt 3 9 Kapitel 2 Grobentwurf 2 1 Anforderungen an das System Benutzer des Systems haben die Wahl zwischen zwei Zugriffsm glichkeiten Die technischen Grundlagen der verwendeten Protokolle werden im nachsten Kapitel naher erl utert 1 Die erste Art besteht aus dem Zugriff mit einem normalen Webbrowser auf eine HTM
63. iese als eigenst ndige Datenwerke weitergeben Wenn Sie jedoch dieselben Abschnitte als Teil ei nes Ganzen weitergeben das ein auf dem Programm basierendes Datenwerk darstellt dann mu die Weitergabe des Ganzen nach den Bedingungen die ser Lizenz erfolgen deren Bedingungen f r weitere Lizenznehmer somit auf das gesamte Ganze ausgedehnt werden und somit auf jeden einzelnen Teil B 2 ALLGEMEINE FFENTLICHE GNU LIZENZ 89 unabh ngig vom jeweiligen Autor Somit ist es nicht die Absicht dieses Abschnittes Rechte f r Datenwerke in Anspruch zu nehmen oder Ihnen die Rechte f r Datenwerke streitig zu machen die komplett von Ihnen geschrieben wurden vielmehr ist es die Ab sicht die Rechte zur Kontrolle der Verbreitung von Datenwerken die auf dem Programm basieren oder unter seiner auszugsweisen Verwendung zusammen gestellt worden sind auszu ben Ferner bringt auch das einfache Zusammenlegen eines anderen Datenwerkes das nicht auf dem Programm basiert mit dem Programm oder einem auf dem Programm basierenden Datenwerk auf ein und demselben Speicher oder Vertriebsmedium dieses andere Datenwerk nicht in den Anwendungsbereich dieser Lizenz 83 Sie d rfen das Programm oder ein darauf basierendes Datenwerk ge m Paragraph 2 als Objectcode oder in ausf hrbarer Form unter den Bedin gungen der Paragraphen 1 und 2 kopieren und weitergeben vorausgesetzt da Sie au erdem eine der folgenden Leistungen erbringen a Lief
64. ir Einschr nkungen machen die es jedem verbieten Ihnen diese Rechte zu verweigern oder Sie aufzufordern auf diese Rechte zu verzichten Aus diesen Einschr nkungen folgen bestimmte Verantwortlichkeiten f r Sie wenn Sie Kopien der Software verbreiten oder sie ver ndern Beispielsweise m ssen Sie den Empf ngern alle Rechte gew hren die Sie selbst haben wenn Sie kostenlos oder gegen Bezahlung Kopien eines solchen Programms verbreiten Sie m ssen sicherstellen da auch die Emp f nger den Quelltext erhalten bzw erhalten k nnen Und Sie m ssen ihnen diese Bedingungen zeigen damit sie ihre Rechte kennen Wir sch tzen Ihre Rechte in zwei Schritten 1 Wir stellen die Software unter ein Urheberrecht Copyright und 2 wir bieten Ihnen diese Lizenz an die Ihnen das Recht gibt die Software zu vervielf ltigen zu verbreiten und oder zu ver ndern Um die Autoren und uns zu sch tzen wollen wir dar berhinaus sicherstellen da jeder erf hrt da f r diese freie Software keinerlei Garantie besteht Wenn die Software von jemand anderem modifiziert und weitergegeben wird m chten wir da die Empf nger wissen da sie nicht das Original erhalten haben damit irgendwelche von anderen verursachte Probleme nicht den Ruf des urspr nglichen Autors sch digen Schlie lich und endlich ist jedes freie Programm permanent durch Software B 2 ALLGEMEINE FFENTLICHE GNU LIZENZ 87 Patente bedroht Wir m chten die Gefahr
65. ird hier am Beispiel der Debian Pakete tomcat apache und libapache mod ssl vorgef hrt Zuerst sind alle ben tigten Pakete mit dem Befehl apt get als root zu installieren Alle zus tzlich ben tigten Pakete werden automatisch mit installiert apt get install apache libapache mod ssl libxerces java libservlet2 2 java Reading Package Lists Done Building Dependency Tree Done The following extra packages will be installed libss1095a openssl The following NEW packages will be installed apache libapache mod ssl libservlet2 2 java libss1095a libxerces java openssl Do you want to continue Y n Y Be Reading database Unpacking apache from apache_1 3 12 2 1_i386 deb Selecting previously deselected package libss1095a Unpacking libss1095a from libss1095a_0 9 5a 5 deb Selecting previously deselected package openssl Unpacking openssl from openss1_0 9 5a 5 deb Selecting previously deselected package libapache mod ssl Unpacking libapache mod ssl from Selecting previously deselected package libservlet2 2 java Unpacking libservlet2 2 java from Selecting previously deselected package libxerces java 72 KAPITEL 5 BENUTZUNG DES SYSTEMS Unpacking libxerces java from libxerces java_1 2 0 2 deb Setting up apache 1 3 12 2 1 Setting up libss1095a 0 9 5a 5 Setting up openssl 0 9 5a 5 Setting up libapache mod ssl 2 6 4 1 3 12 1 Makefile crt Skipped ca
66. la 4 75 en Accept image gif image jpeg image png Accept Encoding gzip Host localhost Accept Charset iso 8859 1 utf 8 Referer http localhost doc index html GET index html HTTP 1 0 Nachdem der Webserver die Leerzeile zum Beenden der Anfrage gelesen hat beginnt er mit der Verarbeitung der Daten und schickt anschliefend seine Antwort innerhalb der selben HTTP Verbindung an den Client zuriick Da bei teilt er ihm zuerst einen Statuswert dann den Typ der Daten und in den meisten Fallen auch die Lange mit Der Dateityp wird im MIME Standard kodiert und lautet f r gew hnliche HTML Dateien text html Auf die vor herige Anfrage wird also eine Antwort der folgende Art gesendet die zuerst Der MIME Standard ist in RFC 2045 spezifiziert 18 KAPITEL 3 VERWENDETE STANDARDS UND TECHNOLOGIEN aus einer Header einer Leerzeile und schlie lich den eigentlichen Nutzdaten besteht HTTP 1 1 200 OK Date Wed 01 Nov 2000 17 13 41 GMT Server Apache 1 3 12 Unix Last Modified Wed 24 Mar 1999 02 35 47 GMT Accept Ranges bytes Content Length 3829 Connection close Content Type text html lt DOCTYPE HTML PUBLIC W3C DTD HTML 4 0 EN gt Inhalt der HTML Datei 3 3 1 Authentifizierung von Benutzern Das Hypertext Transfer Protocol bietet neben der bertragung von Daten auch die M glichkeit zur Authentifizierung von Benutzern In diesem Fall wird vom Client eine zus tzliche Kopfzeile in die Anfrage eingef
67. le Dateiserver zu erm g lichen Damit nun extern arbeitende Mitarbeiter doch Zugriff auf die Pro jektdaten auf den Dateiservern erhalten k nnen muss ein Umweg ber eine Web Schnittstelle gew hlt werden 1 2 Soll Zustand Nach Abschluss dieser Arbeit soll es extern arbeitenden Mitarbeitern er m glicht werden auf einen konzernweit zug nglichen Webserver zuzugreifen und so Zugang zu Projektdaten auf mehreren Dateiservern zu erhalten Die TCP IP Verbindung vom Webbrowser der Mitarbeiter zum Webserver soll dabei nach dem SSL Standard verschl sselt werden damit vertrauliche Da ten nicht von Unbefugten abgeh rt werden k nnen Der Webserver bietet nach einer erfolgreichen Authentifizierung durch Be nutzername und Passwort eine Liste aller f r diesen Benutzer verf gbaren Netzlaufwerke an Alle Zugriffe auf diese Netzlaufwerke werden dann vom Webserver ber das CIFS Protokoll direkt an die entsprechenden Dateiser ver weitergeleitet Wichtig ist hier dass die Daten bertragung von den Benutzern zum Webser ver verschl sselt erfolgt damit die Daten nicht auf ihrem Weg durch unkon trollierbare Netze abgeh rt werden k nnen Die Verbindungen zu den Datei servern k nnen auch verschl sselt sein dies ist aber nicht zwingend not wendig da solch eine Kommunikation von den meisten Dateiservern nicht unterst tzt wird Vom Webserver aus besteht ein direkter Zugriff auf die Dateiserver das hei t hier sind keine Firewalls mehr zwische
68. lt Eine Java Laufzeitumgebung ist bereits als Paket unter ftp ftp tux org java debian verf gbar alle anderen Pakete wurden im Laufe dieser Arbeit erstellt Einige Bibliotheken sind auch in anderen Projekten gut einsetzbar daher wurden sie in eigene Pakete verpackt Beschreibung libservlet2 2 java Die Servlet Klassen der Version 2 2 von der Referenz Implementierung Tomcat Tomcat libxerces java Der XML Parser Xerces vom Apache XML Projekt Xerces libldap java 4 1 1 LDAP Klassen vom Mo zilla Projekt Mozilla tomcat 3 2beta6 1 Servlet Engine mit JSP vom Jakarta Projekt Tomcat Die Pakete libservlet2 2 java libxerces java und libldap java sind bereits Bestandteil der n chsten Debian Version und unter 7Siehe Abschnitt 3 9 60 KAPITEL 4 IMPLEMENTIERUNG UND TEST ftp ftp debian org dists woody im Internet fiir alle interessierten Nutzer zug nglich Das tomcat Paket ist noch nicht auf dem Debian Server erh ltlich dies wird erst mit Erscheinen der endg ltigen Version 3 2 der Fall sein Die in dieser Arbeit erstellten Klassen sind in einem Web Archiv wie in Abschnitt 3 10 5 erl utert enthalten Dieses enth lt au erdem die jCIFS Klassen von Hranitzky und kann daher direkt in das Anwendungsverzeichnis von Tomcat kopiert werden Sofort nach diesem Schritt ist die Anwendung einsatzbereit 4 6 1 Lizenzen der Pakete Alle verwendeten Pakete sind unter einer Open Source Lizenz frei verf gbar Die
69. m Text und enth lt keine Bin rdaten was die Bearbeitung mit jedem beliebigen Texteditor erm glicht und die dy namische Erzeugung in Programmen vereinfacht Es gibt zwei Arten von Tags die optional auch Attribute besitzen d rfen e Container Tags bestehen aus einem Anfangs und Ende Tag zwischen denen beliebiger Text oder auch weitere Tags stehen d rfen Durch diese Schachtelung ergibt sich eine baumartige Struktur eines jeden HTML Dokuments e Die zweite Art sind einzelne Tags ohne zugeh riges Ende Tag die vor allem zum Einf gen von Zeilenumbriichen und Bildern verwendet wer 13 14 KAPITEL 3 VERWENDETE STANDARDS UND TECHNOLOGIEN den die Quelle des Bildes wird in letzterem Fall als Attribut angegeben Das folgende Beispiel stellt ein minimales HTML Dokument mit Typangabe Einbindung einer Stilvorlage siehe Abschnitt 3 2 einer berschrift einem Textabschnitt einem Kommentar und einem Bild dar lt DOCTYPE HTML PUBLIC W3C DTD HTML 4 0 EN gt lt HTML gt lt head gt lt link rel stylesheet type text css href style1 css gt lt title gt Einfaches HTML Beispiel lt title gt lt head gt lt body gt lt hi gt Uberschrift des Beispiels lt h1 gt lt p gt Hier ein Textabsatz Er kann nat rlich mehrere S tze enthalten lt p gt lt Dies ist ein Kommentar als n chstes wird ein JPEG Bild in das aktuelle Dokument eingebunden gt lt img alt height 80 width 80 src bildi jpg gt
70. nderer w hrend der Suche gefundener Fehler wurden an den jCIFS Autor Hranitzky geschickt Sie wurden unter der GNU General Public License wie in Anhang B beigef gt ver ffentlicht 54 KAPITEL 4 IMPLEMENTIERUNG UND TEST 4 4 Verwaltung der Konfigurationsdateien Die Hauptarbeit zur Verwaltung der aktuellen Konfiguration wird von der Klasse ConfigManager erledigt Sie h lt eine Liste aller Netzlaufwerke im Speicher und bietet Methoden zum Hinzuf gen Entfernen und Ersetzen von deren Eintr gen Die einzelnen Listenelemente sind Instanzen der Klasse ConfigElement einem Java Bean das die Eigenschaften eines Netzlaufwerks enth lt Die Namen der Attribute und ihre Bedeutung sind in der nachfol genden Tabelle aufgelistet path String Der Pfadname unter dem das Netzlaufwerk angesprochen wer den soll description String Eine Kurzbeschreibung der auf diesem Netzlaufwerk vorhande url String Die CIFS URL zum Zugriff auf das Netzlaufwerk Sie hat das Format cifs host share also zum Beispiel cifs filesvi verwaltung domain String Der NT Domainname in der sich der betreffende Dateiserver befindet Dieser Wert wird beim Anmelden am Dateiserver dem Benutzernamen vorangestellt users SortedSet Eine Menge von Benutzerna men die Zugriff auf dieses Netz laufwerk erhalten sollen Nur diesen Benutzern wird das Lauf werk in der bersicht angebo ten Zum Abspeichern der Konfiguration auf Festplatte wird jede ConfigElement
71. nf tomcat apache conf vor Ihr Inhalt muss in den virtuellen Host in der Apache Konfiguration etc apache httpd conf eingefiigt werden Dies kann zum Beispiel so aus sehen lt VirtualHost www foo bar 443 gt ServerAdmin webmaster foo bar DocumentRoot var www www foor bar ServerName www foo bar ErrorLog var log apache www foo bar error log TransferLog var log apache www foo bar access log SSLEngine On SSLCertificateFile etc apache ssl crt www foo bar crt SSLCertificateKeyFile etc apache ssl key www foo bar key SetEnvIf User Agent MSIE nokeepalive Include var lib tomcat conf tomcat apache conf lt VirtualHost gt Von nun an ist der virtuelle SSL Host www foo bar erreichbar und kann Servlets verwenden Zum Schluss muss noch die eigentliche Web Anwendung installiert werden Dies geschieht durch einfaches Kopieren des Web Archivs und Neustarten von Tomcat Ab sofort steht die Anwendung unter der Adresse https www foo bar dav zur Verf gung und kann ber eine Web Oberfl che konfiguriert werden 74 KAPITEL 5 BENUTZUNG DES SYSTEMS 5 2 2 Administration ber die HTML Oberflache Nach der Grundinstallation aus dem vorherigen Kapitel muss die Anwen dung noch konfiguriert werden Dazu kann mit einem Webbrowser das virtu elle Netzlaufwerk admin aufgerufen werden Im vorherigen Beispiel ware die Adresse also https www foo bar dav admin hetp hecwitdav admin sgybas A E Configuration for sgybas
72. ngeschaltet Das folgende Diagramm veranschaulicht diesen Sachverhalt Der Webserver ist dabei in der Mitte dargestellt und die einzelnen Dateiserver auf der rechten Seite Eventuell auf der Strecke von den Benutzern zum Webserver vorhan dene Proxy Server wurden nicht eingezeichnet Siehe Abschnitt 3 5 2Siehe Abschnitt 3 7 1 3 AUFGABENSTELLUNG UND VORGABEN T mm Leg CIFS H ff Webserver d Benutzer 1 3 Aufgabenstellung und Vorgaben Im Rahmen dieser Arbeit ist ein Programm zu erstellen das dynamisch HTML Seiten generiert Dadurch reicht ein einfacher Webbrowser zum Zu griff auf Projektdaten aus Alternativ kann der Zugriff auch ber das WebDAV Protokoll wie es von Microsofts Internet Explorer ab Version 4 0 unterst tzt wird erfolgen In jedem Fall ist darauf zu achten dass keine spezielle lokal zu installierende Software notwendig ist Im Gegensatz zur urspr nglichen Aufgabenstellung die in Anhang A ent halten ist sind in der HTML Oberfl che nur M glichkeiten zum Download Upload und L schen von Dateien notwendig Alle anderen Aufgaben wie zum Beispiel das Umbenennen von Dateien oder Anlegen von Verzeichnis sen k nnen ber das WebDAV Protokoll erledigt werden Zus tzlich zur HTML Oberfl che f r Administratoren muss auch noch die M glichkeit bestehen nderungen an den Einstellungen direkt in einer Kon figurationsdatei vorzunehmen Daher ist es nicht m gl
73. nsicht wurde erweitert um das Hochladen und L schen von Dateien innerhalb eines HTML Formulars zu erm glichen Zur oben genannten Klasse DefaultServlet gibt es noch eine Unterklasse WebDAVServlet die die erweiterten WebDAV Methoden bearbeitet Diese beiden Klassen greifen jedoch nicht direkt auf ein lokales Verzeichnis zu son dern berlassen diese Arbeit einer anderen Klasse Sie muss vom Resources Interface die folgenden Zugriffsoperation implementieren die dort auch aus f hrlich kommentiert sind interface Resources String getMimeType String file String getRealPath String path URL getResource String path InputStream getResourceAsStream String path boolean exists String path long getResourceModified String path long getResourceCreated String path long getResourceLength String path boolean isCollection String path String l getCollectionMembers String path boolean setResource String path InputStream content boolean createCollection String path boolean deleteResource String path Bisher wurden von den Tomcat Autoren zwei solcher Klassen implemen tiert FileResources erlaubt den Zugriff auf lokale Verzeichnisse und JarResources den Zugriff auf Dateien innerhalb von JAR Archiven Wel ches lokale Verzeichnis bzw welches JAR Archiv f r eine bestimmte URL verwendet werden soll kann in der globalen Konfigurationsdatei festgelegt werden Dies ist jedoch so eng mit der Implementierung des Tomcat Kerns
74. nstalliert sein die einen Webserver beinhalten Diese Webserver d rfen dann jedoch nicht gleichzeitig versuchen TCP IP Verbindungen auf dem Standard Port 80 anzunehmen 36 KAPITEL 3 VERWENDETE STANDARDS UND TECHNOLOGIEN Section contrib web Priority optional Depends jdk1 1 dev ibm jdk1 1 installer j2sdk1 3 libxerces java libservlet2 2 java Description Java Servlet 2 2 engine with JSP 1 1 support Jakarta Tomcat is the reference implementation for the Java Servlet 2 2 and JavaServer Pages JSP 1 1 specification from the Apache Jakarta project Weitere Beschreibung Auferdem ist eine Steuerdatei fiir das Standardprogramm make zu erstellen die dann die eigentliche Arbeit erledigt Hierzu kann auf eine gro e Auswahl an Hilfsprogrammen zur ckgegriffen werden es m ssen lediglich die make Ziele build clean install binary arch und binary indep vorhanden sein Das folgende Beispiel zeigt einen Ausschnitt aus dieser Datei die unter dem Namen debian rules vorhanden sein muss Hier werden Hilfsprogramme aus dem Paket debhelper verwendet die alle mit dem Pr fix dh_ beginnen usr bin make f debian rules file for tomcat uses debhelper V2 Ese Ad build build stamp build stamp dh_testdir call ant to build Tomcat in the build directory JAVA Dant home usr share ant org apache tools ant Main touch build stamp install build dh_testdir dh_testroot dh_clean k dh_installdirs Build the Tomca
75. nutzerkennung gesucht Wenn diese gefunden wur 28 KAPITEL 3 VERWENDETE STANDARDS UND TECHNOLOGIEN de wird genau dieselbe Anfrage noch einmal wiederholt diesmal aber mit Anmeldung Wenn diese Anmeldung erfolgreich war weis man dass der Be nutzername mit zugeh rigem Kennwort g ltig ist Spezifiziert wird dieser Vorgang in RFC 2307 und RFC 2829 3 7 Common Internet File System CIFS SMB eine Abkiirzung fiir Server Message Block ist ein Protokoll um Ver zeichnisse Drucker serielle Schnittstellen und weitere Kommunikationsge rate von anderen Rechnern ber ein Netzwerk zug nglich zu machen Es wurde Anfang der achtziger Jahre von IBM entwickelt fand seinen Einzug in die PCs aber erst durch die Implementierung von Microsoft in Windows f r Workgroups 3 11 Das Protokoll l sst sich auf fast alle Netzwerkprotokolle wie z B IPX von Novell DECnet und nat rlich auch TCP IP aufsetzen In den meisten F l len wird hierbei noch das NetBIOS Protokoll zwischengeschaltet das dann im Fall von TCP IP von Microsoft als NBT NetBIOS over TCP IP be zeichnet wird In sp teren Versionen des SMB Protokolls tr gt im Moment die interne Ver sionsnummer NT LM 0 12 und ist in aktuellen Windows Versionen sowie im frei erh ltlichen Samba Paket implementiert Sie enth lt weitere Dienste wie Namensaufl sung und Anmeldung am Netzwerk Als gro e Teile des SMB Protokolls durch die Samba Entwickler erforscht und ffentlic
76. o nenten zeigt das n chste UML Diagramm 47 48 KAPITEL 4 IMPLEMENTIERUNG UND TEST WebDAV Protokoll LDAP Authentifiziefung 1 Mozilla LDAP IT JHTTP Protokd Konfigurationsverwalltung ContextManager ContextMappqg JCIFS Klasqde 4 2 Das WebDAV Servlet Das zu erstellende Servlet soll ausschlie lich die Methoden der Servlet Spezifikation einsetzen Dadurch ist sichergestellt dass es mit jeder Servlet Engine zusammenarbeitet Trotzdem muss vor Beginn der Implementierung entschieden werden welche Servlets Engine vor allem fiir Tests verwendet werden soll Hierbei fiel die Wahl auf Tomcat vom Apache Jakarta Projekt das im Internet frei unter Tomcat erh ltlich ist da es die von Sun unter st tzte Referenz Implementierung darstellt F r die Realisierung der Servlet Klassen wurde zum Teil auf Beispiele der n chsten Tomcat Generation zur ckgegriffen Dort befinden sich im Pa ket org apache catalina servlets eine Klasse DefaultServlet die die Diese Version 4 0 ist zur Zeit noch in einem Anfangsstadium daher wird ihr Einsatz in der Praxis nicht empfohlen Die bernommenen Code Fragmente funktionieren aber auch einwandfrei mit lteren Versionen oder anderen Servlet Engines 4 2 DAS WEBDAV SERVLET 49 HTTP Methoden GET und POST bearbeiten kann Falls ein GET Zugriff auf ein Verzeichnis erfolgt wird dessen Inhalt mit Hilfe der Klasse DirectoryBean dargestellt Diese A
77. on w hlen die je von der Free Software Foundation ver ffentlicht wurde 10 Wenn Sie den Wunsch haben Teile des Programms in anderen freien Programmen zu verwenden deren Bedingungen f r die Verbreitung anders sind schreiben Sie an den Autor um ihn um die Erlaubnis zu bitten F r Soft ware die unter dem Copyright der Free Software Foundation steht schreiben Sie an die Free Software Foundation wir machen zu diesem Zweck gelegent lich Ausnahmen Unsere Entscheidung wird von den beiden Zielen geleitet werden zum einen den freien Status aller von unserer freien Software ab geleiteten Datenwerke zu erhalten und zum anderen das gemeinschaftliche Nutzen und Wiederverwenden von Software im allgemeinen zu f rdern B 2 1 Keine Gew hrleistung 811 Da das Programm ohne jegliche Kosten lizenziert wird be steht keinerlei Gew hrleistung f r das Programm soweit dies ge setzlich zul ssig ist Sofern nicht anderweitig schriftlich best tigt stellen die Copyright Inhaber und oder Dritte das Programm so zur Verf gung wie es ist ohne irgendeine Gew hrleistung we der ausdr cklich noch implizit einschlie lich aber nicht begrenzt auf Marktreife oder Verwendbarkeit f r einen bestimmten Zweck B 2 ALLGEMEINE FFENTLICHE GNU LIZENZ 93 Das volle Risiko bez glich Qualit t und Leistungsf higkeit des Pro gramms liegt bei Ihnen Sollte sich das Programm als fehlerhaft herausstellen liegen die Kosten f r notwendigen S
78. pace PRE white space pre In Java gibt es eine einfache M glichkeit solche Programme zu erstellen Sie werden Servlets genannt und in Abschnitt 3 10 2 beschrieben 3 3 HYPERTEXT TRANSFER PROTOCOL HTTP 17 3 3 Hypertext Transfer Protocol HTTP Zur bertragung der Daten die in einem Webbrowser dargestellt werden sollen wird im Internet das Hypertext Transfer Protocol HTTP eingesetzt Hierbei wird vom Client eine TCP IP Verbindung zum Webserver aufgebaut innerhalb derer zuerst die Anfrage des Clients und danach die Antwort des Servers bertragen werden Die Anfrage besteht aus beliebig vielen Kopfzeilen engl header lines da nach kommt in einer Zeile die bertragungsmethode gefolgt vom lokalen Ort des gew nschten Dokuments und der Protokollversion jeweils durch Leerzei chen getrennt Abgeschlossen wird die Anfrage durch eine Leerzeile Die beiden am h ufigsten eingesetzten bertragungsmethoden sind GET zur Anforderung von einzelnen Dateien und POST zur bermittlung der Inhalte eines Formulars Wenn man sich noch einmal das Beispiel aus Abschnitt 3 1 ansieht stellt man fest dass in dem lt form gt Tag genau diese bertragungs methode gew hlt wurde Die genaue Kodierung der Formulardaten kann dem HTTP Standard unter RFC 2616 entnommen werden Eine konkrete Anfrage wie sie vom Netscape Communicator 4 75 zur Anfor derung der Datei index html geschickt wird sieht folgenderma en aus User Agent Mozil
79. rd Die Authentifizierung erfolgt durch eine Instanz der Klasse CifsLogin die im Konstruktor von CifsDisk bergeben wird Sie selbst ist lediglich ein Bean das die beiden Eigenschaften Benutzername und Passwort enth lt Intern wird in Tomcat die Bezeichnung Context f r lokale Ressourcen verwendet daher der Name der Klasse 52 KAPITEL 4 IMPLEMENTIERUNG UND TEST CifsDisk bietet eine Methode zur Erzeugung eines CifsFile Objekts das wiederum eine ganze Reihe von Methoden zum Lesen Schreiben und L schen von Dateien Anlegen von Verzeichnissen und Setzen von Zugriffsberechtigun gen zur Verf gung stellt Als Parameter wird jeweils die Datei beziehungs weise das Verzeichnis als Zeichenkette bergeben Das Bindeglied zwischen der Resources Schnittstelle von Tomcat und den Zugriffsmethoden auf CifsDisk stellt die Klasse CifsResources dar Sie im plementiert das Resources Interface und setzt deren Methoden auf die von CifsDisk um Die getResourceLength Methode die zur Ermittlung der L nge der angegebenen Datei dient hat beispielsweise den folgenden Aufbau Die Ausnahme engl exception InvalidPasswordException wird geworfen falls das angegebene Passwort in der CifsLogin Instanz ung ltig ist In die sem Fall wird das WebDAV Servlet nach einem neuen Benutzernamen und zugeh rigem Passwort fragen public long getResourceLength String path throws InvalidPasswordException IOException Zuerst den lokalen Cache durchsuch
80. rd ner bezeichnet Zuerst muss ein neuer Webordner verbunden werden 5 1 BENUTZERHANDBUCH 69 Webordner hinzuf gen http kermit 8081 Ada ANEIS Wenn die Verbindung zum WebDAV Server besteht kann auf die dortigen Laufwerke wie auf direkt lokal verf gbare Netzlaufwerke zugegriffen werden Zum Beispiel k nnen Dateien beliebig verschoben oder umbenannt werden oder neue Verzeichnisse angelegt werden 70 KAPITEL 5 BENUTZUNG DES SYSTEMS u Explorer tmp A Desktop e d Arbeitsplatz INSTALL H a 3 5 Diskette A ey Win C GR D E S i LICENSE Li Systemsteuerung el DF Netzwerk 3 Geplante Vorg nge E Webordner dav von kermit H A sgybas 2 5 tmp old F Eigene Dateien Internet Explorer Netzwerkumgebung Papierkorb Um auch Unix Systemen den WebDAV Zugang zu erm glichen kann das frei erh ltliche und schon in Abschnitt 4 7 angesprochene Programm cadaver verwendet werden In diesem Abschnitt befindet sich ebenfalls ein ausf hrli ches Beispiel f r dessen Nutzung 5 2 ADMINISTRATION DES SYSTEMS 71 5 2 Administration des Systems 5 2 1 Installation des Systems Alle ben tigten Komponenten sind in einem Web Archiv enthalten das nur noch in das Anwendungsverzeichnis einer Servlet Engine installiert werden muss Dafiir kann jeder Webserver der die Servlet 2 2 und JSP 1 1 Standards unterstiitzt eingesetzt werden Die Installation und Konfiguration des Webservers mit Servlet Engine w
81. reiheit zu nehmen die Software weiterzugeben und zu ver ndern Im Ge gensatz dazu soll Ihnen die GNU General Public License die Allgemeine Of 85 86 ANHANG B GNU GENERAL PUBLIC LICENSE fentliche GNU Lizenz ebendiese Freiheit garantieren Sie soll sicherstellen da die Software f r alle Benutzer frei ist Diese Lizenz gilt fiir den Gro teil der von der Free Software Foundation herausgegebenen Software und fiir alle anderen Programme deren Autoren ihr Datenwerk dieser Lizenz unterstellt haben Auch Sie k nnen diese M glichkeit der Lizenzierung f r Ihre Program me anwenden Ein anderer Teil der Software der Free Software Foundation unterliegt stattdessen der GNU Library General Public License der Allge meinen ffentlichen GNU Lizenz f r Bibliotheken Mittlerweile wurde die GNU Library Public License von der GNU Lesser Public License abgel st Anmerkung des bersetzers Die Bezeichnung freie Software bezieht sich auf Freiheit nicht auf den Preis Unsere Lizenzen sollen Ihnen die Freiheit garantieren Kopien freier Software zu verbreiten und etwas f r diesen Service zu berechnen wenn Sie m chten die M glichkeit die Software im Quelltext zu erhalten oder den Quelltext auf Wunsch zu bekommen Die Lizenzen sollen garantieren da Sie die Software ndern oder Teile davon in neuen freien Programmen verwenden d rfen und da Sie wissen da Sie dies alles tun d rfen Um Ihre Rechte zu sch tzen m ssen w
82. s bedeutet dass all diese Pakete kostenlos sowohl privat als auch kom merziell genutzt werden d rfen Weiterhin ist der Quellcode verf gbar und darf beliebig auch ver ndert weitergegeben werden Erst dadurch konnten diese Programme als Teil des Projekts verwendet werden libservlet2 2 java libxerces java und tomcat sind unter der Apache Lizenz ASL 1 1 ver ffentlicht libldap java unter der Netscape Lizenz NPL 1 1 Die erstellten Klassen und die jCIFS Klassen sind unter der GNU General Public License GPL erschienen Die deutsche Ubersetzung dieser Lizenz ist in Anhang B abgedruckt sie ist jedoch nicht rechtlich verbindlich Die einzig verbindliche Lizenz ist die englische Originalfassung die im Internet unter GPL 2 eingesehen werden kann Anderungen an verwendeten Klassen stehen unter der gleichen Lizenz wie die Originalklassen selber Das heift f r erweiterte und ver nderte Klassen aus dem Tomcat Projekt gilt die Apache Lizenz ASL 1 1 f r die nderungen an der jCIFS Klassen gilt die GPL GPL 2 4 7 Test des Systems Als erstes wurde der WebDAV Kern entwickelt der zuerst lokal mit Hil fe der FileResources Klasse getestet wurde Daf r wurde das Unix Programm cadaver in der Version 0 13 3 aus dem Debian Paket von 8Siehe Abschnitt 4 3 4 7 TEST DES SYSTEMS 61 ftp ftp debian org dists woody verwendet da es zus tzliche Debug Informationen ausgeben kann Nachdem der lokale Zugriff funktionierte
83. seiten erhalten so ein konsistentes Layout zum Beispiel immer die gleiche Hintergrundfarbe und Schriftart Formatvorlagen lassen sich aber auch zur individuellen Gestaltung von au tomatisch generierten Daten verwenden So kann zum Beispiel immer das Firmenlogo im Hintergrund platziert werden Spezifiziert sind die Formatvorlagen f r Webseiten durch die so genannten Cascading Style Sheets CSS Version 1 0 in CSS 1 0 Mit ihrer Hilfe l sst sich das Layout jedes HTML Elements genauestens bestimmen Es lassen sich die Schriftart die Schriftgr e die Farbe der Schrift die Hintergrundfarbe Abst nde sowie Schriftattribute wie zum Beispiel kursiv festlegen CSS Spezifikationsdateien sind wie auch HTML Dateien reine Textdateien die sich mit jedem beliebigen Texteditor bearbeiten lassen Haupts chlich werden sie aber mit grafischen Editoren von professionellen Designern erstellt Das folgende Beispiel demonstriert die Layoutgestaltung einiger HTML Tags wie sie f r die Darstellung von HTML 2 0 empfohlen wurden Hi H2 H3 H4 margin top lem margin bottom 1em H5 H6 margin top 1em Hi text align center H1 H2 H4 H6 font weight bold H3 H5 font style italic Hi font size xx large H2 font size x large H3 font size large B STRONG font weight bolder relative to the parent I CITE EM VAR ADDRESS BLOCKQUOTE font style italic PRE TT CODE KBD SAMP font family monos
84. t name gt lt h1 gt lt xsl apply templates gt lt xsl sort select workday date gt lt xsl apply templates gt lt body gt lt html gt lt xsl template gt Kl lt xsl template match task gt 32 KAPITEL 3 VERWENDETE STANDARDS UND TECHNOLOGIEN lt tr gt lt td gt lt xsl value of select company gt lt td gt lt td gt lt xsl value of select project gt lt td gt lt td gt lt xsl value of select location gt lt td gt lt td align right gt lt xsl value of select duration gt lt td gt lt td gt lt xsl apply templates gt lt td gt lt tr gt lt xsl template gt 3 8 3 XML Schemata Mit Hilfe von Schemata XML Schema l sst sich die erlaubte Struktur einer XML Datei festlegen Im Gegensatz zu DTDs Document Type Definitions mit deren Hilfe sich die erlaubte Schachtelung von XML Tags festlegen l sst gehen Schemata einen Schritt weiter Sie definieren auch den erlaubten Inhalt also den Text zwischen Tags sowie Datentypen von Attributen So l sst sich zum Beispiel festlegen dass der Wert eines Attributs date ein g ltiges Datum bestehend aus Tag Monat und Jahr sein muss Neben bereits vordefinierten Datentypen wie z B einer ganzen Zahl oder eines Datums lassen sich auch weitere komplexe Datentypen aus den schon vorhandenen zusammensetzen Au erdem besteht bei Zahlen und Datums angaben die M glichkeit einen zul ssigen Wertebereich anzugeben Ein XML Parser kann
85. t JAR 3 10 JAVA STANDARDS 37 cd build classes amp amp JAR cf debian tomcat usr share java tomcat jar org Eine ausfiihrliche Beschreibung zur Erstellung von Debian Paketen kann in der offiziellen Dokumentation von Jackson nachgelesen werden Dort finden sich auch Hinweise auf Beispiele die einen Einstieg in diese Materie verein fachen 3 10 Java Standards 3 10 1 Java Beans Mit der Java Version 1 1 wurde von Sun ein Komponentenmodell entwickelt mit dessen Hilfe ein komplexes Softwareprojekt aus einfachen Bausteinen zusammengesetzt werden kann Solche Komponenten sollen auferdem die Wiederverwendbarkeit von Code erh hen um dadurch Entwicklungskosten und zeit einzusparen Standardisiert wurde dieses Verfahren unter dem Namen Java Beans Die zur Zeit aktuelle Version 1 01 der Spezifikation ist unter Hamilton ver ffentlicht Bei Java Beans handelt es sich um normale Java Klassen die jedoch einige zus tzliche Eigenschaften erf llen m ssen Durch sie wird es m glich Beans auch mit Hilfe von grafischen Entwicklungsumgebungen miteinander zu ver kn pfen ohne dass eine Zeile Code geschrieben werden muss Die Attribute einer Klasse also deren Instanz und Klassenvariablen werden bei Java Be ans Eigenschaften engl properties genannt Ansonsten kann man sie aber wie in jeder normalen Java Klasse auch verwenden Die zus tzlichen Eigenschaften f r Java Beans sind im Einzelnen e Jede Bean Klasse muss
86. tet nach dem Verbindungsaufbau an alle Daten transparent weiter das hei t das SSL Protokoll l uft direkt zwischen dem Webbrowser auf dem Client und dem Webserver auf den Zielrechner ab Der Proxy und alle anderen Rechner dazwischen sehen nur den verschl sselten Datenstrom Man k nnte so also auch ein anderes Protokoll anstatt HTTP ber einen oder mehrere Proxys durchleiten 3 6 Lightweight Directory Access Protocol LDAP Der Verzeichnisdienst LDAP RFC 2251 ging aus dem wesentlich komplexe ren X 500 Protokoll hervor um es auf die haupts chlich in der Praxis verwen deten F higkeiten zu reduzieren Das X 500 Protokoll wie unter ISO 9594 spezifiziert setzte urspr nglich auf dem OSI Schichtenmodell als Netzwerk protokoll auf dieses wurde jedoch auf Grund der zu langwierigen Spezifika tionszeit bis auf ein paar experimentelle Forschungsprojekte nicht eingesetzt Als vollwertiger Verzeichnisdienst bietet LDAP weitreichende M glichkeiten zur Speicherung von beliebigen hierarchischen Datenstrukturen Besonders die M glichkeit in kompletten Unterb umen nach einem Muster zu suchen macht es zu einem sehr m chtigen Werkzeug das andere propriet re Ver zeichnisdienste als Standard abl sen kann In diesem Projekt wird LDAP jedoch nicht zur Speicherung oder Suche von Informationen verwendet sondern lediglich zur Authentifizierung von Be nutzern Dabei wird zuerst ohne sich anzumelden auf dem LDAP Server nach der gew nschten Be
87. thode zu unterscheiden Ein Beispiel f r ein solches Servlet befindet sich in Abschnitt 4 2 3 10 3 JavaServer Pages JSP Bei Webseiten die von CGI Programmen oder von Servlets erzeugt werden ist meist ein gro er Teil statisch vorgegeben zum Beispiel der Kopf mit einer berschrift und einer einf hrenden Erl uterung Nur ein kleiner Teil dieser Seite wird abh ngig von der aktuellen Anfrage erzeugt meist durch Abfragen einer Datenbank Typischerweise werden die statischen Teile einer Seite von einem Grafiker er stellt Dieser HTML Code muss dann von dem CGI Programm oder von dem Servlet jeweils zus tzlich mit ausgegeben werden Realisiert wird dies indem der HTML Code Zeile f r Zeile durch einzelne print Anweisungen ausge geben wird Wenn nun vom Grafiker nderungen am Layout vorgenommen werden m ssen diese von Hand im Programmcode nachgef hrt werden Dies ist meist sehr schwer da die HTML Struktur innerhalb von Programmcode nur mit grossem Aufwand bersichtlich dargestellt werden kann Um genau diesem Problem abzuhelfen wurde eine M glichkeit geschaffen di rekt im HTML Code einzelne Programmanweisungen einzuf gen Dazu wur den neue HTML Tags definiert so dass es sich noch immer um eine g ltige HTML Seite handelt die auch mit grafischen Hilfsprogrammen bearbeitet werden kann Solche L sungen existieren f r Perl und andere Programmier sprachen im Fall von Java Servlets sind JSP Dateien wie unter JSP 1 1
88. thoden auch das Hochladen von Dateien Erst dadurch wird es m glich einen vollst ndigen Dateimanager in einem Webbrowser zu implementieren Das folgende Beispiel stellt einen Ausschnitt aus einer HTML Datei mit ei nem Formular dar lt form method post action login jsp gt lt p gt Name lt input type text name name size 20 gt lt p gt lt p gt Passwort lt input type password name pass size 20 gt lt p gt lt p gt Server lt select name server size 1 gt lt option gt tick lt option gt trick lt option gt track lt option gt rupert lt select gt lt p gt lt p gt lt input type submit value Einloggen gt lt p gt lt form gt 3 2 Cascading Style Sheets CSS Um dem urspriinglichen Gedanken von HTML der Trennung von Struk tur und Layout wieder gerecht zu werden wurde eine eigene Sprache zur Layoutgestaltung von Webseiten entwickelt Mit Hilfe dieser Sprache lassen sich Formatvorlagen engl style sheets definieren die beliebig ineinander geschachtet werden k nnen Dadurch kann das Layout einer Webseite von 16 KAPITEL 3 VERWENDETE STANDARDS UND TECHNOLOGIEN Grafikdesignern erstellt werden w hrend der eigentliche textuelle Inhalt von Redakteuren oder dynamisch von einem Programm erzeugt wird Durch die M glichkeit der Schachtelung von Formatvorlagen l sst sich ein firmenweites Basislayout erstellen das bei Bedarf auch f r einzelne Seiten angepasst werden kann Betrachter der Web
89. tion erlaubt e Zwischen Paketen k nnen Abh ngigkeiten und Konflikte festgelegt wer den so dass gemeinsame Komponenten mehrerer Pakete in ein weiteres Paket ausgelagert werden k nnen und all diese Pakete eine Abh ngig keit von dem neuen Paket definieren Bei einer Installation eines Pakets k nnen auf Wunsch auch automatisch alle abh ngigen Pakete installiert werden e Pakete k nnen Skripts enthalten die vor und nach der Installation aus gef hrt werden Mit diesen Skripts ist es somit m glich noch notwen dige Konfigurationsarbeiten durchzuf hren Vor dem Entfernen eines Pakets k nnen diese Schritte dann automatisch wieder r ckg ngig ge macht werden e F r jede auf dem System vorhandenen Datei kann festgestellt wer den aus welchem Paket sie stammt Dadurch kann vermieden werden dass Dateien berschrieben werden wenn sie auch in anderen Paketen vorhanden sind Bei einem Update eines Pakets werden in der neuen Version nicht mehr vorhandene Dateien automatisch gel scht 3 9 DEBIAN PAKETE 35 e Bei den Abh ngigkeiten und Konflikten k nnen nicht nur real exis tierende Pakete sondern auch virtuelle Pakete angegeben werden So kann ein Servlet Engine angeben dass sie zum Betrieb einen Webserver aber ganz egal welchen ben tigt Alle Pakete die einen Webserver beinhalten erkl ren dies und auch die Tatsache dass nur ein einziger Webserver installiert sein kann in ihren Steuerinformationen e Konfigura
90. tionsdateien k nnen in Paketen speziell gekennzeichnet wer den Dadurch werden sie wenn sie vom Systemadministrator ver ndert wurden bei der Installation einer neuen Version nicht berschrieben 3 9 2 Erstellung von Debian Paketen Debian Pakete k nnen mit Hilfe von Programmen aus dem dpkg dev Paket erzeugt werden Hierzu werden alle zu installierenden Dateien in eine Verzeichnishierarchie kopiert die Konfigurationsdateien markiert und die Skripts zur automatischen Konfiguration hinzugef gt Bei Open Source Programmen also Programmen deren Quellcode frei verf gbar ist ist die Erzeugung von Debian Paketen besonders einfach In den Verzeichnisbaum des Quellcodes kann einfach ein Unterverzeichnis eingef gt werden das alle notwendigen Dateien zur Erstellung eines Paket enth lt Um nun noch die Beschreibung die Klassifikation die Abh ngigkeiten und Konflikte spezifizieren zu k nnen ist eine spezielle Steuerdatei engl control file zu erstellen Diese hat ein vorgegebenes Format und liegt typischerweise unter dem Namen debian control im Hauptverzeichnis vor Ein Beispiel f r eine solche Datei ist die Steuerdatei des tomcat Pakets Source tomcat Section contrib web Priority optional Maintainer Stefan Gybas lt sgybas debian org gt Build Depends debhelper gt 2 1 0 ant gt 1 1 2 j2sdk1 3 Standards Version 3 2 1 Package tomcat Architecture all 15 Theoretisch k nnten auch mehrere Pakete gleichzeitig i
91. verschl sselter SSL Zugriff von den Webbrowsern auf den Webserver m glich um die Sicherheit der Projektdaten zu gew hrleisten Anhang B GNU General Public License Diese Ubersetzung wird mit der Absicht angeboten das Verst ndnis der GNU General Public License GNU GPL zu erleichtern Es handelt sich jedoch nicht um eine offizielle oder im rechtlichen Sinne anerkannte Ubersetzung Die Free Software Foundation FSF ist nicht der Herausgeber dieser Uber setzung und sie hat diese Ubersetzung auch nicht als rechtskraftigen Ersatz fiir die Original GNU GPL anerkannt Da die Ubersetzung nicht sorgfaltig von Anw lten berpr ft wurde k nnen die bersetzer nicht garantieren da die bersetzung die rechtlichen Aussagen der GNU GPL exakt wiedergibt Wenn Sie sichergehen wollen da von Ihnen geplante Aktivit ten im Sinne der GNU GPL gestattet sind halten Sie sich bitte an die englischsprachige Originalversion Die Free Software Foundation m chte Sie darum bitten diese bersetzung nicht als offizielle Lizenzbedingungen f r von Ihnen geschriebene Program me zu verwenden Bitte benutzen Sie hierf r stattdessen die von der Free Software Foundation herausgegebene englischsprachige Originalversion Es ist jedermann gestattet diese Lizenzurkunde zu vervielf ltigen und un ver nderte Kopien zu verbreiten nderungen sind jedoch nicht erlaubt B 1 Vorwort Die meisten Softwarelizenzen sind daraufhin entworfen worden Ihnen die F
92. w hlen und vorher die Authentifizierung pr fen Dies ist die Datei web xml im Verzeichnis WEB INF Details hierzu finden sich in Ab schnitt 3 10 5 4 3 ZUGRIFF AUF CIFS LAUFWERKE 51 if method equals METHOD_PROPFIND if checkAuth req resp doPropfind req resp else if method equals METHOD_PROPPATCH if checkAuth req resp doProppatch req resp else if method equals METHOD_MKCOL if checkAuth req resp doMkcol req resp Banke else Methoden die keine WebDAV Erweiterungen sind werden von DefaultServlet bearbeitet super service req resp Anhand der angeforderten Datei aus der HTTP Anfrage wird ent schieden auf welches CIFS Laufwerk zugegriffen werden soll Die ers te Komponente im Pfad stellt dabei den Laufwerksnamen dar F r die Anfrage intern support antrag txt w rde also auf die Datei support antrag txt auf dem Netzlaufwerk intern zugegriffen werden Die Abbildungen der Laufwerksnamen auf die eigentlichen CIFS Laufwerke ber nimmt hierbei die Klasse ContextMapper Sie greift hierf r wie in Abschnitt 4 4 beschrieben auf die aktuellen Konfigurationsdaten zu 4 3 Zugriff auf CIFS Laufwerke Zum Zugriff auf Netzlaufwerke nach dem CIFS Standard wurden die Java Klassen von Hranitzky verwendet Sie sind im Paket org gnu jcifs und in Unterpaketen davon enthalten Der Kern ist das Interface CifsSession dessen Implementierung CifsDisk f r Verbindungen zu CIFS Laufwerken eingesetzt wi
93. wird Wie auch HTML Dateien die schon im Abschnitt 3 1 erl utert wurden sind auch XML Dokumente reine Textdateien deren Struktur durch Tags repr sentiert wird Sie k nnen also auch mit jedem beliebigen Texteditor erzeugt und bearbeitet werden Au erdem gibt es fertige XML Bibliotheken f r alle g ngigen Skript und Programmiersprachen Ein XML Parser ist in der Lage die Struktur jeder beliebigen XML Datei zu analysieren falls diese ein wohlgeformtes engl well formed XML Dokument darstellt Mit ein und derselben Standardkomponente kann also jede Anwen dung die hierarchische Anordnung der XML Tags einlesen ohne dass immer ein neuer Parser geschrieben werden m sste Zus tzlich ist es noch m glich f r XML Dokumente eine Grammatik in Form einer DTD Document Type Definition oder eines XML Schemas siehe Abschnitt 3 8 3 anzugeben die dann vom Parser zur berpr fung der syntaktischen Korrektheit verwendet wird Ein solches Dokument wird dann als g ltig engl valid im Bezug auf diese Grammatik bezeichnet 3 8 1 Darstellung von HTML Dokumenten als XML Im Vergleich zu HTML Dokumenten m ssen XML Dokumente wesentlich strengeren Richtlinien gen gen Zum Einen spielt die Gro und Kleinschrei bung der Tags eine Rolle zum Anderen m ssen die Werte von Tag Attributen immer in Anf hrungszeichen stehen Einen weiteren Unterschied gibt es bei den Separator Tags also den Tags oh ne zugeh rige Endmarkierung Sie m ssen in XML
94. wurde auf einen lokalen Samba Server ber die CIFS Klassen zugegriffen Dabei traten sehr wenig Probleme auf wie folgender Testlauf demonstriert sgybas kermit gt cadaver localhost dav Looking up hostname Connecting to server connected Authentication required for DAV repository Username sgybas Password k k dav dav gt 1s Listing collection dav collection is empty dav dav gt put libxerces java_1 2 0 2_all deb Uploading libxerces java_1 2 0 2_all deb to dav libxerces java_1 2 0 2_all deb Progress 100 0 of 637624 bytes succeeded dav dav gt 1s Listing collection dav succeeded libxerces java_1 2 0 2_all deb 637624 Nov 02 13 11 dav dav gt mkdir test1 Creating test1 succeeded dav dav gt 1s Listing collection dav succeeded Coll testi 0 Nov 02 13 12 libxerces java_1 2 0 2_all deb 637624 Nov 02 13 11 dav dav gt cd testi dav dav test1 gt put libservlet2 2 java_2 2 1_all deb Uploading libservlet2 2 java_2 2 1_all deb to dav test1 libservlet2 2 java_2 2 1_all deb Progress 100 0 of 115992 bytes succeeded dav dav testi gt 1s 62 KAPITEL 4 IMPLEMENTIERUNG UND TEST Listing collection dav test1 succeeded libservlet2 2 java_2 2 1_all deb 115992 Nov 02 13 12 dav dav test1 gt cd dav dav gt rm testi Deleting test1 succeeded dav dav gt 1s Listing collection dav succeeded libxerces java
Download Pdf Manuals
Related Search
Related Contents
ペレットストーブの輸入について Playstation®3 8.23MB CH260-CH440 Service Manual シグ”” 庫赤外線乾燥機 りこの取扱説明書をよくお読みの上、 機械の Icy Dock MB884U-C Copyright © All rights reserved.
Failed to retrieve file