come recuperare i campi di dati LDAP aggiuntivi tramite Tomcat (getRemoteUser dà solo il nome)
Domanda
Ho configurato Tomcat per utilizzare LDAP / AD.
Come posso ottenere maggiori dettagli su l'utente connesso; l'ID utente viene restituito da request.getRemoteUser()
ma non il nome completo di cui ho bisogno.
Come faccio ad avere il vero e proprio "displayName
" (nome completo) da AD?
Sto usando LDAP / ActiveDirectory / Tomcat 5.5
Soluzione
Credo che la configurazione di Tomcat con LDAP / AD è di circa accessi (ad esempio il Regno). Perciò Natalia è corretto: Dovrete interrogare il LDAP Server per ulteriori informazioni. Il campo di commento è troppo breve per questo commento, così ho optato per un'altra risposta, dichiarando lo stesso.
La ragione di ciò è che l'interfaccia Regno fornisce un principale, che contiene solo il nome utente e la possibilità di interrogare, se l'utente corrente è in un determinato ruolo (non prevede neppure tutti i ruoli che un principale è in). Questo è sufficiente, ai fini di ottenere restrizioni di accesso in base agli URL in web.xml. Essa non mira a essere il punto centrale di contatto con tutto ciò che è memorizzato nel database utente.
Se non si utilizza l'user-id, ma vuole solo che sostituito con il nome utente completo, si può facilmente scrivere il proprio Reame LDAP, cercando in l'installazione di Tomcat, la creazione di una nuova implementazione Reame e l'aggiunta di un vaso con questo attuazione TOMCAT_HOME / lib (per Tomcat 6.0). Naturalmente è necessario fare riferimento a questa implementazione dal TOMCAT_HOME / conf / server.xml anziché l'implementazione Tomcat standard.
Altri suggerimenti
Sarà necessario interrogare direttamente la directory LDAP per ottenere ulteriori informazioni sull'utente.