# Rechteproblem: Applet und iText / Images



## flippus (4. Apr 2007)

Hi,

benutze iText, um in meinem Applet PDFs zu erzeugen. Grundsätzlich klappt das alles sehr gut.
Probleme macht "nur" der Zugriff auf Dateien.

iText hat eine eigene Image-Klasse, bei der Bilder wie folgt geladen werden:


```
Image logo = Image.getInstance( "images/logo.jpg" );
```

Hier tritt auch schon der Fehler auf, es erscheint:


```
Exception in thread "Thread-10" java.security.AccessControlException: access denied (java.util.PropertyPermission user.dir read)
	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.checkPropertyAccess(Unknown Source)
	at java.lang.System.getProperty(Unknown Source)
	at java.io.Win32FileSystem.getUserPath(Unknown Source)
	at java.io.Win32FileSystem.resolve(Unknown Source)
	at java.io.File.getAbsolutePath(Unknown Source)
	at com.lowagie.text.Image.toURL(Image.java:1480)
	at com.lowagie.text.Image.getInstance(Image.java:773)
	at IText.createContentShort(IText.java:119)
	at Actions.run(Actions.java:523)
```

Ein ägnliches Problem habe ich mit dem Laden von Schriftarten, was bei iText so klappen soll:


```
bfVerdana = BaseFont.createFont( "verdana.ttf", BaseFont.CP1252, BaseFont.NOT_EMBEDDED );
```

Das Applet ist signiert, sodass ich doch EIGENLICH alle betreffenden Rechte dafür haben sollte, oder?
Was gibt es jetzt für Möglichkeiten zur Fehlerbehebung?

Philipp


----------



## Wildcard (4. Apr 2007)

flippus hat gesagt.:
			
		

> Das Applet ist signiert, sodass ich doch EIGENLICH alle betreffenden Rechte dafür haben sollte, oder?


Nur die, die du dir selbst in der Policy gegeben hast.
Das sind anscheinend nicht alle.


----------



## L-ectron-X (4. Apr 2007)

Wenn du dies





> Exception in thread "Thread-10" java.security.AccessControlException: access denied (java.util.PropertyPermission user.dir read)


in der Console zu lesen bekommst, kannst du davon ausgehen, dass das Applet nicht signiert ist. In den FAQs liegt ein kleines Batch-Tool zum Signieren. Probiere das mal aus.

Ach ja, nicht vergessen, das Applet via archive-Attribut im Applet-Tag anzugeben, denn nur jar-Dateien können signiert werden und erhalten erweiterte Rechte.


----------



## Guest (4. Apr 2007)

hmm oke... kannst du mir noch ein bisschen weiterhelfen?  
wie/wo genau mache ich das?


----------



## Guest (4. Apr 2007)

oke.. ich hab es aber mit dem tool aus der faq signiert!
wenn ich es im browser starte, kommt auch die entsprechende meldung...
trotzdem gibt es anscheiend rechteprobleme.

was mach ich jetzt am besten?  :?


----------



## L-ectron-X (4. Apr 2007)

Was heißt "anscheinend"? Konkrete Fehlermeldungen aus der Java-Konsole können weiteren Aufschluss bringen.


----------



## Guest (4. Apr 2007)

leider immernoch dieselbe fehlermeldung wie oben  :autsch: 


```
Exception in thread "Thread-10" java.security.AccessControlException: access denied (java.util.PropertyPermission user.dir read)
   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.checkPropertyAccess(Unknown Source)
   at java.lang.System.getProperty(Unknown Source)
   at java.io.Win32FileSystem.getUserPath(Unknown Source)
   at java.io.Win32FileSystem.resolve(Unknown Source)
   at java.io.File.getAbsolutePath(Unknown Source)
   at com.lowagie.text.Image.toURL(Image.java:1480)
   at com.lowagie.text.Image.getInstance(Image.java:773)
   at IText.createContentShort(IText.java:119)
   at Actions.run(Actions.java:523)
```


wenn ich an der policy datei schraube, muss ich das doch an JEDEM client machen, der das applet nutzen möchte, oder? das wäre ziemlich schlecht.


----------



## L-ectron-X (4. Apr 2007)

Zeig mal bitte, wie deine HTML-Datei aussieht.


----------



## Guest (4. Apr 2007)

die sieht so aus:



> <html>
> <body>
> 
> <applet archive="maqdb.jar, itext-2.0.1.jar" code="Main.class" width="400" height="300">
> ...


----------



## L-ectron-X (4. Apr 2007)

OK, das sieht so weit in Ordnung aus.
Hast du beide jar-Dateien signiert? In welchem Archiv liegt die Main.class (Applet)?
Dann zeig mal bitte den Quelltext von Main.java


----------



## Guest (4. Apr 2007)

nee, signiert ist nur das eine jar, die "maqdb.jar"... daran könnte es liegen!
werds direkt mal checken und mich danach wieder melden


----------



## flippus (4. Apr 2007)

es lag daran 

Allerdings hab ich jetzt schon das nächste Problem. Es läuft alles ohne Fehler durch ... aaaaAAAber:

Das PDF, was er mir erstellt, hat eine Größe von 0 Byte und es wird auch nicht nach dem Erstellvorgang geöffnet.
Vieleicht ist es diemal etwas ganz einfaches, deswegen poste ich den Code mal:


```
// we create a writer that listens to the document
	    // and directs a PDF-stream to a file
	     PdfWriter.getInstance( document, new FileOutputStream( "test.pdf" ) );

	     document.open();

        // paragrafen, tabellen etc. hinzufügen [...]

        document.close();

        Desktop.getDesktop().open( new File( "test.pdf" ) );
```

Sorry, dass immer etwas neues kommt aber es ist das erste mal, dass ich ein Applet signiere und daher steh ich momentan ziemlich hilflos da   [/code]


----------



## L-ectron-X (4. Apr 2007)

An der Stelle muss ich passen, ich kenne keine der verwendeten Bibliotheken.
Am besten wird es sein, du schließt den Thread mit dem Häkchen (Thema erledigt) und öffnest einen neuen Thread mit der passenden Frage und einem Verweis auf diesen Thread.


----------

