Takze kdybych chtel zajistit 100% funkcnost, tak bych musel danou triud
podepsat, a pak v implementaci pouzivat doPrivilleged, ze?
----- Original Message -----
From: "Kamil Podlesak" <[EMAIL PROTECTED]>
To: "Java" <[email protected]>
Sent: Friday, July 21, 2006 10:05 AM
Subject: Re: security && reflection
Kamzik-II wrote:
No tak mel bych jeste jeden dotaz co se tyce bezpecnosti, ted to trosku
souvisi s reflection api. Jde mi o to, jestli musi normalni aplikace mit
nejaka specialni prava, aby mohla provadet unsafe operace s promennymi
objektu.
Pri normalnim pouzivani reflection se kontroluje zapouzdreni (private,
protected) beznym zpusobem. Tuto kontrolu lze vypnout metodou
setAccessible(true) (ve tride AccessibleObject, od ktere dedni Method,
Constructor i Field). Tato metoda kontroluje permission
java.lang.reflect.ReflectPermission("suppressAccessChecks").
Jako normalne mi to na desktopu funguje, v klidu menim jakekoliv
pormenne, vcetne private, ale zajima me, jestli to bude fungovat vzdy, a
pripadne kdy to fungovat nebude...
JRE knihovna pouziva pro interni kontrolu prav
System.getSecurityManager(). To je predevsim z duvodu zpetne
kompatability, ale take to umoznuje vsechny tyto kontroly vypnout.
Defaultne spustena aplikace totiz zadny security manager nema a vsechny
tyto kontroly se preskakuji (viz napr. zdrojovy kod
AccessibleObject.setAccessible()). To je logicke, sandbox je na desktopu
(a vetsinou i na serveru) zbytecny, spoleha se na operacni system.
--
Kamil Podlesak <[EMAIL PROTECTED]>