Java Security Manager Seminararbeit von Bodmer Martin, Ia00

Größe: px
Ab Seite anzeigen:

Download "Java Security Manager Seminararbeit von Bodmer Martin, Ia00"

Transkript

1 Java Security Manager Seminararbeit von Bodmer Martin, Ia00 Fachhochschule Aargau Departement Technik Studiengang Informatik Betreuender Dozent: Prof. Dr. C. Nicola Windisch, 19. Juni 2003

2 Zusammenfassung Seite 1 Dieses Dokument gibt einen umfassenden Überblick über das Java Sicherheits-Model (java security model). Es zeigt unter anderem die Entwicklung von Java Security in den letzten Jahren und erläutert die einzelnen Komponenten und deren Zusammenspiel. Im Speziellen wird auf den Java Security Manager eingegangen und anhand eines Beispiels gezeigt, wie man einen eigenen Security Manager erstellen kann. Das Erstellen eines Policy-Files wird ebenfalls detailliert beschrieben.

3 Inhaltsverzeichnis Seite 2 Einleitung Entwicklung von Java Security JDK 1.0 Security - Das Sandkastenmodell JDK 1.1 Security - Alles oder nichts Java 2 Security - fine-grained security Java 2 Security im Detail Byte-Code Verifier ClassLoader CodeSource Permissions Protection Domains Policy Securtiy Manager AccessController Der keystore Der Security Manager im Einsatz Der eigene Security Manager Verwendung von Permissions Das dazugehörige Policy File Starten von Applets/Applikationen Applets Applikationen Neue Möglichkeiten und Gefahren Schlussfolgerung A. Anhang A1. Applikationsbeispiel Code A1.1. FileIO.java A1.2. PasswordSecurityManager.java A1.3. secure.policy A2. Bibliographie... 24

4 Seite 3 Einleitung Sicherheit gewann in den letzten Jahren immer mehr an Bedeutung bei der Softwareentwicklung. Dies, weil die globale Vernetzung von Rechnern in dieser Zeit rapide zugenommen hat und das Verlangen von Benutzern, wie auch von Entwicklern, nach sicherer Software gestiegen ist. SUN hat dieses Problem schon früh erkannt und bietet seit der Entwicklung von Java ein Sicherheitsmodell. Dieses war in den letzten Jahren einem steten Wandel unterzogen, um den neuen Sicherheitsanforderungen gerecht zu werden und um das Sicherheitsmodell zu verfeinern. Eine Kernkomponente des Java Security Modells ist der Security Manager und diesen wollen wir nun im folgenden genauer erläutern und dessen Einsatz an einem Beispiel zeigen.

5 Seite 4 1 Entwicklung von Java Security Man schaute schon bei der Entwicklung von Java darauf, aus den Fehlern anderer Programmiersprachen, wie C oder C++, zu lernen. Es wurden daher von Anfang an gewisse Sicherheitskonzepte eingeführt. Zum Beispiel kann man mit Java nicht direkt auf den Speicher zugreifen, sondern ihn nur via Referenzen ansprechen, Objekte und Methoden die als final deklariert wurden können nicht geändert werden, Arraygrenzen werden bei jedem Zugriff geprüft, Object casting ist beschränkt (Type safety!), Varaiblen können nicht verwendet werden bevor sie initialisiert sind, Garbage collection schaut dafür, dass nicht mehr verwendeter Speicher wieder freigegeben wird. Das Security Model von Java hat in den letzten paar Jahren eine erhebliche Veränderung erlebt. In den folgenden Kapiteln sollen nun kurz diese Entwicklungsstufen aufgezeigt werden. 1.1 JDK 1.0 Security - Das Sandkastenmodell Das JDK 1.0 (Java Development Kit) hatte ein sogenanntes Sandkasten Sicherheitsmodell (sandbox security model). Dieses Modell machte eine restriktive Trennung zwischen Java Applikationen und Applets. Alle Applikationen, da sie immer lokal geladen wurden, wurden durch das Security Model als vertrauenswürdig angeschaut und hatten daher uneingeschränkten Zugriff auf alle Ressourcen des JDK 1.0. Im Gegensatz dazu wurden alle Applets, da sie meistens über ein Netzwerk geladen wurden, als nicht vertrauenswürdig eingestuft und hatten dementsprechend relativ eng beschränkten Handlungsraum. Das Applet konnte nun in diesem kreierten Sandkasten arbeiten, ohne eine Sicherheitsrisiko für die JVM oder das darrunterliegende System darzustellen.

6 1.2 JDK 1.1 Security - Alles oder nichts Seite 5 Man sah schnell ein, dass das Sandbox-Model des JDK 1.0 zu restriktive ist und man suchte eine passende Lösung. Im JDK 1.1 wurden daher die sogenannten signierten Applets (signed applets) eingeführt. Ein signiertes Applet ist ein Applet verpackt in einem Java Archiv (JAR) und mit einem privaten Schlüssel (private key) signiert. Dieses Konzept ermöglichte nun einen Unterschied zwischen Applets, die von vertrauenswürdigen Quellen kamen und solchen die von nicht vertrauenswürdigen Quellen stammten. Vertrauenswürdige Applets hatten die gleichen Berechtigungen wie lokal geladene Applikationen Dieses Konzept war aber immer noch nicht zufriedenstellend, denn es erlaubte nur einem Applet den vollen Zugriff zu gewähren oder es in dem vorgegebenen Sandkasten laufen zu lassen. Zudem hatten Applikationen immer noch von Grund auf vollen Zugriff, obwohl es zum Teil wünschenswert wäre diese in einem Sandkasten laufen zu lassen, wenn man nicht weiss, woher die Applikation kommt.

7 Seite Java 2 Security - fine-grained security Der grosse Unterschied zwischen dem Java 2 Sicherheitsmodell und seinen Vorgängern ist, dass erstmals nicht nur zwischen vertrauenswürdigem und nicht vertrauenswürdigem Code unterschieden werden kann, sondern es erlaubt, Code in verschiedene Sicherheitsstufen einzuteilen (fine-grained security), indem man dem Code definierte Einschränkungen bzw. Erlaubnisse (Permissions) zuweist. Einschränkungen können sowohl für Applets, wie auch für Applikationen definiert werden. Applikationen werden ohne angegebene Einschränkungen per Default als unrestricted angesehen und haben daher wie in JDK 1.2 vollen Zugriff auf die Ressourcen.

8 Seite 7 2 Java 2 Security im Detail Das Java 2 Sicherheitsmodell ist ein abgestimmtes Zusammenspiel verschiedenster Komponenten, die die Sicherheit gewährleisten sollen. In der untenstehenden Abbildung ist dieses Zusammenspiel dargestellt. Wir wollen nun in den folgenden Kapiteln die einzelnen Komponenten und deren Funktion betrachten. 2.1 Byte-Code Verifier Java Code muss nicht unbedingt von einem Java-Compiler stammen, er könnte zum Beispiel auch durch eine andere C++-Applikation erzeugt worden sein. Java Code wird auch oft über das Internet heruntergeladen und hier weiss man selten, wie dieser Code zustandgekommen ist. Um diesem Problem entgegenzuwirken, prüft der Byte-Code Verifier alle Klassendateien des Benutzers (user class files) ob die darin enthaltene Reihe von Byte-Code legal ist. Unter anderem untersucht der Byte-Code Verifier das Format der Klassendatei, d.h. es muss die richtige Länge haben, die korrekten magic numbers enthalten, keine operand stack overflows oder underflows besitzen und so weiter.

9 2.2 ClassLoader Seite 8 Der ClassLoader ist dafür zuständig, dass die richtigen Klassen in die Virutual Machine geladen werden. Zudem ist er auch für die verschiedenen Namensraume, die durch Packete (packages) kreiert werden, zur Laufzeit zuständig. Mit Namensräumen können verschiedene Objekte, die unter umständen den gleichen Namen besitzen, auseinandergehalten werden. 2.3 CodeSource Weil Java Code via Netzwerk heruntergeladen werden kann, ist es wichtig den Ursprung des Codes und dessen Autor zu kennen, um eine sichere Umgebung zu gewährleisten. Im Objekt java.security.codesource kann ein Java-Code komplett beschrieben werden. Das Objekt CodeSource enthält den Ursprung des Codes in Form einer URL und zudem eine Liste von Zertifikaten mit öffentlichen Schlüsseln, die zum privaten Schlüssel passen, mit dem der Code signiert wurde. Verschiedene Entscheide bezüglich Zugriffskontrolle basieren auf diesem Objekt. 2.4 Permissions Permissions bilden ein Kernpunkt des Java Sicherheitsmodells. Sie repräsentieren den Zugriff auf verschiedene Systemresourcen wie Dateien, Sockets, Systemeigenschaften, etc.. Zum Beispiel kann man damit einem Code Lese- und Schreib-Erlaubnis auf ein bestimmtes File gewähren. Eine Vielzahl der Permission-Klassen sind von der abstrakten Klasse java.security.permission abgeleitet, so zum Beispiel FilePermission, AWTPermission, etc.. Hier eine Liste der Möglichen Permissions: AllPermission AudioPermission AuthPermission AWTPermission FilePermission NetPermission PropertyPermission ReflectPermission RuntimePermission SecurityPermission SerializablePermission SocketPermission SQLPermission Für eine genauere Beschreibung der einzelnen Permissions, sowie bei welchen Methodenaufrufen welche Permission benötigt wird, verweise ich an dieser Stelle auf die Java j2sdk1.4.0 Dokumentation.

10 2.5 Protection Domains Seite 9 Es ist, wie vorher bereits erwähnt, möglich, Permissions einer Klasse zuzuweisen. Dies kann unter Umständen sehr kompliziert und aufwendig werden, wenn der Code aus vielen Klassen besteht. Es ist daher besser sich sogenannten Protection Domains zu bedienen, was einer Gruppierung von Klassen mit ähnlichen Anforderungen entspricht. Nun kann man einfach die nötigen Permissions diesen Protection Domains zuweisen. 2.6 Policy Die verschiedenen Zuweisungen von Permissions zu den jeweiligen Klassen wird policy (Politik, Taktik) genannt. Um die verschiedenen Permissions einer bestimmten Implementation zuweisen zu können werden sie in einer Policy-Datei gruppiert. Policy-Dateien können einfach in einem Text-Editor oder mit Hilfe des policytool, das im JDK enthalten ist, erstellt werden. Die allgemeine Syntax (dargestellt in BNF) für ein Policy-File sieht wie folgt aus: PolicyFile -> PolicyEntry PolicyEntry; PolicyFile PolicyEntry -> grant {PermissionEntry; grant SignerEntry {PermissionEntry grant CodebaseEntry {PermissionEntry grant PrincipalEntry {PermissionEntry grant SignerEntry, CodebaseEntry {PermissionEntry grant CodebaseEntry, SignerEntry {PermissionEntry grant SignerEntry, PrincipalEntry {PermissionEntry grant PrincipalEntry, SignerEntry {PermissionEntry grant CodebaseEntry, PrincipalEntry {PermissionEntry grant PrincipalEntry, CodebaseEntry {PermissionEntry grant SignerEntry, CodebaseEntry, PrincipalEntry {PermissionEntry grant CodebaseEntry, SignerEntry, PrincipalEntry {PermissionEntry grant SignerEntry, PrincipalEntry, CodebaseEntry {PermissionEntry grant CodebaseEntry, PrincipalEntry, SignerEntry {PermissionEntry grant PrincipalEntry, CodebaseEntry, SignerEntry {PermissionEntry grant PrincipalEntry, SignerEntry, CodebaseEntry {PermissionEntry keystore "url" SignerEntry -> signedby (a comma-separated list of strings) CodebaseEntry -> codebase (a string representation of a URL) PrincipalEntry -> OnePrincipal OnePrincipal, PrincipalEntry OnePrincipal -> principal [ principal_class_name ] "principal_name" (a principal) PermissionEntry -> OnePermission OnePermission PermissionEntry OnePermission -> permission permission_class_name [ "target_name" ] [, "action_list"] [, SignerEntry];

11 Seite 10 Default mässig besitzt Java zwei Policy-Files. Ein Systemumgreifendes Policy-File und ein Benutzer Policy-File. Das system policy-file befindet sich normalerweise in: {java.home/lib/security/java.policy {java.home\lib\security\java.policy (Solaris) (Windows) Das user policy-file befindet sich normalerweise in: {user.home/.java.policy (Solaris) {user.home\.java.policy (Windows) 2.7 Securtiy Manager Die Klasse java.lang.securitymanager ist der zentrale Punkt, was die Authorisierung von Zugriffen betrifft. Die Klasse enthält verschiedene Methoden (check-methods), die zur Überprüfung der Persmissions dienen. Es gibt zum Beispiel die Methode checkread(string file), welche den Zugriff auf ein bestimmtes File überprüft. Die Methode checkpermission(permission perm, Object context) überprüft, ob die benötigte Permission durch die policy gegeben ist oder nicht. Der Aufruf dieser Methode wird an den AccessController weitergeleitet, welcher dann die eigentliche Prüfung der benötigten Permission durchführt. Java bietet die Möglichkeit auch eigene Security Manager zu erstellen und zu verwenden. Dies erreicht man indem man die Klasse java.lang.securitymanager erweitert und die darin vorkommenden checkmethods überschreibt. Wichtig zu wissen ist, dass nur ein Security Manager geladen werden kann! Andernfalls könnte gefährlicher Code einen eigenen Security Manager einzusetzen versuchen, um so die Sicherheitsmechanismen von Java auszutricksen. 2.8 AccessController Die java.security.accesscontroller Klasse wird für drei Dinge benötigt: Zum entscheiden, ob der Zugriff auf kritische Systemressourcen, beruhend auf der aktuellen security-policy, erlaubt werden soll. Zum markieren von Code als privileged Um sich einen Schnappschuss des aktuellen calling context zu verschaffen, so dass Zugriffskontrollentscheide gemacht werden können. 2.9 Der keystore Der keystore ist eine passwortgeschützte Datenbank, welche private Schlüssel und Zertifikate enthält. Zertifikate, die sich in dieser Datenbank enthalten, werden als vertrauenswürdig betrachtet.

12 Seite 11 3 Der Security Manager im Einsatz Die Klassen der Java 2 Security befinden sich in erster Linie in folgenden Paketen: java.lang java.security java.security.cert java.security.interfaces java.security.spec Im folgenden wollen wir den Einsatz einiger Klassen der Java 2 Security betrachten und uns eine kleine Demo-Applikation zusammenstellen (Siehe Anhang für den vollständigen Code). 3.1 Der eigene Security Manager Eigene Security Manager können relativ leicht kreiert werden. Dazu muss die Klasse java.lang.securitymanager erweitert werden. public class PasswordSecurityManager extends SecurityManager{ Damit nun das Programm den eigenen Security Manager benutzt, gibt es zwei Möglichkeiten. Entweder man gibt in der Kommandozeile explizit den zu verwendenden Security Manager an, oder man setzt den Security Manger im Porgramm mit folgender Zeile: try{ System.setSecurityManager(new PasswordSecurityManager("pwd", buffy)); catch(securityexception se){ System.err.println("Security Manager already set!"); Es ist zu sagen, dass nur ein Security Manager pro Programm geladen werden kann. Das heisst, wenn wir nach dem Starten eines Programm mit der Kommandozeile java -Djava.security.manager myclass anschliessend versuchen einen neuen Security Manager mit der Methode System.setSecurityManager(new mysecuritymanager()); zu setzen, wird eine SecurityException geworfen. Dies macht Sinn, denn sonst könnte man leicht eine Attacke durchführen und seine eigenen Security Checks angeben.

13 3.2 Verwendung von Permissions Seite 12 Im selber kreierten Security Manager muss man nun noch die benötigten check-methoden der Superklasse java.lang.securitymanger überschreiben. Diese Methoden haben typische Namen die mit check beginnen, zum Beispiel checkread, checkwrite, etc.. Unten eine Beispiel- Implementierung der checkread-methode in der Klasse PasswordSecurityManager (siehe Anhang für den vollständigen Code). public void checkread(string filename) { //Mention file by name so don't get prompted for password //for everything the application loads to create itself System.out.println("checkRead for: "+filename); if((filename.equals("\\test\\text2.txt"))){ if(!accessok()){ System.out.println("checkRead: access not OK!"); super.checkread(filename); throw new SecurityException("No Way!"); else { System.out.println("checkRead: access OK!"); FilePermission perm = new FilePermission("/Test/text2.txt", "read"); checkpermission(perm); Wichtig im oben gezeigten Code sind die fettgedruckten Zeilen, die wir nun kurz anschauen und erläutern wollen. Mit der Zeile public void checkread(string filename) { überladen wir die Default-Implementierung des Standard Security Managers, bzw. der Klasse java.lang.securitymanager. Damit man einen Zugriff auf Systemressourcen machen kann muss man zuerst eine Referenz auf die gewünschte Permission kreieren. Dies bezweckt die folgende Zeile: FilePermission perm = new FilePermission("/Test/text2.txt", "read");

14 Seite 13 Wenn man die gewünschte Referenz auf eine Permission erzeugt hat, kann man nun den eigentlichen Check der Permission durchführen, was durch folgende Zeile erreicht wird: checkpermission(perm); Beim Aufruf der checkpermission-methode wird dieser an die Klasse AccessController weitergeleitet, der dann anhand der aktuellen Policy die eigentliche Prüfung des Zugriffs auf Systemressourcen vornimmt. 3.3 Das dazugehörige Policy File Bis jetzt haben wir im eigenen Security Manager nur Referenzen auf Permissions erzeugt. Die eigentlichen Permission werden jedoch im Policy-File angegeben. Für unser kleines Demo-Programm brauchen zwei FilePermissions, eine zum schreiben in text.txt und eine zweite zum lesen aus text2.txt, und eine PropertyPermission um die SystemProperty "os.name" zu erhalten. Unser Policy-File (Name: secure.policy) würde dann wie folgt aussehen: grant codebase "file:/c:/test/classes/-" { permission java.io.filepermission "/Test/text.txt", "write"; permission java.io.filepermission "/Test/text2.txt", "read"; permission java.awt.awtpermission "accesseventqueue"; ; Das Schlüsselwort codebase sagt uns, dass anschliessend die URL kommt mit dem Pfad zu den Klassendateien, für die die Permissions gelten sollen.

15 Seite 14 4 Starten von Applets/Applikationen 4.1 Applets Wenn keine Angaben dem appletviewer oder der VM des Browsers übergeben werden, dann hat das Applet keinen Zugriff auf Systemressourcen, den es läuft nur in der sogenannten Sandbox. Um nun einem Applet die nötigen Permissions mitteilen zu können, muss man explizit das entsprechende Policy-File angeben.. Der Programmaufruf mit dem appletviewer (enthalten im JDK) sieht dann wie folgt aus: appletviewer -J"-Djava.security.policy=policyfile" myapplet.html Hier ist policyfile das benötigte Policy-File, das die nötigen Permissions für das in myapplet.html gestarteten Applet enthält. Die Datei myapplet.html kann leicht mit dem HtmlConverter Tool, das im JDK enthalten ist, erstellt werden. Ganz bequem geht es, wenn man das mit folgendem Befehl startet: HtmlComverter -gui Mit ein paar Mausklicks auf der Benutzeroberfläche des HtmlConverter-Tools, hat man das benötigte HTML-File erzeugt. Es empfiehlt sich jedoch anschliessend noch den erzeugten HTML-Code zu überprüfen, da ich aus persönlicher Erfahrung gemerkt habe, dass zum Teil bei den End-Tags an Stelle eines / ein \ eingefügt wird. Auch die Header- und Body-Tags musste ich noch manuell hinzufügen. Um das Applet im Browser laufen zu lassen muss man der Virtual Machine des benutzten Java-Plugin die Option -Djava.security.policy=policyfile mitgeben, damit die VM weiss, wo die benötigten Permissions nachzuschauen sind.

16 Seite Applikationen Wenn man eine Java-Applikation ohne Angaben des Security Managers und des Policy-Files startet und auch keinen Security Manager im Programm setzt, hat die Applikation defaultmässig vollen Zugriff auf alle Systemressourcen. Die Applikation wird also als fully trusted angeschaut, genau wie im Security Model des JDK 1.0 und 1.1, in denen lokaler Code immer vollen Zugriff auf die Systemressourcen hat. Um nun die Zugriffsmöglichkeiten einer Applikation einschränken zu können, muss man beim Starten einer Applikation explizit den zu verwendenden Security Manager und das benötigte Policy-File angeben. Der Applikationsaufruf könnte zum Beispiel wie folgt aussehen: java -Djava.security.manager -Djava.security.policy=policyfile MyMainClass Mit der Option -Djava.security.manager sagt man der VM, dass man den default Security Manager benützen möchte. Wie bereits erwähnt, kann pro Programm nur ein Security Manager geladen werden, es kann also nachträglich nicht mehr ein anderer SecurityManager gesetzt werden. Wenn man also im Programm selber den benötigten Security Manager mit System.setSecurityManager(...) setzt, dann muss man diese Option beim Programmstart weglassen. Ansonsten wird eine Exception geworfen.

17 Seite 16 5 Neue Möglichkeiten und Gefahren Das Java 2 Security-Model bietet eine Reihe von neuen Möglichkeiten. Erstmals wird erlaubt auch lokalen Code (Java-Applikationen) als unvertrauenswürdig anzuschauen. Dies hat seine Berechtigung, denn immer mehr werden auch Applikationen via Internet heruntergeladen. Wenn sie von einer vertrauenswürdigen Quelle stammen und dazwischen nicht verändert wurden wäre dies kein Problem, jedoch weiss der Benutzer oft nicht wer das betreffende Programm geschrieben hat. Policy-Files sind hier von grosser Bedeutung, denn nun kann man den Zugriff auf Systemressourcen überwachen, bzw. begrenzen, so dass auch gefährlicher Code (malicious code) keinen, oder nur sehr begrenzten, Schaden anrichten kann. Applets hatten wie erwähnt in JDK 1.0 keinen Zugriff auf Systemressourcen und liefen defaultmässig in einem Sandkasten (sandbox). Der Einsatz von Applets und deren Funktionalität war daher sehr begrenzt. Mit dem Java 2 Security-Model besteht nun die Möglichkeit anhand von einem Policy-File einem Applet gezielt (Angabe der codebase in Form einer URL) Zugriffe auf Systemressourcen zu gewähren. Dadurch hat sich das Einsatzgebiet von Applets drastisch erhöht. Beispiel für ein neues Applet wäre, dass der Benutzer sich auf seinem PC in einem Editor eine kleine Einkaufsliste zusammengestellt hat. Er startet den Browser und lädt die HTML-Seite mit dem Applet des Verkäufers (z.b. Hier kann er nun seine Einkaufsliste von einem bestimmten Ordner (und nur von diesem) einlesen und den Einkauf tätigen. Das Erlauben von Zugriffen auf Systemressourcen, gegeben durch Policy-Files, birgt besonders für Applets (eigentlich jeglicher Java-Code der Remote geladen werden muss und somit als CodeBase eine URL hat) Risiken. Man überlege sich einmal was passieren würde, wenn jemand die URL, die Zugriff auf die Systemressourcen des Benutzerrechners hat, vortäuschen würde. Es würde keine Warnung geben, denn der Rechner, insbesondere Java Security, meint ja, dass die Klassendateien vom richtigen Ort kommen und der vielleicht gefährliche Code hat Zugriff auf die freigegebenen Ressourcen. Dieses Problem wurde jedoch von Java berücksichtigt und es liefert weitere Sicherheitsmechanismen, die dieses "Loch" stopfen. So kann man Java-Code signieren, so dass man überprüfen kann, ob der zu ladende Code, auch wenn er von einer falschen (bzw vorgetäuschten) Adresse kommt, wirklich dem original Code entspricht.

18 Seite 17 Schlussfolgerung Wir haben gesehen wie sich das Java Security Modell über die letzen Jahre gewandelt hat, von einem Modell, das nur trusted und untrusted Code kannte, zu einem Modell das erlaubt für jeglichen Java-Code wohldefinierte Permissions zu erteilen und somit den Zugriff auf Systemressourcen zu erlauben. Policy-Files im Zusammenspiel mit dem Security Manager und andere Security Komponenten bieten, wenn gezielt und bewusst eingesetzt, ein starkes Sicherheitskonzept. Es ist jedoch zu bemerken, dass es nicht der absolute Schutz vor Attacken ist, jedoch wird dadurch die Zahl der möglichen Attacken wesentlich eingeschränkt. Zu guter letzt ist noch zu sagen, dass der Einsatz von Policy-Files, insbesondere das Erteilen von Permissions auf kritische Systemressourcen, gut abgewägt werden muss, damit nicht leichtsinnig eine Tür ins System für alle aufgemacht wird.

19 Seite 18 A. Anhang A1. Applikationsbeispiel Code Folgende Unterkapitel enthalten den kompletten Code der Demo-Applikation. Es ist zu beachten, dass sich die beiden Files in einem Package (Verzeichnis mit Namen secure1) zu befinden haben. Um den Code testen zu können müssen sie im Verzeichnis C: folgende Struktur errichten C:\Test\classes\secure1\ Plazieren sie die beiden Files FileIO.java und PasswordSecurityManager.java in dieses Verzeichnis und compilieren sie sie. Das Policy-File ist im Ordner Test zu platzieren, zudem müssen sie im selben Ordner ein leeres File text.txt und ein zweites File text2.txt, das einen Text enthält erstellen. Wenn sie diese Angaben verwendet haben und j2sdk1.4.0 oder die dazu passende Runtime Environment installiert und die PATH-Variable gesetzt ist, können sie das Demo mit folgendem Befehl starten: C:\Test\classes>java -Djava.security.policy=secure.policy secure1.fileio A1.1. FileIO.java package secure1; /** * <p>title: Secure1</p> * <p>description: Applikations Test</p> * <p>copyright: Copyright (c) 2003</p> * <p>company: fh-aargau</p> Martin Bodmer 1.0 */ import java.awt.*; import java.awt.event.*; import java.io.*; import javax.swing.*; public class FileIO extends JFrame implements ActionListener {

20 Seite 19 JLabel text, clicked; JButton button, clickbutton; JPanel panel; JTextField textfield; public FileIO(){ //Begin Constructor setfont(new Font("Helvetica", Font.PLAIN, 14)); text = new JLabel("Text to save to file:"); clicked = new JLabel("Text retrieved from file:"); button = new JButton("Click Me"); button.addactionlistener(this); clickbutton = new JButton("Click Again"); clickbutton.addactionlistener(this); textfield = new JTextField(20); panel = new JPanel(); panel.setlayout(new BorderLayout()); panel.setbackground(color.white); getcontentpane().add(panel); panel.add("north", text); panel.add("center", textfield); panel.add("south", button); //End Constructor public void actionperformed(actionevent event){ Object source = event.getsource(); if(source == button){ JLabel label = new JLabel(); try{ //Write to file String text = textfield.gettext(); byte b[] = text.getbytes(); File outputfile = new File("/Test/text.txt"); FileOutputStream out = new FileOutputStream(outputFile);

21 out.write(b); out.close(); //Read from file File inputfile = new File("/Test/text2.txt"); FileInputStream in = new FileInputStream(inputFile); byte bt[] = new byte[(int)inputfile.length()]; int i; i = in.read(bt); String s = new String(bt); label.settext(s); in.close(); catch(java.io.ioexception e){ System.out.println(e.toString()); catch(java.lang.securityexception ex){ System.out.println("Security Exception!!!"); System.out.println(ex.toString()); //Display text read from file panel.removeall(); panel.add("north", clicked); panel.add("center", label); panel.add("south", clickbutton); panel.validate(); panel.repaint(); Seite 20 if(source == clickbutton){ panel.removeall(); panel.add("north", text); textfield.settext(""); panel.add("center", textfield); panel.add("south", button); panel.validate(); panel.repaint(); public static void main(string[] args){ System.out.println("Hello together!");

22 BufferedReader buffy = new BufferedReader( new InputStreamReader(System.in)); try { System.setSecurityManager( new PasswordSecurityManager("pwd", buffy)); catch (SecurityException se) { System.err.println("SecurityManager already set!"); Seite 21 try{ UIManager.setLookAndFeel( UIManager.getCrossPlatformLookAndFeelClassName()); catch (Exception e) { System.err.println("Couldn't use the cross-platform" + "look and feel: " + e); JFrame frame = new FileIO(); frame.settitle("example"); WindowListener l = new WindowAdapter() { public void windowclosing(windowevent e) { System.exit(0); ; frame.addwindowlistener(l); frame.pack(); frame.setvisible(true); A1.2. PasswordSecurityManager.java package secure1; /** * <p>title: Secure1</p> * <p>description: Appl Test 1</p> * <p>copyright: Copyright (c) 2003</p> * <p>company: fh-aargau</p> Martin Bodmer

23 1.0 */ Seite 22 import java.io.*; public class PasswordSecurityManager extends SecurityManager { private String password; private BufferedReader buffy; public PasswordSecurityManager(String p, BufferedReader b) { super(); this.password = p; this.buffy = b; private boolean accessok() { int c; String response; System.out.println("What's the secret password?"); try { response = buffy.readline(); if (response.equals(password)) return true; else return false; catch (IOException e) { return false; public void checkread(string filename) { //Mention file by name so don't get prompted for password //for everything the application loads to create itself System.out.println("checkRead for: "+filename); if((filename.equals("\\test\\text2.txt"))){ if(!accessok()){ System.out.println("checkRead: access not OK!"); super.checkread(filename);

24 Seite 23 throw new SecurityException("No Way!"); else { System.out.println("checkRead: access OK!"); FilePermission perm = new FilePermission("/Test/text2.txt", "read"); checkpermission(perm); public void checkwrite(string filename) { //Mention file by name so don't get prompted for password //for everything the application loads to create itself System.out.println("checkWrite for: "+filename); if((filename.equals("\\test\\text.txt"))){ if(!accessok()){ System.out.println("checkWrite: access not OK!"); super.checkwrite(filename); throw new SecurityException("No Way!"); else { System.out.println("checkWrite: access OK!"); FilePermission perm = new FilePermission("/Test/text.txt", "write"); checkpermission(perm); A1.3. secure.policy grant codebase "file:/c:/test/classes/-" { permission java.io.filepermission "/Test/text.txt", "write"; permission java.io.filepermission "/Test/text2.txt", "read"; permission java.awt.awtpermission "accesseventqueue"; permission java.awt.awtpermission "showwindowwithoutwarningbanner"; ;

25 A2. Bibliographie Seite 24 Advanced Programming for the Java 2 Platform Securing Java Java security evolution and concepts, Part2 Java security evolution and concepts, Part3 Java security evolution and concepts, Part4 Java security evolution and concepts, Part5 Java 2 SDK Dokumentation

Hex Datei mit Atmel Studio 6 erstellen

Hex Datei mit Atmel Studio 6 erstellen Hex Datei mit Atmel Studio 6 erstellen Es werden generell keine Atmel Studio Dateien ins Repository geladen, da jeder seine Dateien an anderen Orten liegen hat und weil nicht jeder das Atmel Studio 6 benutzt.

Mehr

Grundlagen der Programmierung APPLETS

Grundlagen der Programmierung APPLETS Grundlagen der Programmierung APPLETS Inhalt dieser Einheit Java-Applets: Java-Applets Vor- und Nachteile Sicherheitskonzepte Methoden Einbetten in HTML Graphical User Interface 2 Java Applets Applets

Mehr

Anleitung über den Umgang mit Schildern

Anleitung über den Umgang mit Schildern Anleitung über den Umgang mit Schildern -Vorwort -Wo bekommt man Schilder? -Wo und wie speichert man die Schilder? -Wie füge ich die Schilder in meinen Track ein? -Welche Bauteile kann man noch für Schilder

Mehr

Artikel Schnittstelle über CSV

Artikel Schnittstelle über CSV Artikel Schnittstelle über CSV Sie können Artikeldaten aus Ihrem EDV System in das NCFOX importieren, dies geschieht durch eine CSV Schnittstelle. Dies hat mehrere Vorteile: Zeitersparnis, die Karteikarte

Mehr

Einführung in Javadoc

Einführung in Javadoc Einführung in Javadoc Johannes Rinn http://java.sun.com/j2se/javadoc Was ist Javadoc? Javadoc ist ein Werkzeug, dass eine standardisierte Dokumentation für die Programmiersprache Java unterstützt. Vorteil:

Mehr

GEONET Anleitung für Web-Autoren

GEONET Anleitung für Web-Autoren GEONET Anleitung für Web-Autoren Alfred Wassermann Universität Bayreuth Alfred.Wassermann@uni-bayreuth.de 5. Mai 1999 Inhaltsverzeichnis 1 Technische Voraussetzungen 1 2 JAVA-Programme in HTML-Seiten verwenden

Mehr

ICS-Addin. Benutzerhandbuch. Version: 1.0

ICS-Addin. Benutzerhandbuch. Version: 1.0 ICS-Addin Benutzerhandbuch Version: 1.0 SecureGUARD GmbH, 2011 Inhalt: 1. Was ist ICS?... 3 2. ICS-Addin im Dashboard... 3 3. ICS einrichten... 4 4. ICS deaktivieren... 5 5. Adapter-Details am Server speichern...

Mehr

Datensicherung. Beschreibung der Datensicherung

Datensicherung. Beschreibung der Datensicherung Datensicherung Mit dem Datensicherungsprogramm können Sie Ihre persönlichen Daten problemlos Sichern. Es ist möglich eine komplette Datensicherung durchzuführen, aber auch nur die neuen und geänderten

Mehr

Blogbeitrag: Installation eines SAP CRM-Systems

Blogbeitrag: Installation eines SAP CRM-Systems Blogbeitrag: Installation eines SAP CRM-Systems Die Installation und Einrichtung eines SAP-Systems ist immer wieder eine Achterbahnfahrt. Am Beispiel der Installation eines SAP CRM Systems möchte ich einmal

Mehr

.htaccess HOWTO. zum Schutz von Dateien und Verzeichnissen mittels Passwortabfrage

.htaccess HOWTO. zum Schutz von Dateien und Verzeichnissen mittels Passwortabfrage .htaccess HOWTO zum Schutz von Dateien und Verzeichnissen mittels Passwortabfrage Stand: 21.06.2015 Inhaltsverzeichnis 1. Vorwort...3 2. Verwendung...4 2.1 Allgemeines...4 2.1 Das Aussehen der.htaccess

Mehr

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank In den ersten beiden Abschnitten (rbanken1.pdf und rbanken2.pdf) haben wir uns mit am Ende mysql beschäftigt und kennengelernt, wie man

Mehr

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {... PIWIN I Kap. 8 Objektorientierte Programmierung - Vererbung 31 Schlüsselwort: final Verhindert, dass eine Methode überschrieben wird public final int holekontostand() {... Erben von einer Klasse verbieten:

Mehr

Die Programmiersprache Java. Dr. Wolfgang Süß Thorsten Schlachter

Die Programmiersprache Java. Dr. Wolfgang Süß Thorsten Schlachter Die Programmiersprache Java Dr. Wolfgang Süß Thorsten Schlachter Eigenschaften von Java Java ist eine von der Firma Sun Microsystems entwickelte objektorientierte Programmiersprache. Java ist......a simple,

Mehr

Er musste so eingerichtet werden, dass das D-Laufwerk auf das E-Laufwerk gespiegelt

Er musste so eingerichtet werden, dass das D-Laufwerk auf das E-Laufwerk gespiegelt Inhaltsverzeichnis Aufgabe... 1 Allgemein... 1 Active Directory... 1 Konfiguration... 2 Benutzer erstellen... 3 Eigenes Verzeichnis erstellen... 3 Benutzerkonto erstellen... 3 Profil einrichten... 5 Berechtigungen

Mehr

1 Installation. 1.1 Die Java-Laufzeitumgebung. 1.2 PXLab. Um PXLab benutzen zu können benötigt man die Java Platform, diese kann man unter

1 Installation. 1.1 Die Java-Laufzeitumgebung. 1.2 PXLab. Um PXLab benutzen zu können benötigt man die Java Platform, diese kann man unter 1 Installation 1.1 Die Java-Laufzeitumgebung Um PXLab benutzen zu können benötigt man die Java Platform, diese kann man unter http://java.sun.com/javase/downloads/index.jsp herunteladen. Wenn man PXLab

Mehr

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag Ludwig-Maximilians-Universität München WS 2015/16 Institut für Informatik Übungsblatt 9 Prof. Dr. R. Hennicker, A. Klarl Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung:

Mehr

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7 Einrichtung des Cisco VPN Clients (IPSEC) in Windows7 Diese Verbindung muss einmalig eingerichtet werden und wird benötigt, um den Zugriff vom privaten Rechner oder der Workstation im Home Office über

Mehr

2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE

2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE 2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE 2.1 Die Einrichtung der Benutzeroberfläche Das Einrichten einer Android-Eclipse-Entwicklungsumgebung zur Android-Entwicklung ist grundsätzlich nicht

Mehr

Pakete dienen dazu, die Software eines Projektes in größere inhaltlich zusammengehörige Bereiche mit eigenem Namen einzuteilen (siehe Java API).

Pakete dienen dazu, die Software eines Projektes in größere inhaltlich zusammengehörige Bereiche mit eigenem Namen einzuteilen (siehe Java API). Paketdeklaration Paketdeklaration package Bezeichner ; Pakete dienen dazu, die Software eines Projektes in größere inhaltlich zusammengehörige Bereiche mit eigenem Namen einzuteilen (siehe Java API). Ein

Mehr

Tutorial - www.root13.de

Tutorial - www.root13.de Tutorial - www.root13.de Netzwerk unter Linux einrichten (SuSE 7.0 oder höher) Inhaltsverzeichnis: - Netzwerk einrichten - Apache einrichten - einfaches FTP einrichten - GRUB einrichten Seite 1 Netzwerk

Mehr

Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0)

Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0) Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0) Peter Koos 03. Dezember 2015 0 Inhaltsverzeichnis 1 Voraussetzung... 3 2 Hintergrundinformationen... 3 2.1 Installationsarten...

Mehr

Einführung in TexMaker

Einführung in TexMaker Einführung in TexMaker 23. November 2007 TexMaker ist ein ist ein freier Texteditor für LA TE X-Dokumente unter Windows. Mit diesem Editor lassen sich ohne große Schwierigkeiten *.tex-dokumente aufrufen,

Mehr

Handbuch B4000+ Preset Manager

Handbuch B4000+ Preset Manager Handbuch B4000+ Preset Manager B4000+ authentic organ modeller Version 0.6 FERROFISH advanced audio applications Einleitung Mit der Software B4000+ Preset Manager können Sie Ihre in der B4000+ erstellten

Mehr

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren Lineargleichungssysteme: Additions-/ Subtraktionsverfahren W. Kippels 22. Februar 2014 Inhaltsverzeichnis 1 Einleitung 2 2 Lineargleichungssysteme zweiten Grades 2 3 Lineargleichungssysteme höheren als

Mehr

COSA. Portal Client Installation JAVA J2SE / JRE Version 1.4.2_09, Stand 01.08.2005-08-16. Copyright

COSA. Portal Client Installation JAVA J2SE / JRE Version 1.4.2_09, Stand 01.08.2005-08-16. Copyright Portal Client Installation JAVA J2SE / JRE Version 1.4.2_09, Stand 01.08.2005-08-16 Änderungen in Dokumentation und Software sind vorbehalten! Copyright Copyright 2005 COSA GmbH Alle Rechte vorbehalten.

Mehr

Installation des Authorware Webplayers für den Internet Explorer unter Windows Vista

Installation des Authorware Webplayers für den Internet Explorer unter Windows Vista Installation des Authorware Webplayers für den Internet Explorer unter Windows Vista Allgemeines: Bitte lesen Sie sich diese Anleitung zuerst einmal komplett durch. Am Besten, Sie drucken sich diese Anleitung

Mehr

Installationsanleitungen

Installationsanleitungen Installationsanleitungen INPA SGBD-Entwicklungsumgebung (EDIABAS) INPA für Entwickler Bevor Sie EDIABAS / INPA installieren können, müssen Sie sich für den Ordner sgref auf smuc0900 freischalten lassen.

Mehr

SEP 114. Design by Contract

SEP 114. Design by Contract Design by Contract SEP 114 Design by Contract Teile das zu entwickelnde Programm in kleine Einheiten (Klassen, Methoden), die unabhängig voneinander entwickelt und überprüft werden können. Einheiten mit

Mehr

Java: Vererbung. Teil 3: super() www.informatikzentrale.de

Java: Vererbung. Teil 3: super() www.informatikzentrale.de Java: Vererbung Teil 3: super() Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und IMMER zuerst den Konstruktor der Elternklasse auf! Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und

Mehr

How to install freesshd

How to install freesshd Enthaltene Funktionen - Installation - Benutzer anlegen - Verbindung testen How to install freesshd 1. Installation von freesshd - Falls noch nicht vorhanden, können Sie das Freeware Programm unter folgendem

Mehr

Einrichtung des WS_FTP95 LE

Einrichtung des WS_FTP95 LE Einrichtung des WS_FTP95 LE Das Herunterladen des Programms (siehe Seite Hochladen) dauert durch die Größe von 656 KB auch mit dem Modem nicht lange. Im Ordner der herunter geladenen Dateien erscheint

Mehr

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER Inhalt 1 Einleitung... 1 2 Einrichtung der Aufgabe für die automatische Sicherung... 2 2.1 Die Aufgabenplanung... 2 2.2 Der erste Testlauf... 9 3 Problembehebung...

Mehr

Wie halte ich Ordnung auf meiner Festplatte?

Wie halte ich Ordnung auf meiner Festplatte? Wie halte ich Ordnung auf meiner Festplatte? Was hältst du von folgender Ordnung? Du hast zu Hause einen Schrank. Alles was dir im Wege ist, Zeitungen, Briefe, schmutzige Wäsche, Essensreste, Küchenabfälle,

Mehr

OP-LOG www.op-log.de

OP-LOG www.op-log.de Verwendung von Microsoft SQL Server, Seite 1/18 OP-LOG www.op-log.de Anleitung: Verwendung von Microsoft SQL Server 2005 Stand Mai 2010 1 Ich-lese-keine-Anleitungen 'Verwendung von Microsoft SQL Server

Mehr

SANDBOXIE konfigurieren

SANDBOXIE konfigurieren SANDBOXIE konfigurieren für Webbrowser und E-Mail-Programme Dies ist eine kurze Anleitung für die grundlegenden folgender Programme: Webbrowser: Internet Explorer, Mozilla Firefox und Opera E-Mail-Programme:

Mehr

Durchführung der Datenübernahme nach Reisekosten 2011

Durchführung der Datenübernahme nach Reisekosten 2011 Durchführung der Datenübernahme nach Reisekosten 2011 1. Starten Sie QuickSteuer Deluxe 2010. Rufen Sie anschließend über den Menüpunkt /Extras/Reisekosten Rechner den QuickSteuer Deluxe 2010 Reisekosten-Rechner,

Mehr

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler Downloadfehler in DEHSt-VPSMail Workaround zum Umgang mit einem Downloadfehler Downloadfehler bremen online services GmbH & Co. KG Seite 2 Inhaltsverzeichnis Vorwort...3 1 Fehlermeldung...4 2 Fehlerbeseitigung...5

Mehr

Eine Einführung in die Installation und Nutzung von cygwin

Eine Einführung in die Installation und Nutzung von cygwin Eine Einführung in die Installation und Nutzung von cygwin 1 1. Woher bekomme ich cygwin? Cygwin ist im Internet auf http://www.cygwin.com/ zu finden. Dort lädt man sich die setup.exe in ein beliebiges

Mehr

Software Engineering Klassendiagramme Assoziationen

Software Engineering Klassendiagramme Assoziationen Software Engineering Klassendiagramme Assoziationen Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Lesen von Multiplizitäten (1) Multiplizitäten werden folgendermaßen

Mehr

Online Newsletter III

Online Newsletter III Online Newsletter III Hallo zusammen! Aus aktuellem Anlass wurde ein neuer Newsletter fällig. Die wichtigste Neuerung betrifft unseren Webshop mit dem Namen ehbshop! Am Montag 17.10.11 wurde die Testphase

Mehr

Kurzanleitung zu. von Daniel Jettka 18.11.2008

Kurzanleitung zu. von Daniel Jettka 18.11.2008 Kurzanleitung zu Tigris.org Open Source Software Engineering Tools von Daniel Jettka 18.11.2008 Inhaltsverzeichnis 1.Einführung...1 2.Das Projektarchivs...3 2.1.Anlegen des Projektarchivs...3 2.2.Organisation

Mehr

Ihr IT-Administrator oder unser Support wird Ihnen im Zweifelsfall gerne weiterhelfen.

Ihr IT-Administrator oder unser Support wird Ihnen im Zweifelsfall gerne weiterhelfen. Dieses Dokument beschreibt die nötigen Schritte für den Umstieg des von AMS.4 eingesetzten Firebird-Datenbankservers auf die Version 2.5. Beachten Sie dabei, dass diese Schritte nur bei einer Server-Installation

Mehr

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein.

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein. Schritt 1: Installation des Javacompilers JDK. Der erste Start mit Eclipse Bevor Sie den Java-Compiler installieren sollten Sie sich vergewissern, ob er eventuell schon installiert ist. Gehen sie wie folgt

Mehr

! " # $ " % & Nicki Wruck worldwidewruck 08.02.2006

!  # $  % & Nicki Wruck worldwidewruck 08.02.2006 !"# $ " %& Nicki Wruck worldwidewruck 08.02.2006 Wer kennt die Problematik nicht? Die.pst Datei von Outlook wird unübersichtlich groß, das Starten und Beenden dauert immer länger. Hat man dann noch die.pst

Mehr

Wichtige Hinweise zu den neuen Orientierungshilfen der Architekten-/Objektplanerverträge

Wichtige Hinweise zu den neuen Orientierungshilfen der Architekten-/Objektplanerverträge Wichtige Hinweise zu den neuen Orientierungshilfen der Architekten-/Objektplanerverträge Ab der Version forma 5.5 handelt es sich bei den Orientierungshilfen der Architekten-/Objektplanerverträge nicht

Mehr

Anleitung zur Erstellung einer Batchdatei. - für das automatisierte Verbinden mit Netzlaufwerken beim Systemstart -

Anleitung zur Erstellung einer Batchdatei. - für das automatisierte Verbinden mit Netzlaufwerken beim Systemstart - Anleitung zur Erstellung einer Batchdatei - für das automatisierte Verbinden mit Netzlaufwerken beim Systemstart - Mögliche Anwendungen für Batchdateien: - Mit jedem Systemstart vordefinierte Netzlaufwerke

Mehr

Anleitung zur Webservice Entwicklung unter Eclipse

Anleitung zur Webservice Entwicklung unter Eclipse Entwicklungsumgebung installieren Sofern Sie nicht an einem Praktikumsrechner arbeiten, müssen Sie ihre Eclipse-Umgebung Webservice-fähig machen. Dazu benötigen Sie die Entwicklungsumgebung Eclipse for

Mehr

Einführung in die Programmierung

Einführung in die Programmierung Technische Universität München WS 2003/2004 Institut für Informatik Prof. Dr. Christoph Zenger Testklausur Einführung in die Programmierung Probeklausur Java (Lösungsvorschlag) 1 Die Klasse ArrayList In

Mehr

Übung: Verwendung von Java-Threads

Übung: Verwendung von Java-Threads Übung: Verwendung von Java-Threads Ziel der Übung: Diese Übung dient dazu, den Umgang mit Threads in der Programmiersprache Java kennenzulernen. Ein einfaches Java-Programm, das Threads nutzt, soll zum

Mehr

Primzahlen und RSA-Verschlüsselung

Primzahlen und RSA-Verschlüsselung Primzahlen und RSA-Verschlüsselung Michael Fütterer und Jonathan Zachhuber 1 Einiges zu Primzahlen Ein paar Definitionen: Wir bezeichnen mit Z die Menge der positiven und negativen ganzen Zahlen, also

Mehr

2A Basistechniken: Weitere Aufgaben

2A Basistechniken: Weitere Aufgaben 2A Basistechniken: Weitere Aufgaben 2A.3 Programmierung unter UNIX/Linux 1. Gegeben sind einige Ausschnitte von C-Programmen, die unter UNIX/Linux ausgeführt werden sollen. Beantworten Sie die zugehörigen

Mehr

Urlaubsregel in David

Urlaubsregel in David Urlaubsregel in David Inhaltsverzeichnis KlickDown Beitrag von Tobit...3 Präambel...3 Benachrichtigung externer Absender...3 Erstellen oder Anpassen des Anworttextes...3 Erstellen oder Anpassen der Auto-Reply-Regel...5

Mehr

Abteilung Informatik, JFC/Swing 2004 Diego Schmidlin V2.2

Abteilung Informatik, JFC/Swing 2004 Diego Schmidlin V2.2 Inhalt 1. Printing API 1. Übersicht 2. Vorgehen 3. Beispiel 2. Klasse PrintUtils 3. Mehrere Seiten drucken Folie 1 Lernziele Sie wissen, wie Sie Swing-Komponenten ausdrucken können Sie kennen den Aufbau

Mehr

Internet Explorer Version 6

Internet Explorer Version 6 Internet Explorer Version 6 Java Runtime Ist Java Runtime nicht installiert, öffnet sich ein PopUp-Fenster, welches auf das benötigte Plugin aufmerksam macht. Nach Klicken auf die OK-Taste im PopUp-Fenster

Mehr

Handbuch zur Anlage von Turnieren auf der NÖEV-Homepage

Handbuch zur Anlage von Turnieren auf der NÖEV-Homepage Handbuch zur Anlage von Turnieren auf der NÖEV-Homepage Inhaltsverzeichnis 1. Anmeldung... 2 1.1 Startbildschirm... 3 2. Die PDF-Dateien hochladen... 4 2.1 Neue PDF-Datei erstellen... 5 3. Obelix-Datei

Mehr

Kleines Handbuch zur Fotogalerie der Pixel AG

Kleines Handbuch zur Fotogalerie der Pixel AG 1 1. Anmelden an der Galerie Um mit der Galerie arbeiten zu können muss man sich zuerst anmelden. Aufrufen der Galerie entweder über die Homepage (www.pixel-ag-bottwartal.de) oder über den direkten Link

Mehr

INSTALLATION VON INSTANTRAILS 1.7

INSTALLATION VON INSTANTRAILS 1.7 INSTALLATION VON INSTANTRAILS 1.7 InstantRails 1.7 ist ein Paket, das Ruby, Rails, Apache, MySQL und andere Tools, z.b. phpmyadmin in vorkonfigurierter Form enthält. Das Paket muss in einem Verzeichnis

Mehr

Anleitung zum Prüfen von WebDAV

Anleitung zum Prüfen von WebDAV Anleitung zum Prüfen von WebDAV (BDRS Version 8.010.006 oder höher) Dieses Merkblatt beschreibt, wie Sie Ihr System auf die Verwendung von WebDAV überprüfen können. 1. Was ist WebDAV? Bei der Nutzung des

Mehr

Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank

Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank Die Entscheidung Advoware über VPN direkt auf dem lokalen PC / Netzwerk mit Zugriff auf die Datenbank des zentralen Servers am anderen

Mehr

SFTP SCP - Synology Wiki

SFTP SCP - Synology Wiki 1 of 6 25.07.2009 07:43 SFTP SCP Aus Synology Wiki Inhaltsverzeichnis 1 Einleitung 1.1 Grundsätzliches 2 Voraussetzungen 2.1 Allgemein 2.2 für SFTP und SCP 3 Installation 3.1 Welche openssl Version 3.2

Mehr

Print2CAD 2017, 8th Generation. Netzwerkversionen

Print2CAD 2017, 8th Generation. Netzwerkversionen Installation der Netzwerkversion Kazmierczak Software Print2CAD 2017, 8th Generation Print2CAD 2017, 8th Generation Netzwerkversionen Einführung Installationshinweise Die Programme von Kazmierczak Software

Mehr

Adminer: Installationsanleitung

Adminer: Installationsanleitung Adminer: Installationsanleitung phpmyadmin ist bei uns mit dem Kundenmenüpasswort geschützt. Wer einer dritten Person Zugriff auf die Datenbankverwaltung, aber nicht auf das Kundenmenü geben möchte, kann

Mehr

Digital signierte Rechnungen mit ProSaldo.net

Digital signierte Rechnungen mit ProSaldo.net Digital signierte Rechnungen mit ProSaldo.net Digitale Signatur der PDF-Rechnungen Hier finden Sie eine Anleitung, wie beim erstmaligen Öffnen von digital signierten PDF- Rechnungen, die mit ProSaldo.net

Mehr

Internet online Update (Internet Explorer)

Internet online Update (Internet Explorer) Um Ihr Consoir Beta immer schnell und umkompliziert auf den aktuellsten Stand zu bringen, bieten wir allen Kunden ein Internet Update an. Öffnen Sie Ihren Internetexplorer und gehen auf unsere Internetseite:

Mehr

Arbeiten mit dem Outlook Add-In

Arbeiten mit dem Outlook Add-In Arbeiten mit dem Outlook Add-In Das Outlook Add-In ermöglicht Ihnen das Speichern von Emails im Aktenlebenslauf einer Akte. Außerdem können Sie Namen direkt aus BS in Ihre Outlook-Kontakte übernehmen sowie

Mehr

Handbuch. timecard Connector 1.0.0. Version: 1.0.0. REINER SCT Kartengeräte GmbH & Co. KG Goethestr. 14 78120 Furtwangen

Handbuch. timecard Connector 1.0.0. Version: 1.0.0. REINER SCT Kartengeräte GmbH & Co. KG Goethestr. 14 78120 Furtwangen Handbuch timecard Connector 1.0.0 Version: 1.0.0 REINER SCT Kartengeräte GmbH & Co. KG Goethestr. 14 78120 Furtwangen Furtwangen, den 18.11.2011 Inhaltsverzeichnis Seite 1 Einführung... 3 2 Systemvoraussetzungen...

Mehr

Herstellen von Symbolen mit Corel Draw ab Version 9

Herstellen von Symbolen mit Corel Draw ab Version 9 Herstellen von Symbolen mit Corel Draw ab Version 9 Einleitung : Icon Design-Überblick: 1) Gestalten in Corel Draw 10.0 3) Vorlage für Photopaint für Import von Corel 4) Einfügen in die PSD-Datei und Bearbeiten

Mehr

14.4.2016. Technische Hochschule Georg Agricola WORKSHOP TEIL 3. IKT (Informations- und Kommunikationstechnik) an einer MorseApp erklärt

14.4.2016. Technische Hochschule Georg Agricola WORKSHOP TEIL 3. IKT (Informations- und Kommunikationstechnik) an einer MorseApp erklärt 14.4.2016 Technische Hochschule Georg Agricola WORKSHOP TEIL 3 IKT (Informations- und Kommunikationstechnik) an einer MorseApp erklärt Inhaltsverzeichnis 1. Kurzfassung zur Projekterstellung... 2 2. Morse-Tabelle...

Mehr

4D Server v12 64-bit Version BETA VERSION

4D Server v12 64-bit Version BETA VERSION 4D Server v12 64-bit Version BETA VERSION 4D Server v12 unterstützt jetzt das Windows 64-bit Betriebssystem. Hauptvorteil der 64-bit Technologie ist die rundum verbesserte Performance der Anwendungen und

Mehr

Berechtigungen im Kalender Anleitung für die Rechtevergabe im Outlook Kalender 2010. FHNW, Services, ICT

Berechtigungen im Kalender Anleitung für die Rechtevergabe im Outlook Kalender 2010. FHNW, Services, ICT Berechtigungen im Kalender Anleitung für die Rechtevergabe im Outlook Kalender 2010 FHNW, Services, ICT Windisch, März 2013 Berechtigungen im Kalender 1 1 Gruppen 3 1.1 Die Gruppe/der Benutzer Standard

Mehr

Adobe Photoshop. Lightroom 5 für Einsteiger Bilder verwalten und entwickeln. Sam Jost

Adobe Photoshop. Lightroom 5 für Einsteiger Bilder verwalten und entwickeln. Sam Jost Adobe Photoshop Lightroom 5 für Einsteiger Bilder verwalten und entwickeln Sam Jost Kapitel 2 Der erste Start 2.1 Mitmachen beim Lesen....................... 22 2.2 Für Apple-Anwender.........................

Mehr

Internet online Update (Mozilla Firefox)

Internet online Update (Mozilla Firefox) Um Ihr Consoir Beta immer schnell und umkompliziert auf den aktuellsten Stand zu bringen, bieten wir allen Kunden ein Internet Update an. Öffnen Sie Ihren Mozilla Firefox und gehen auf unsere Internetseite:

Mehr

Programmieren in Java

Programmieren in Java Programmieren in Java objektorientierte Programmierung 2 2 Zusammenhang Klasse-Datei In jeder *.java Datei kann es genau eine public-klasse geben wobei Klassen- und Dateiname übereinstimmen. Es können

Mehr

Anwendungsbeispiele Sign Live! Secure Mail Gateway

Anwendungsbeispiele Sign Live! Secure Mail Gateway Anwendungsbeispiele Sign Live! Secure Mail Gateway Kritik, Kommentare & Korrekturen Wir sind ständig bemüht, unsere Dokumentation zu optimieren und Ihren Bedürfnissen anzupassen. Ihre Anregungen sind uns

Mehr

Einrichten einer Festplatte mit FDISK unter Windows 95/98/98SE/Me

Einrichten einer Festplatte mit FDISK unter Windows 95/98/98SE/Me Einrichten einer Festplatte mit FDISK unter Windows 95/98/98SE/Me Bevor Sie die Platte zum ersten Mal benutzen können, muss sie noch partitioniert und formatiert werden! Vorher zeigt sich die Festplatte

Mehr

Erstellen einer digitalen Signatur für Adobe-Formulare

Erstellen einer digitalen Signatur für Adobe-Formulare Erstellen einer digitalen Signatur für Adobe-Formulare (Hubert Straub 24.07.13) Die beiden Probleme beim Versenden digitaler Dokumente sind einmal die Prüfung der Authentizität des Absenders (was meist

Mehr

Bilder zum Upload verkleinern

Bilder zum Upload verkleinern Seite 1 von 9 Bilder zum Upload verkleinern Teil 1: Maße der Bilder verändern Um Bilder in ihren Abmessungen zu verkleinern benutze ich die Freeware Irfan View. Die Software biete zwar noch einiges mehr

Mehr

Installationsanleitung für CashPro im Mehrbenutzerzugriff/Netzwerkbetrieb

Installationsanleitung für CashPro im Mehrbenutzerzugriff/Netzwerkbetrieb Installationsanleitung für CashPro im Mehrbenutzerzugriff/Netzwerkbetrieb CashPro basiert auf Accesstechnologie 2003 und ist auch unter den aktuellen Accessversionen 2007 bis 2013 einsetzbar und Mehrbenutzerfähig.

Mehr

Patch Management mit

Patch Management mit Patch Management mit Installation von Hotfixes & Patches Inhaltsverzeichnis dieses Dokuments Einleitung...3 Wie man einen Patch installiert...4 Patch Installation unter UliCMS 7.x.x bis 8.x.x...4 Patch

Mehr

Windows 7: Neue Funktionen im praktischen Einsatz - Die neue Taskleiste nutzen

Windows 7: Neue Funktionen im praktischen Einsatz - Die neue Taskleiste nutzen Windows 7: Neue Funktionen im praktischen Einsatz - Die neue Taskleiste nutzen Das können wir Ihnen versprechen: An der neuen Taskleiste in Windows 7 werden Sie sehr viel Freude haben. Denn diese sorgt

Mehr

Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden.

Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden. Einfache Ein- und Ausgabe mit Java 1. Hallo-Welt! Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden. /** Die Klasse hello sendet einen

Mehr

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten In dem Virtuellen Seminarordner werden für die Teilnehmerinnen und Teilnehmer des Seminars alle für das Seminar wichtigen Informationen,

Mehr

GEORG.NET Anbindung an Ihr ACTIVE-DIRECTORY

GEORG.NET Anbindung an Ihr ACTIVE-DIRECTORY GEORG.NET Anbindung an Ihr ACTIVE-DIRECTORY Vorteile der Verwendung eines ACTIVE-DIRECTORY Automatische GEORG Anmeldung über bereits erfolgte Anmeldung am Betriebssystem o Sie können sich jederzeit als

Mehr

Wordpress: Blogbeiträge richtig löschen, archivieren und weiterleiten

Wordpress: Blogbeiträge richtig löschen, archivieren und weiterleiten Wordpress: Blogbeiträge richtig löschen, archivieren und weiterleiten Version 1.0 Wordpress: Blogbeiträge richtig löschen, archivieren und weiterleiten In unserer Anleitung zeigen wir Dir, wie Du Blogbeiträge

Mehr

Handbuch. NAFI Online-Spezial. Kunden- / Datenverwaltung. 1. Auflage. (Stand: 24.09.2014)

Handbuch. NAFI Online-Spezial. Kunden- / Datenverwaltung. 1. Auflage. (Stand: 24.09.2014) Handbuch NAFI Online-Spezial 1. Auflage (Stand: 24.09.2014) Copyright 2016 by NAFI GmbH Unerlaubte Vervielfältigungen sind untersagt! Inhaltsangabe Einleitung... 3 Kundenauswahl... 3 Kunde hinzufügen...

Mehr

1 Einleitung. Lernziele. Symbolleiste für den Schnellzugriff anpassen. Notizenseiten drucken. eine Präsentation abwärtskompatibel speichern

1 Einleitung. Lernziele. Symbolleiste für den Schnellzugriff anpassen. Notizenseiten drucken. eine Präsentation abwärtskompatibel speichern 1 Einleitung Lernziele Symbolleiste für den Schnellzugriff anpassen Notizenseiten drucken eine Präsentation abwärtskompatibel speichern eine Präsentation auf CD oder USB-Stick speichern Lerndauer 4 Minuten

Mehr

Universal Dashboard auf ewon Alarmübersicht auf ewon eigener HTML Seite.

Universal Dashboard auf ewon Alarmübersicht auf ewon eigener HTML Seite. ewon - Technical Note Nr. 003 Version 1.2 Universal Dashboard auf ewon Alarmübersicht auf ewon eigener HTML Seite. Übersicht 1. Thema 2. Benötigte Komponenten 3. Downloaden der Seiten und aufspielen auf

Mehr

Bedienungsanleitung: Onlineverifizierung von qualifiziert signierten PDF-Dateien

Bedienungsanleitung: Onlineverifizierung von qualifiziert signierten PDF-Dateien Sie haben von der VR DISKONTBANK GmbH ein signiertes PDF-Dokument (i.d.r. eine Zentralregulierungsliste mit dem Status einer offiziellen Rechnung) erhalten und möchten nun die Signatur verifizieren, um

Mehr

Einführung in Eclipse und Java

Einführung in Eclipse und Java Universität Bayreuth Lehrstuhl für Angewandte Informatik IV Datenbanken und Informationssysteme Prof. Dr.-Ing. Jablonski Einführung in Eclipse und Java Dipl.Inf. Manuel Götz Lehrstuhl für Angewandte Informatik

Mehr

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Objektorientierte Programmierung für Anfänger am Beispiel PHP Objektorientierte Programmierung für Anfänger am Beispiel PHP Johannes Mittendorfer http://jmittendorfer.hostingsociety.com 19. August 2012 Abstract Dieses Dokument soll die Vorteile der objektorientierten

Mehr

Nach der Anmeldung im Backend Bereich landen Sie im Kontrollzentrum, welches so aussieht:

Nach der Anmeldung im Backend Bereich landen Sie im Kontrollzentrum, welches so aussieht: Beiträge erstellen in Joomla Nach der Anmeldung im Backend Bereich landen Sie im Kontrollzentrum, welches so aussieht: Abbildung 1 - Kontrollzentrum Von hier aus kann man zu verschiedene Einstellungen

Mehr

FuxMedia Programm im Netzwerk einrichten am Beispiel von Windows 7

FuxMedia Programm im Netzwerk einrichten am Beispiel von Windows 7 FuxMedia Programm im Netzwerk einrichten am Beispiel von Windows 7 Die Installation der FuxMedia Software erfolgt erst NACH Einrichtung des Netzlaufwerks! Menüleiste einblenden, falls nicht vorhanden Die

Mehr

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster Es gibt in Excel unter anderem die so genannten Suchfunktionen / Matrixfunktionen Damit können Sie Werte innerhalb eines bestimmten Bereichs suchen. Als Beispiel möchte ich die Funktion Sverweis zeigen.

Mehr

Java Kurs für Anfänger LMU SS09 Einheit 1 Javaumgebung

Java Kurs für Anfänger LMU SS09 Einheit 1 Javaumgebung Java Kurs für Anfänger LMU SS09 Einheit 1 Javaumgebung Ludwig-Maximilians-Universität München Institut für Informatik Programmierung und Softwaretechnik (PST) Prof. Wirsing 6. Mai 2009 1 Der Name Java

Mehr

Step by Step Webserver unter Windows Server 2003. von Christian Bartl

Step by Step Webserver unter Windows Server 2003. von Christian Bartl Step by Step Webserver unter Windows Server 2003 von Webserver unter Windows Server 2003 Um den WWW-Server-Dienst IIS (Internet Information Service) zu nutzen muss dieser zunächst installiert werden (wird

Mehr

Beheben von verlorenen Verknüpfungen 20.06.2005

Beheben von verlorenen Verknüpfungen 20.06.2005 Vor folgender Situation ist sicher jeder Solid Edge-Anwender beim Öffnen von Baugruppen oder Drafts schon einmal gestanden: Die Ursache dafür kann sein: Die Dateien wurden über den Explorer umbenannt:

Mehr

Guide DynDNS und Portforwarding

Guide DynDNS und Portforwarding Guide DynDNS und Portforwarding Allgemein Um Geräte im lokalen Netzwerk von überall aus über das Internet erreichen zu können, kommt man um die Themen Dynamik DNS (kurz DynDNS) und Portweiterleitung(auch

Mehr

Ordner Berechtigung vergeben Zugriffsrechte unter Windows einrichten

Ordner Berechtigung vergeben Zugriffsrechte unter Windows einrichten Ordner Berechtigung vergeben Zugriffsrechte unter Windows einrichten Was sind Berechtigungen? Unter Berechtigungen werden ganz allgemein die Zugriffsrechte auf Dateien und Verzeichnisse (Ordner) verstanden.

Mehr

Upgrade auf die Standalone Editionen von Acronis Backup & Recovery 10. Technische Informationen (White Paper)

Upgrade auf die Standalone Editionen von Acronis Backup & Recovery 10. Technische Informationen (White Paper) Upgrade auf die Standalone Editionen von Acronis Backup & Recovery 10 Technische Informationen (White Paper) Inhaltsverzeichnis 1. Über dieses Dokument... 3 2. Überblick... 3 3. Upgrade Verfahren... 4

Mehr