Spring Security. Sebbene sia marchiato come Spring, you might find it useful for web applications; tieni presente che non è necessario scrivere un'app di Spring per utilizzare Spring Security.
Se si desidera attenersi a JAAS, suggerirei di utilizzare uno dei moduli di login del contenitore, solo per iniziare, prima di tentare di scrivere il proprio modulo di login. Sappi che potresti finire per scriverne uno, se i moduli forniti dal contenitore non soddisfano le tue esigenze. E, c'è un buon book on JAAS per aiutarti a capirlo in dettaglio.
Inoltre, dare un'occhiata a Servlet spec 3.0, per vedere come le annotazioni possono essere utilizzate dichiarare i ruoli (@DeclareRoles, che è venuto in servlet spec 2.5) nel servlet stesso, prima di definire quali ruoli hanno accesso a quale metodo HTTP (utilizzando @RolesAllowed). Puoi anche utilizzare annotazioni come @DenyAll e @PermitAll, per consentire o vietare l'accesso a tutti gli utenti. @TransportProtected garantirà l'accesso al metodo HTTP su HTTPS. Tutto ciò che si deve fare è mappare questi ruoli nel codice sorgente, ai ruoli reali nel regno di JAAS; questo spesso viene fatto usando un file descrittore specifico del contenitore.
ADDENDUM
Dal momento che si sta utilizzando JSP e non Facelets o qualsiasi altra tecnologia per il livello di presentazione, si potrebbe essere interessato al JSP tags offered by Spring Security. È molto più pulito mantenere tutti i metadati di autorizzazione in un file web.xml gigantesco.
Per quanto riguarda gli JPA, beh, l'accesso sottostante ad essi viene solitamente applicato ai servlet o agli EJB. Naturalmente, è possibile creare una sicurezza più programmatica, in base alle proprie esigenze: l'utilizzo dei listener di entità potrebbe aiutare in questo processo, in quanto sarebbe in grado di intercettare operazioni di caricamento, aggiornamento e persistenza (se si è così determinati, ma per la maggior parte la sicurezza prima che la logica aziendale venga eseguita di solito è sufficiente).
E oh, dai un'occhiata a JBoss Seam (e sicurezza Seam), perché è un framework di sviluppo di applicazioni completo costruito su Java EE.
fonte
2010-08-05 18:19:35
Basta chiedersi, perché tutti pensano che JAAS possa essere utilizzato direttamente in Java EE senza menzionare JASPIC? Vedi http://java.sys-con.com/node/1002315 –