Textdateien mit Applet auslesen

C

coolerouny

hallo

wie kann man mit einem applet eine textdatei auslesen bzw sie umschreiben?

mfg
coolerouny
 
Re: textdatein mit applet auslesen

Hallo!

Du mußt das Applet signieren, damit es auf Dateien des Clients zugreiffen kann. Wenn das Applet entsprechend signiert ist, kannst du wie in jeder normalen Java Applikation Dateien auslesen und manipulieren.

Gruß Tom
 
Re: textdatein mit applet auslesen

Hallo!

Unser Applet:
Code:
   /**
    * 
    */
   package de.tutorials.applet.signed;
   
   import java.io.DataInputStream;
   import java.io.DataOutputStream;
   import java.io.File;
   import java.io.FileInputStream;
   import java.io.FileOutputStream;
   
   import javax.swing.JApplet;
   import javax.swing.JLabel;
   
   /**
    * @author Tom
    * 
    */
   public class SignedAppletExample extends JApplet {
   	long lastStartTime;
   
   	public void start() {
   		File file = new File("c:/applet.data");
   		try {
   			if (file.exists()) {
 		 	DataInputStream dis = new DataInputStream(new FileInputStream(
 						file));
 				lastStartTime = dis.readLong();
   				dis.close();
   				file.delete();
   			}
 			DataOutputStream dos = new DataOutputStream(new FileOutputStream(
 					file));
   			dos.writeLong(System.currentTimeMillis());
   			dos.flush();
   			dos.close();
   		} catch (Exception e) {
   			e.printStackTrace();
   		}
   
   		add(new JLabel("Last start: " + lastStartTime));
   	}
   }

Nun erstellen wir ein jar Archiv ... namens signedApplet.jar.

Anschließend erstellen wir uns ein Zertifikat:
Zertifikat erstellen:

Code:
   C:\Programme\Java\jdk1.5.0_04\bin>keytool.exe -alias hans -genkey
   Geben Sie das Keystore-Passwort ein:  foobar
   Wie lautet Ihr Vor- und Nachname?
    [Unknown]:  Hans Mustermann
   Wie lautet der Name Ihrer organisatorischen Einheit?
    [Unknown]:  NoName
   Wie lautet der Name Ihrer Organisation?
    [Unknown]:  NoName Inc.
   Wie lautet der Name Ihrer Stadt oder Gemeinde?
    [Unknown]:  Saarbrücken
   Wie lautet der Name Ihres Bundeslandes oder Ihrer Provinz?
    [Unknown]:  Saarland
   Wie lautet der Landescode (zwei Buchstaben) f³r diese Einheit?
    [Unknown]:  DE
   Ist CN=Hans Mustermann, OU=NoName, O=NoName Inc., L=Saarbr?cken, ST=Saarland, C=DE richtig?
    [Nein]:  ja
   
   Geben Sie das Passwort f³r <hans> ein.
   		(EINGABETASTE, wenn Passwort dasselbe wie f³r Keystore):

Nun müssen wir noch das Jar signieren:
Code:
 C:\Programme\Java\jdk1.5.0_04\bin>jarsigner.exe E:\eclipse\3.1.1\eclipse\workspace\de.tutorials.applet.signed\signedApplet.jar hans
   Enter Passphrase for keystore: foobar
   
   Warning: The signer certificate will expire within six months.

Wir erstellen folgende index.html Seite zum anzeigen des Applets:
Code:
   <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
   <html>
   <head>
   <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
   <title>Insert title here</title>
   </head>
   <body>
   <applet code="de.tutorials.applet.signed.SignedAppletExample" archive="signedApplet.jar" />
   </body>
   </html>

Wenn wir unser Applet nun im Browser anschauen, so erhalten wir eine Sicherheitswarnung... bestätigen wir diese mit "ausführen" so kann unser Applet auch auf Systemresourcen zugreiffen.

Gruß Tom
 

Anhänge

  • signedAppletSecurityWarning.jpg
    signedAppletSecurityWarning.jpg
    20,3 KB · Aufrufe: 924
Re: textdatein mit applet auslesen

aha :)

werd mal schaun ob ich das schaff
:)

danke

mfg
coolerouny
 
Hallo, ich habe versucht das Applet zum laufen zu bringen, aber leider funktioniert es nicht.
Das Applet startet zwar und ews kommt auch

"Last start:"

aber dann nur eine "0" und die Abfrage nach dem Zertifikat erscheint auch nicht

Könnte mir jemand sagen woran das liegt?

Gruß Maximilian
 
Hallo Thomas,
ich probier grad nach Deiner Anleitung vorzugehen:

Wenn ich die Datei jarsigner.exe ausführe bekomme ich folgende Meldung:


C:\Sun\AppServer\jdk\bin>jarsigner.exe C:\Security.jar
Usage: jarsigner [options] jar-file alias
jarsigner -verify [options] jar-file

[-keystore <url>] keystore location

[-storepass <password>] password for keystore integrity

[-storetype <type>] keystore type

[-keypass <password>] password for private key (if different)

[-sigfile <file>] name of .SF/.DSA file

[-signedjar <file>] name of signed JAR file

[-verify] verify a signed JAR file

[-verbose] verbose output when signing/verifying

[-certs] display certificates when verbose and verifying

[-tsa <url>] location of the Timestamping Authority

[-tsacert <alias>] public key certificate for Timestamping Authority

[-altsigner <class>] class name of an alternative signing mechanism

[-altsignerpath <pathlist>] location of an alternative signing mechanism

[-internalsf] include the .SF file inside the signature block

[-sectionsonly] don't compute hash of entire manifest

[-protected] keystore has protected authentication path

[-providerName <name>] provider name

[-providerClass <class> name of cryptographic service provider's
[-providerArg <arg>]] ... master class file and constructor argument


das Applet ausführen kann ich dann auch nicht.

Noch eine Frage, muss ich etwas in "Manifest.mf" anpassen?

Gruß

Alex
 
Hallo!

Code:
 C:\Sun\AppServer\jdk\bin>jarsigner.exe C:\Security.jar

Da fehlt noch als zweiter Parameter der Key-Store alias den du fuer das Signieren dieses Jars verwenden willst.

In meinem Beispiel:
Code:
jarsigner.exe E:\eclipse\3.1.1\eclipse\workspace\de.tutorials.applet.signed\signedApplet.jar hans

Gruss Tom
 
Hallo Tom,

das hat jetzt gefunzt. :)

kann aber trotzdem nicht drauf zugreifen. :confused:

Ich versuch es folgendermaßen aufzurufen:

<HTML>
<HEAD>
<TITLE> Fleckengenerator </TITLE>
</HEAD>

<BODY>
Dieses Dokument dient der Demonstration des Fleckengenerators <br>
<br>
Wenn Sie möchten, können Sie sich unter dem Ausgabefenster des SpotApplets den Quelltext zur Erzeugung
der Flecken ansehen
<hr>

<APPLET CODE="exportPaket.Ap_Report.class" archive="Security.jar "WIDTH=400 HEIGHT=200>
</APPLET>

<hr>

</BODY>

</HTML>

Ich bekomm die Meldung "Applet exportPaket.Ap_report notinited" :confused:



Gruß

Alex
 
Hallo!

Ich glaube du solltest mal etwas genauer hinsehen, wenn du ein Beispiel nachmachst... ;)
Code:
...code="de.tutorials.applet.signed.SignedAppletExample"...

lass bei:
Code:
 <APPLET CODE="exportPaket.Ap_Report.class" archive="Security.jar "WIDTH=400 HEIGHT=200>
mal das .class im CODE Attribut hinten weg...

Gruss Tom
 
Zurück