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

Odpovedet emailem