2010-03-23 25 views
5

Esiste un'altra implementazione (ad esempio in un progetto OSS) di Java SecurityManager disponibile che ha più funzionalità rispetto a quella nel JDK?Altre implementazioni di SecurityManager disponibili?

Sto cercando caratteristiche come

  • configurabile in fase di esecuzione
  • politiche aggiornabile in fase di esecuzione, leggere da altre fonti di dati di un file security.policy
  • filo-aware, per esempio politiche diverse per Thread
  • Politiche di livello superiore, ad es. "Disabilita le funzioni di rete, ma consenti il ​​traffico JDBC"
  • Politiche predefinite comuni, ad es. "Consentire l'accesso in lettura alle solite proprietà di sistema come file.encoding o line.separator, ma non consentire l'accesso in lettura a user.home"
  • Registrazione e controllo registrazione traccia, ad es. "Log tutto l'accesso ai file, registrare tutti l'accesso alla rete in corso di NON knownhost.example.org"
  • lavori di blocco "che richiede" un permesso fino a quando un amministratore concede il permesso, lasciando che il filo/lavoro continuerà
  • ...

Sono abbastanza sicuro che i server delle applicazioni (almeno quelli commerciali) hanno la loro implementazione SecurityManager o almeno la propria configurazione dei criteri. Mi chiedo se ci sia qualche progetto libero con requisiti simili.

+0

Hai mai "trovato" una soluzione? –

+0

No, non ho trovato una libreria adatta che offra un'implementazione sofisticata di un SecurityManager – mhaller

risposta

2
  • Dinamico ProtectionDomains (introdotto in 1.4 IIRC), delegato al modificabile Policy.
  • Determinare i permessi per thread è, erm, difficile. L'applet security managaer lo fa da ThreadGroup, che è generalmente considerato una cosa negativa.
  • È possibile consentire le connessioni a porte specifiche. Allo stesso modo è possibile avere un driver JDBC privilegiato che può essere indirizzato su un altro driver che asserisce privilegi particolari tramite AccessController.doPrivileged.
  • Le autorizzazioni per le proprietà di sistema possono essere specificate per ogni singola chiave.
  • AccessController nell'implementazione Sun/Oracle ha funzionalità di traccia.
  • Applet/WebStart mostrerà una finestra di dialogo, ad esempio, sulla stampa. Ma l'approccio ai servizi JNLP è molto migliore.

"Glossitope" ha tentato di creare un sistema che genera una finestra di dialogo ogni volta che viene richiesta un'autorizzazione. Certo, la richiesta non ha senso per l'utente che vuole solo vedere i maiali danzanti. (Glossitope era un tentativo di una versione Java del pannello laterale Vista: le funzionalità aggiunte a 6u10 (installazione drag-and-drop, finestre non rettangolari, icona di avviso anziché banner, servizi JNLP) lo rendono per lo più ridondante).

Problemi correlati