Zum Inhalt springen

Applet Signieren keine rückfrage und kein zugriff


U-- °LoneWolf°

Empfohlene Beiträge

Hi zusammen,

ich habe mir ein kleines applet geschrieben

import java.applet.*;

import java.awt.*;

import java.util.*;

import java.lang.*;

import java.text.*;

import java.awt.event.*; 

import java.io.*;


public class localfile extends Applet {

	public localfile() {

		Panel p = new Panel();

		Font f;

		String osname = System.getProperty("os.name","");

		if (!osname.startsWith("Windows")) {

			f = new Font("Arial",Font.BOLD,10);

		} else {

			f = new Font("Verdana",Font.BOLD,12);

		}

		p.setFont(f);

		p.add(new Button("Open"));


		p.setBackground(new Color(255, 255, 255));


		add("North",p);


	}

	public boolean action(Event evt, Object arg) {

		if (arg.equals("Open")) {

			System.out.println("OPEN CLICKED");


			int arrlen = 10000;

			byte[] infile = new byte[arrlen];

			Frame parent = new Frame();

			FileDialog fd = new FileDialog(parent, "Please choose a file:",

			    FileDialog.LOAD);

			fd.show();

			String selectedItem = fd.getFile();

			if (selectedItem == null) {

				// no file selected

			} else {

				File ffile = new File( fd.getDirectory() + File.separator +

				                     fd.getFile());

				// read the file

				System.out.println("reading file " + fd.getDirectory() +

				                        File.separator + fd.getFile() );

				try {

					FileInputStream fis = new FileInputStream(ffile); 

					BufferedInputStream bis = new BufferedInputStream(fis);

					DataInputStream dis = new DataInputStream(bis);

					try {

						int filelength = dis.read(infile);

						String filestring = new String(infile, 0,

						                           filelength);

						System.out.println("FILE CONTENT=" + filestring);

						FileOutputStream fop=new FileOutputStream(ffile);


						      String str="This data is written through the program";

						          fop.write(str.getBytes());


						          fop.flush();

						          fop.close();

						          System.out.println("The data has been written");

					} catch(IOException iox) {

						System.out.println("File read error...");

						iox.printStackTrace();

					}

				} catch (FileNotFoundException fnf) {

					System.out.println("File not found...");

					fnf.printStackTrace();

				}

			}		


		} else if (arg.equals("Save")) {

			System.out.println("Save CLICKED");


			int arrlen = 10000;

			byte[] infile = new byte[arrlen];

			Frame parent = new Frame();

			FileDialog fd = new FileDialog(parent, "Please choose a file:",

			    FileDialog.LOAD);

			fd.show();

			String selectedItem = fd.getFile();

			if (selectedItem == null) {

				// no file selected

			} else {

				File ffile = new File( fd.getDirectory() + File.separator +

				                     fd.getFile());

				// read the file

				System.out.println("reading file " + fd.getDirectory() +

				                        File.separator + fd.getFile() );

				try {

					FileInputStream fis = new FileInputStream(ffile); 

					BufferedInputStream bis = new BufferedInputStream(fis);

					DataInputStream dis = new DataInputStream(bis);

					try {

						int filelength = dis.read(infile);

						String filestring = new String(infile, 0,

						                           filelength);

						System.out.println("FILE CONTENT=" + filestring);

					} catch(IOException iox) {

						System.out.println("File read error...");

						iox.printStackTrace();

					}

				} catch (FileNotFoundException fnf) {

					System.out.println("File not found...");

					fnf.printStackTrace();

				}

			}		


		} else return false;

		return true;

	}


}

und es mit folgenden befehlen signiert
C:\Programme\Java\jdk1.6.0_18\bin\keytool -genkey -keyalg rsa -alias yourkey

C:\Programme\Java\jdk1.6.0_18\bin\keytool -selfcert -alias yourkey

C:\Programme\Java\jdk1.6.0_18\bin\keytool -export -alias yourkey -file yourcert.crt

C:\Programme\Java\jdk1.6.0_18\bin\javac "applet fileaccess\beispiel1\localfile.java"

C:\Programme\Java\jdk1.6.0_18\bin\jar cvf "applet fileaccess\beispiel1\localfile.jar" "applet fileaccess\beispiel1\localfile.class"

C:\Programme\Java\jdk1.6.0_18\bin\jarsigner "applet fileaccess\beispiel1\localfile.jar" yourkey

C:\Programme\Java\jdk1.6.0_18\bin\jarsigner -verify -verbose -certs "applet fileaccess\beispiel1\localfile.jar"

so weit klappt auch alles ... nur beim schreiben tritt folgender fehler auf

OPEN CLICKED

reading file C:\Dokumente und Einstellungen\Desktop\applet fileaccess\beispiel1\\testfile.txt

FILE CONTENT=TEST DATEN

Exception in thread "AWT-EventQueue-2" java.security.AccessControlException: access denied (java.io.FilePermission C:\Dokumente und Einstellungen\Desktop\applet fileaccess\beispiel1\testfile.txt write)

	at java.security.AccessControlContext.checkPermission(Unknown Source)

	at java.security.AccessController.checkPermission(Unknown Source)

	at java.lang.SecurityManager.checkPermission(Unknown Source)

	at java.lang.SecurityManager.checkWrite(Unknown Source)

	at java.io.FileOutputStream.<init>(Unknown Source)

	at java.io.FileOutputStream.<init>(Unknown Source)

	at localfile.action(localfile.java:55)

	at java.awt.Component.handleEvent(Unknown Source)

	at java.awt.Component.postEvent(Unknown Source)

	at java.awt.Component.postEvent(Unknown Source)

	at java.awt.Component.postEvent(Unknown Source)

	at java.awt.Component.dispatchEventImpl(Unknown Source)

	at java.awt.Component.dispatchEvent(Unknown Source)

	at java.awt.EventQueue.dispatchEvent(Unknown Source)

	at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)

	at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)

	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)

	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)

	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)

	at java.awt.EventDispatchThread.run(Unknown Source)

...lesen ist kein problem aber das schrieben funktioniert nicht ...

des weitern war in allen anleitung von einem abfrage fensetr die rede in dem der anwender gefragt wird ob er dem zertifikat zustimmt. das gennante fenster erscheint aber nicht ...

hat einer nen tipp?

vlg

wolf

Link zu diesem Kommentar
Auf anderen Seiten teilen

sieht auf jeden fall danach aus das du nich die nörigen rechte hast.

1. Privileged Block API

2. jnlp datei schreiben, dort kannst du verschiedene rechte angeben die du brauchst.

3. natürlich musst du auch das signieren weiterhin machen.

achja leer mal den chache vom browser. Dieses fenster mit dem akzeptieren muss auf jeden fall kommen.

Ich hab leztens auch ein applet geschrieben in dem brauchte ich die privileged action und die jnlp datei zum starten und natürlich das signieren.

Als alternative zu der jnlp datei kannst du auch ein einfaches textfile schreiben in dem du die rechte angibst die du haben willst. Weiß gerade nicht wie die heißt.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...