Java fornisce una protezione al sistema attraverso luso del security manager.
le classi dei package java cooperano con il security manager chiedendo il permesso a eseguire certe operazioni da parte delle applicazioni.
Ciascuna applicazione puo avere il propio oggetto security manager, per default un apllicazione non ha security manager. Per gli applet le restrizioni sono imposte dallapplicazioni in cui e eseguito (es. il browser).
Per impostare il security manager si usa il metodo getSecurityManager() della classe System.
SecurityManager appsm = System.getSecurityManager();
Per scrivere un proprio sicurity manager bisogna creare una sottoclasse della classe sicurity manager. La nuova sottoclasse sovrascrivera i vari metodi per personalizzare le verifiche necessarie allapplicazione.
Per esempio se vogliamo imporre uno stretto accesso al file system dovremo sovrascrivere i metodi checkRead() e checkWrite().
Se il security manager non approva loperazione il metodo checkXXX() emettera una SecurityException.
Installare un Security Manager
Una volta scritto la propria sottoclasse Security Manager si puo installare nellapplicazione corrente con il metodo setSecurityManager() della classe System.
Es. System.setSecurityManger(new PasswordSecurityManager("Booga Booga");
In un applicazione si puo impostare il Security Manager solo 1 volta (non si puo variare).
In base alle operazioni che il Security Manager deve impedire si possono sovrascrivere diversi metodi checkXXX().