Aha, takze normalne to nejde, ale pokud by ta knihovna mela nejakej zajem poskytnout to i netrusted aplikaci, tak proste bude soucasti implementace volani doTrusted? Pochopil jsem to spravne?

Takze by bylo:

public class TrustedClass
{

public static void doBordel ()
{

...
AccessController.doPrivileged()
...

}

}


a pak:

public class UntrustedClass
{

public void invokeBordel ()
{

TrustedClass.doBordel ();

}

}


A vse probehne zcela v poradku a bez vyjimky,
kdezto pokud by tam nebylo AccessController.doPrivileged(), taky by nastala vyjimka, je to tak? :)



----- Original Message ----- From: "Kamil Podlesak" <[EMAIL PROTECTED]>
To: "Java" <konference@java.cz>
Sent: Thursday, July 20, 2006 2:55 PM
Subject: Re: security


Kamzik-II wrote:

Prava jsou prirazena kodu.

Tomu mam rozumet jakoze pokud bych mel v aplikace trusted knihovnu, tak bych pres ni
mohl delat "bordel" i kdyz muj kod neni trusted?

S tim se samozrejme pocita (koneckoncu, standardni knihovna je zcela trusted). Efektivni prava v koamziku kontroly jsou prunikem prav vseho kodu na zasobniku. Takze to pak vypada zasobnik napriklad takto:

UntrustableApp.main() : omezena prava, nema pravo BordelPermission
 TrustableLibrary.doBordel() : plna prava, tedy vcerne BordelPermission
AccessController.checkPermission(new BordelPermission()) : zjisti prunik, pravo nema, vyjimka

Pokud trusted kod potrebuje provest neco na co volajici nemusi mit prava a je si jisty ze je to OK (napriklad precist konfigurak, ktery je jinak duverny a apletum skryty), muze pouzit AccessController.doPrivileged() metody.


--
Kamil Podlesak <[EMAIL PROTECTED]>




Odpovedet emailem