Caso generale: Una semplice applicazione che espone i suoi servizi tramite EJB (3.1) - la maggior parte dei bean di Stateless Sessions (nulla funziona qui) e client basati su SWING questo, chiama attraverso le interfacce remote questi servizi e fai quello che devono fare.Apache Shiro su un client Swing - Caso EJB 3.1 per autorizzazione dell'autenticazione
Sicurezza: Voglio autenticare/autorizzare questo ciclo di chiamate e, naturalmente, proteggere i miei servizi. La risposta ovvia sarebbe utilizzare JAAS nel server e qualsiasi configurazione di cablaggio personalizzata sul server sottostante. Che è ancora un'opzione
Apache Shiro: Così un sacco di gente parla di Apache Shiro e in effetti offre un API molto semplice e il meccanismo - che potrebbe essere potenzialmente application server indipendenti.
Domande tecniche:
Sessione: Nel mio caso io non sono una sessione HTTP - e da quello che ho capito Shiro almeno bisogno di una sorta di ID di sessione che ho bisogno di passare intorno. Un modo carino per iniettare le credenziali utente nelle mie chiamate RMI/IIOP al server senza interferire con la mia API aziendale?
applicazione lato server: Per le poche risorse che ho vissuto credo di poter implementare uno Shiro DefaultSecurityManager da 'riferimento e' da un 3.1 fagioli Singleton EJB. Altre idee? Quindi posso facilmente creare un intercettore e aggiungerlo alle mie chiamate remote - così quando una nuova chiamata passa attraverso il mio metodo EJB remoto - lo Shiro Intereceptor per convalidare il mio utente o verificare i diritti specifici.
Eventuali commenti/suggerimenti/esempi?
Molte grazie
Ciao Marcelo, grazie per la tua risposta - ma se sto per usare JAAS comunque - allora non trovo alcun grande vantaggio anche per il cablaggio shiro .. La mia idea era di passare al 100% JAAS e implementare tutto usando Shiro. – javapapo
Ok. Se non si ritiene che il problema dipenda dall'applicazione di un fornitore a shiro, non ci sono problemi. Quello che voglio dire è che cotainer ha già implementazioni di sicurezza, se usi il container. Potresti perdere alcune funzionalità come i vincoli web.xml o la sicurezza dei vincoli di Annotations. – Marcelo