2013-03-05 12 views
6

Eseguo l'applicazione Web JavaEE 6 su Glassfish 3. Uso JAAS con jdbcRealm e l'identità predefinita per il mapping dei ruoli. Nel mio database ho tavolo per nomi utente mappatura ai loro ruoli:Perché elenco i ruoli di sicurezza in web.xml quando sono nel database jdbcRealm?

username | role 
----------+------- 
john  | admin 
mary  | user 

Perché ho bisogno di elencare questi ruoli, ancora una volta nella mia web.xml?

<security-role> 
    <role-name>admin</role-name> 
</security-role> 
<security-role> 
    <role-name>user</role-name> 
</security-role> 

Senza che isUserInRole() restituisce sempre false.

+0

sembra vicino a http://stackoverflow.com/questions/5294252/confusing-about-security-role-in-web-xml –

+0

In realtà non si tratta di domini di sicurezza. –

risposta

7

Non ridefinire i ruoli di sicurezza in web.xml. Li elenchi in modo tale che un server delle applicazioni sia a conoscenza del loro utilizzo nel codice.

Quando si distribuisce un'applicazione protetta, un server delle applicazioni legge un descrittore di distribuzione per sollecitare le informazioni sulla configurazione della sicurezza. Conosce i ruoli utilizzati nella tua applicazione. L'applicazione può quindi utilizzare i ruoli e prevedere che il server delle applicazioni sia in grado di associarli a utenti e gruppi (che in definitiva risolvono gli utenti in quanto gli utenti sono i blocchi di sicurezza più precisi).

Parlando dei ruoli mappatura agli utenti, è lì che un regno entra in gioco. Esso offre la mappatura in modo da sapere che un ruolo X in mappe descrittore di deployment per il ruolo X in un database che mappa sua volta per gli utenti A e B

Con ciò detto, il database utilizzato da jdbcRealm ha esattamente gli stessi ruoli perché sono le chiavi per gli utenti che il server delle applicazioni deve mappare ai ruoli nell'applicazione.

Quello che si utilizza nel codice e un descrittore di distribuzione è un nome logico di un gruppo di utenti che viene risolto agli utenti reali tramite la mappatura offerta da jdbcRealm.

+0

Nella mia semplice applicazione ish "ciao-mondo"; Non ho specificato il tag . Ancora tutto funziona come previsto. cioè il browser richiede l'autenticazione. E inserito utente e il suo ruolo è identificato correttamente da Tomcat. Quindi è solo una caratteristica piacevole? –