2012-04-26 20 views
10

Quali sono i vantaggi andando a Apache Shiro, e lasciando API native Java EE s' per la sicurezza e la gestione delle sessioni?Apache Shiro vs API native Java EE

Ho scoperto che tutti i ruoli e le sessioni di sicurezza possono essere eseguiti in Apache Shiro, ma la stessa cosa può anche essere eseguita utilizzando la sicurezza Java EE senza alcun contenitore di dipendenze esterno.

Quindi suggerisco alcuni pro e contro di andare ad Apache Shiro.

+0

prega può qualsiasi aiuto io non sono in grado di giudicare ....... – satheesh

risposta

15

io sono di parte, naturalmente, (io sono un committer sul progetto Apache Shiro), in modo da prendere questo come si vede in forma, ma qui sono le mie opinioni:

  • Java EE protezione non supporta contenitore -indipendenti opzioni di clustering di sessione predefinite (lo fa Shiro).

  • Shiro è stato progettato sin dall'inizio per funzionare in ambienti POJO/Dependency Injection. Utilizza la progettazione basata sull'interfaccia e offre molti più hook per la personalizzazione rispetto agli ambienti di sicurezza Java EE tradizionali (ad esempio, come si mostra quanti utenti sono attualmente connessi al tuo sito con la sicurezza Java EE? Shiro può aiutarti a mostrarlo).

  • Shiro è completamente portatile in qualsiasi ambiente applicativo. Se si utilizzano le personalizzazioni della sicurezza specifiche del fornitore Java EE, quelle non sarebbero portatili (ad esempio, questo StackOverflow question indica che passare a JBoss potrebbe risolvere il problema di sicurezza dell'utente - una risposta IMO sconvolgente).

  • Nella stessa vena come le personalizzazioni specifiche del server, molti di sicurezza Java EE tutorials, articles e blog articles si mostrano configurazione basata su interfaccia utente, che affronta le cose in modo diverso tra le piattaforme e può essere frustrante per re-imparare, se si interruttore. Inoltre, la configurazione di Java EE richiede spesso XML. Preferisco un singolo formato di configurazione del testo non verboso che posso usare ovunque (shiro.ini è bello, ma le persone configurano anche shiro con groovy, yaml, ecc.).

  • Shiro è stato progettato per funzionare in qualsiasi ambiente applicativo. La sicurezza Java EE è stata progettata, beh, solo per Java EE. Almeno quando impari Shiro, puoi sfruttare quella conoscenza in qualsiasi applicazione basata su JVM (Spring, Guice, Java EE, riga di comando, ecc.), Non solo applicazioni Java EE.

HTH!

Les

+0

Grazie per la spiegazione su apache shiro.Can ho un po 'di ulteriori spiegazioni sull'utilizzo Shiro in ambienti iniezione POJO – satheesh

+2

> 'Questa domanda StackOverflow mostra che il passaggio a JBoss potrebbe risolvere il problema di sicurezza dell'utente - una risposta IMO sconvolgente - Ho dato quella risposta e sono d'accordo sul fatto che sia sconvolgente. Ho creato il numero http://java.net/jira/browse/JAVAEE_SPEC-20 per chiedere la standardizzazione su questo aspetto specifico della configurazione di sicurezza. –