2016-01-08 15 views
7

Sto tentando di includere le informazioni sul certificato client nel mio file di registro di accesso tomcat.Tomcat 7 Registro di accesso con certificato client Nome soggetto

Ho esaminato questo post: https://serverfault.com/questions/624790/tomcat-log-the-equivalent-of-ssl-client-s-dn ma questo restituisce solo un riferimento al certificato e non posso effettivamente estrarre alcuna proprietà.

Il mio modello file di log simile a questa:

pattern="... [%{javax.servlet.request.X509Certificate}r]" 

Questo è il ritorno: [[Ljava.security.cert.X509Certificate; @ 667a078]

C'è un modo per accedere alle proprietà del certificato, come this:

pattern="... [%{javax.servlet.request.X509Certificate.SubjectName}r]" 

Mi piacerebbe essere in grado di estrarre informazioni sul certificato senza alcuna modifica del codice.

+0

Hai mai a capire come fare questo senza alcuna modifica il codice? – WiteCastle

+0

Purtroppo no. Terminato la chiusura dei certificati client altrove e il dumping a splunk. –

risposta

0

Se autenticare l'utente utilizzando tale nome del soggetto, allora penso che si può registrare il nome utente con "%u"

Se avete bisogno di qualsiasi altra cosa, è necessario scrivere un javax.servlet.Filter o un ServletRequestListener che imposta tale valore come attributo su ServletRequest. Il valore può essere qualsiasi oggetto che implementa toString().

L'attributo richiesta javax.servlet.request.X509Certificate è un array di certificati e viene definito nelle Servlet Specification Attributi ch.3.9 SSL (Servlet Spec 3.1)

Problemi correlati