Domanda

Non riesco a capire JAAS. Sembra tutto più complicato di quanto dovrebbe essere (in particolare i tutorial di Sun). Ho bisogno di un semplice tutorial o esempio su come implementare la sicurezza (autenticazione + autorizzazione) nell'applicazione java basata su Struts + Spring + Hibernate con repository utente personalizzato. Può essere implementato utilizzando ACEGI.

Altri suggerimenti

Altri utenti hanno fornito alcuni link molto utili sopra, quindi non mi preoccuperò dei link. Ho fatto una ricerca simile in JAAS per l'applicazione web e mi sono imbattuto in un "blocco mentale mentale" fino a quando non avrò finalmente capito che JAAS è un framework che affronta la sicurezza in un diverso "strato" quindi applicazioni Web nel mondo Java. È progettato per affrontare i problemi di sicurezza in Java SE e non Java EE.

JAAS è un framework di sicurezza creato per proteggere le cose a un livello molto più basso dell'applicazione web. Alcuni esempi di questi elementi sono il codice e le risorse disponibili a livello di JVM, quindi tutte queste possibilità di impostare file di criteri a livello di JVM.

Tuttavia, poiché Java EE è basato su Java SE, alcuni moduli di JAAS sono stati riutilizzati nella sicurezza Java EE come LoginModules e Callbacks.

Si noti che oltre alla sicurezza Java EE, esiste anche la sicurezza Spring (precedentemente nota come Acegi), che simile alla sicurezza Java EE nativa affronta un "livello" molto più elevato. nella protezione del problema dell'applicazione web. Si tratta di un'implementazione di sicurezza separata e non si basa sulla sicurezza standard Java EE, sebbene si comporti in modo simile sotto molti aspetti.

Per riassumere, a meno che non si stia cercando di proteggere risorse a livello di Java SE (classi, risorse di sistema), non vedo alcun uso reale di JAAS diverso dall'uso della classe e delle interfacce comuni. Concentrati solo sull'uso di Spring Security o della semplice vecchia sicurezza Java EE che risolvono entrambi i problemi di sicurezza delle applicazioni Web comuni.

javax.security è un'API troppo complicata. Di conseguenza ci sono implementatori non solo di LoginModules, ma dell'intera API di autenticazione e autorizzazione, che crea il livello di astrazione sopra, come Authentication & amp; Gestori delle autorizzazioni.

Per cominciare, è bene stampare questo nella tua memoria.

In secondo luogo, imho il più semplice, setup & amp; vai libreria per JAAS è Jboss PicketBox . Indica come eseguire l'autenticazione e l'autorizzazione tramite JBossAuthenticationManager e JBossAuthorizationManager ... Facilmente configurabile tramite XML o annotazioni. Puoi usarlo per gestire sia le webapp che le applicazioni autonome.

Se hai bisogno della parte di autorizzazione per gestire l'accesso al repository, in termini di ACL per le risorse, questo è quello che stai cercando di sicuro.

Il problema con la sicurezza è che di solito è necessario personalizzarlo in base alle proprie esigenze, quindi si può finire per implementare:

LoginModule - verifica userName + Password

CallbackHandler viene utilizzato in questo modo nuovo LoginContext (" Sample " ;, new MyCallbackHandler ());

CallbackHandler viene passato ai LoginModules sottostanti in modo che possano comunicare e interagire con gli utenti, ad esempio richiedendo un nome utente e una password tramite un'interfaccia utente grafica. Quindi all'interno del Gestore ottieni il nome utente e la password dell'utente e viene passato al LoginModule.

LoginContext - quindi basta chiamare lc.login (); e autenticare le credenziali. LoginContext è popolato con l'oggetto autenticato.

Tuttavia il picchetto Jboss ti offre un modo davvero semplice di procedere, a meno che tu non abbia bisogno di qualcosa di specifico.

La risposta di lsiu è una delle poche risposte qui che in realtà " ottengono " ;)

Aggiungendo a quella risposta, un ottimo riferimento su questo argomento è Qualunque cosa sia successa a JAAS? .

Spiega come JASPIC è il collegamento in Java EE tra i modelli di sicurezza Servlet ed EJB e potenzialmente un modulo di accesso JAAS, ma che in molti casi il ruolo di JAAS è ridotto a quello di un provider di ruoli e nome utente relativamente semplice in Java EE .

Dello stesso autore è JAAS in Enterprise , che è un articolo precedente ma fornisce molti retroscena storici sul perché i modelli Java SE (JAAS) e Java EE si sono differenziati in questo modo.

Nel complesso, ma alcuni tipi di JAAS sono utilizzati direttamente in Java EE, sostanzialmente Principal , Subject e CallbackHandler . Gli ultimi due sono utilizzati principalmente da JASPIC. Ho spiegato JASPIC nell'articolo Implementazione dell'autenticazione del contenitore in Java EE con JASPIC.

Non posso parlare troppo con JAAS stesso, ma questo "passaggi consigliati" guida su Spring Security e il manuale di riferimento sono entrambi risorse abbastanza buone su Spring Security: se la tua installazione è molto semplice, non devi fare molto di più che leggere queste.

Per un tutorial puramente JAAS, consulta this . È vecchio ma dovrebbe aiutare con le basi di JAAS.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top