2015-12-09 13 views
10

La classe javax.servlet.http.HttpServletRequest ha un metodo chiamato isUserInRole. Lo uso per verificare se un utente ha, ad esempio, il ruolo admin. Tuttavia, questo metodo è case sensitive. Quindi, se il ruolo nella richiesta era Admin o ADMIN, allora isUserInRole("admin") sarebbe falso. Io uso il metodo isUserInRole in diversi punti su più applicazioni per verificare un numero di ruoli diversi.Controllo maiuscole/minuscole per il ruolo in HttpServletRequest

Esiste un modo per ottenere la funzionalità isUserInRole in modo insensibile che non richiede il controllo di ciascuna combinazione di casi possibili diversa con isUserInRole?

+0

Perché? Hai difficoltà a scrivere coerentemente i nomi dei tuoi ruoli? – EJP

+0

Esistono più versioni di un servizio di autenticazione di terze parti che sto utilizzando in ambienti diversi, uno dei quali mette in minuscolo i nomi dei ruoli, mentre l'altro conserva il caso. –

risposta

13

Si potrebbe implementare un filtro che avvolge le richieste utilizzando un HttpServletRequestWrapper - implementare il HttpServletRequestWrapper per eseguire l'override del metodo isUserInRole() per renderlo-case insensitive (ad esempio, configurare tutti i ruoli in maiuscolo, params ruolo di test per la conversione in maiuscolo).

Una rapida ricerca troverete un sacco di esempi HTTPServletRequestWrapper ...

3

http://docs.oracle.com/javaee/6/tutorial/doc/gjiie.html

Proprio map più nomi di ruolo per il ruolo di amministratore:

<servlet> 
    <security-role-ref> 
     <role-name>admin</role-name> 
     <role-link>admin</role-link> 
    </security-role-ref> 
    <security-role-ref> 
     <role-name>Admin</role-name> 
     <role-link>admin</role-link> 
    </security-role-ref> 
</servlet> 

<security-role> 
    <role-name>admin</role-name> 
</security-role> 
+0

La chiamata a 'isUserInRole' viene utilizzata per eseguire percorsi di codice diversi sugli endpoint di riposo in base al ruolo. Abbiamo già questo tipo di configurazione nel nostro web.xml per la restrizione di accesso. –

Problemi correlati