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]>