2009-02-12 16 views
11

La sicurezza tende sempre a prendere l'ultimo posto in un nuovo progetto. Oppure si utilizza un framework come Spring in cui la sicurezza è già integrata e può essere attivata facilmente. Cerco di trovare un framework di sicurezza aperto che possa essere collegato a entrambe le applicazioni Swing e Web (e JavaFX?), Forse facile da digerire. Ho guardato in modo semplice JAAS, JGuard e JSecurity ma è troppo complicato per iniziare. Qualche raccomandazione o esperienza da condividere? Sto lavorando con NB, Glassfish e MySQL. Grazie SvenJava Security Framework

+0

Tag modificato da jee5 a javaee, perché non dovresti limitarti all'ultima versione! –

risposta

5

Consiglio vivamente di imparare JAAS. Non è così difficile da raccogliere, e ci sono alcuni utili tutorials e un reference guide sul sito web di Sun.

In base alla mia esperienza, il numero JAAS è ampiamente utilizzato, quindi è sicuramente qualcosa che potrai riutilizzare una volta che l'avrai imparato. Capita anche di essere uno dei mattoni per il meccanismo di autenticazione Glassfish!

5

Ho fatto una ricerca simile in JAAS per l'applicazione web e ho imbattuto in un "roadblock mentale" fino a quando finalmente realizzo che JAAS è una struttura che affronta la sicurezza a un "livello" diverso dalle tradizionali applicazioni web nel mondo Java. È costruito per affrontare i problemi di sicurezza in J2SE non J2EE.

JAAS è un framework di sicurezza creato per proteggere le cose a un livello molto inferiore all'applicazione web. Alcuni esempi di queste cose sono il codice e le risorse disponibili a livello di JVM, quindi tutta questa capacità di impostare i file di criteri a livello di JVM.

Tuttavia, poiché J2EE è basato su J2SE, alcuni moduli di JAAS sono stati riutilizzati nella sicurezza J2EE come LoginModule e Callbacks.

D'altro canto, Acegi, alias Spring Security, affronta uno "strato" molto più elevato nel problema di protezione delle applicazioni Web. È costruito sulla sicurezza J2EE quindi J2SE quindi JAAS. A meno che non si stia cercando di proteggere le risorse a livello di J2SE (classi, risorse di sistema), non vedo alcun reale utilizzo di JAAS se non utilizzando la classe e le interfacce comuni. Concentrati solo sull'utilizzo di Acegi o sulla semplice vecchia sicurezza J2EE che risolve molti problemi comuni di sicurezza delle applicazioni web.

Alla fine della giornata, è importante sapere quale "livello" del problema di sicurezza J2EE-J2SE si sta affrontando e scegliere lo/gli strumento/i di scrittura per il problema.

+0

Dopo un po 'di tempo a guardare le opzioni, credo che JSecurity (ora chiamato Ki (http://incubator.apache.org/ki/) sia una buona scelta. Ancora in fase di sviluppo, ma quello che ho testato fino ad ora, sembra promettente – javadude

+2

ki è ora chiamato shiro, solo una nota per gli esordi –

8

ho appena preso una vista di questo http://shiro.apache.org/

Apache Shiro è un potente e facile da usare framework di sicurezza di Java che esegue l'autenticazione, l'autorizzazione , la crittografia e la gestione delle sessioni . Con l'API di Shiro facile da comprendere, è possibile proteggere in modo rapido e semplice da qualsiasi applicazione , dalle più piccole applicazioni mobili al più grande Web e alle applicazioni aziendali .

0

apache shiro fallisce miseramente quando si sottolinea un'applicazione Web in JBoss (ad esempio 2 milioni di richieste di un GET semplice con una concomitanza di 50 thread). è stato molto deludente per scoprire questo. succede quando si usano i filtri.

+5

Questo è infondato senza ulteriori prove. Ho usato Shiro in applicazioni web mission critical che gestiscono centinaia di migliaia di richieste al secondo. Ci sono progetti di rete che usano Shiro per proteggere gli endpoint di rete che Gestisco centinaia di milioni di richieste ogni giorno. Sospetto che la tua architettura interna o gli archivi di dati che si trovavano dietro Shiro causassero un problema. Posso assicurarti che, con una reale esperienza, Shiro può scalare estremamente bene. –

2

Ti consiglio di dare un'occhiata a OACC (http://oaccframework.org). OACC è stato progettato per risolvere il problema della sicurezza delle applicazioni. A differenza della maggior parte dei framework OACC è in grado di memorizzare/gestire le relazioni di autorizzazione nella propria applicazione. Il modello di autorizzazione OACC è più potente di Shiro o Spring Security.