# Permissions Problem mit zwei Applets



## Besucher (10. Apr 2007)

Hallo!

Auf einer Webseite habe ich auf zwei Seiten zwei unterschiedliche signierte Applets. Wenn ich den Browser starte, dem Ausführen von Applet1 zustimme, funktioniert alles einwandfrei. Das gleiche gilt für Applet2, sofern ich einen Browserneustart durchführe.
Starte ich allerdings Applet1 und danach Applet2 ohne Browserneustart bekomme ich für Applet2 folgende Exception und das Applet2 wird nicht gestartet:


```
java.lang.SecurityException: attempt to add a Permission to a readonly Permissions object
	at java.security.Permissions.add(Unknown Source)
	at package1.Applet1$1.getPermissions(Applet1.java:59)
	at sun.plugin.security.PluginClassLoader.getPermissions(Unknown Source)
	at java.security.SecureClassLoader.getProtectionDomain(Unknown Source)
	at java.security.SecureClassLoader.defineClass(Unknown Source)
	at java.net.URLClassLoader.defineClass(Unknown Source)
	at java.net.URLClassLoader.access$100(Unknown Source)
	at java.net.URLClassLoader$1.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(Unknown Source)
	at sun.applet.AppletClassLoader.findClass(Unknown Source)
	at java.lang.ClassLoader.loadClass(Unknown Source)
	at sun.applet.AppletClassLoader.loadClass(Unknown Source)
	at java.lang.ClassLoader.loadClass(Unknown Source)
	at sun.applet.AppletClassLoader.loadCode(Unknown Source)
	at sun.applet.AppletPanel.createApplet(Unknown Source)
	at sun.plugin.AppletViewer.createApplet(Unknown Source)
	at sun.applet.AppletPanel.runLoader(Unknown Source)
	at sun.applet.AppletPanel.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
```

Die Permissions erledige ich in beiden Applets wie folgt:

```
try
	{			
      Policy.setPolicy(new Policy() 
      {  
         Permissions perms = new Permissions();
         public PermissionCollection getPermissions(CodeSource codesource) throws SecurityException
         {       
            AllPermission grant = null;
            grant = new AllPermission();              
            perms.add(grant);             
            return perms; 
         }
         public void refresh()  {
            // Do nothing
         }
      });               
	}
	catch (AccessControlException accex)
	{	    	
	 	//...
	}
	catch (SecurityException secex)
	{
	 	//...
	}
	catch(Exception e)
	{
	  	//...
	}
```

Gruß
Oliver


----------



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

Wenn deine Applets signiert sind, brauchst du meines Wissens keine Policy um Zugriffsrechte zu erhalten.
Man könnte die Exception dahingehend auch so interpretieren.


----------



## Besucher (10. Apr 2007)

Danke, ich werde es mal ausprobieren.


----------

