Java 2 Security
La funzionalità Java™ 2 Security è supportata in WebSphere® Application Server Liberty. Java 2 Security fornisce un meccanismo di controllo degli accessi dettagliato, basato su criteri, che aumenta l'integrità generale del sistema controllando le autorizzazioni prima di consentire l'accesso a determinate risorse di sistema protette.
Java 2 Security è indipendente dall'autorizzazione basata sul ruolo Java Platform, Enterprise Edition . Java 2 Security protegge l'accesso alle risorse di sistema come l'input e l'output dei file, i socket e le proprietà; mentre la sicurezza Java Platform, Enterprise Edition protegge l'accesso alle risorse Web come i servlet e i file JSP.
Java 2 Security per distributori e amministratori
Prima di abilitare Java 2 Security, è necessario verificare che tutte le applicazioni dispongano delle autorizzazioni richieste, altrimenti l'esecuzione delle applicazioni potrebbe non riuscire. Per impostazione predefinita, alle applicazioni vengono concesse le autorizzazioni per la specifica Java Platform, Enterprise Edition 7.0 . Se un'applicazione non è preparata per Java 2 Security o se il provider dell'applicazione non fornisce un file permissions.xml come parte dell'applicazione, l'applicazione potrebbe causare eccezioni di controllo accessi Java 2 Security al runtime quando è abilitato Java 2 Security . Anche se l'applicazione è in esecuzione, potrebbe non essere eseguita correttamente.Java 2 Security per sviluppatori di applicazioni
Gli sviluppatori di applicazioni devono comprendere le autorizzazioni concesse nella politica WebSphere predefinita e i requisiti di autorizzazione delle API Java SDK. Devi sapere se le API che la tua applicazione chiama richiedono autorizzazioni aggiuntive o meno. Per ulteriori informazioni su quali API Java richiedono le autorizzazioni, consultare Permissions in Java 2 SDK.Quando si utilizzano le applicazioni OSGi che contengono WAB (Web Application Bundles), le autorizzazioni vengono aggiunte tramite il file permissions.perm . Se il WAB non ha alcun file permissions.perm , la politica assume il valore predefinito java.security.AllPermission.
Abilitazione di Java 2 Security
Le funzioni Java 2 Security fanno parte dell'estensione del kernel e sono abilitate in fase di avvio aggiornando il file bootstrap.properties con la proprietàwebsphere.java.security .Se la proprietà websphere.java.security viene specificata nel file bootstrap.properties , viene applicato Java 2 Security ; altrimenti, non si verifica alcun controllo delle autorizzazioni.
Specifica delle autorizzazioni limitate
Liberty fornisce un meccanismo per specificare le autorizzazioni limitate quando esegue un componente dell'applicazione Web o EJB. Un'autorizzazione limitata garantisce che nessuna istanza di tale autorizzazione sia concessa a un bundle o a un'applicazione. Essi forniscono un meccanismo per evitare che le applicazioni si concedano più autorizzazioni di quelle che devono essere consentite, ad esempio, l'autorizzazione a uscire dalla VM.PropertyPermission utilizzato per scrivere la proprietà di sistema os.name è limitato. Questa sintassi è identica nei file server.xml e client.xml :
<javaPermission className="java.security.PropertyPermission" name="os.name" actions="write" restriction="true" />
Concessione di autorizzazioni
I bundle OSGi possono regolare automaticamente le autorizzazioni concesse alle librerie / classi all'interno del bundle tramite il file permissions.perm .Le applicazioni possono anche regolare automaticamente le autorizzazioni concesse tramite il file permissions.xml o specificando le autorizzazioni concesse nei file server.xml e client.xml .
Autorizzazioni bundle OSGi
La specifica OSGi fornisce un meccanismo per specificare le autorizzazioni per un bundle attraverso il file permissions.perm nella directory OSGI - INF del bundle. Il meccanismo consente il controllo dell'accesso dettagliato delle autorizzazioni per il pacchetto.Dichiarazione delle autorizzazioni in server.xml e client.xml per applicazioni
Le autorizzazioni senza una base di codice specificata, che sono definite nei file server.xml e client.xml si applicano a tutte le applicazioni su tale server Liberty .PropertyPermission che abilita la lettura di tutte le proprietà di sistema:
<javaPermission className="java.util.PropertyPermission" name="*" actions="read" />PropertyPermission utilizzato per scrivere la proprietà di sistema os.name è limitato. Questa sintassi è identica nei file server.xml e client.xml :
<javaPermission className="java.security.PropertyPermission" name="os.name" actions="write" restriction="true" />
- Un'autorizzazione limitata ha la limitazione impostata su true.
- Se un'applicazione tenta di concedere a se stessa un'autorizzazione definita come autorizzazione limitata , l'autorizzazione limitata ha la precedenza sulla concessione e non consente la concessione.
Dichiarazione delle autorizzazioni in permissions.xml per le applicazioni
Il file di permissions.xml è un nuovo file introdotto dalla specifica Java EE7. Viene fornito nella directory META - INF per un'applicazione.Per le applicazioni impacchettate come un file .war autonomo, le autorizzazioni specificate al livello META - INF WAR si applicano a tutti i moduli e librerie impacchettati nel file .war .
Per le applicazioni che sono pacchetti in un file .ear , la dichiarazione delle autorizzazioni deve essere al livello di file .ear . Questa serie di autorizzazioni viene applicata a tutti i moduli e le librerie inclusi nel file .ear o nei relativi moduli contenuti. Qualsiasi file permissions.xml all'interno di tali moduli compressi viene ignorato, indipendentemente dal fatto che venga fornito un file permissions.xml per il file .ear stesso.
Per le applicazioni contenute in un file .rar , la dichiarazione di autorizzazioni deve essere al livello META - INF RAR .
opzione No - rethrow
Quando Java 2 Security è abilitato, JDK Security Manager genera un'eccezionejava.security.AccessControl per impostazione predefinita quando si verifica una violazione dell'autorizzazione. Se l'eccezione non viene gestita, potrebbe causare un errore di runtime. Per aiutare gli sviluppatori durante la preparazione delle applicazioni per Java 2 Security, è disponibile un'opzione no - rethrow . L'opzione no - rethrow consente di registrare l'eccezione AccessControl in console.log e messages.log ma non causa l'errore dell'applicazione. l'opzione no - rethrow viene abilitata specificando websphere.java.security.norethrow=true nel file bootstrap.properties . L'opzione no - rethrow non è abilitata per impostazione predefinita, pertanto è necessario abilitare questa proprietà specificandola nel file bootstrap.properties .