Ich versuche, die Benutzer-ID oder den Benutzernamen in das HTTP-Anfrage-Log hinzuzufügen, das zweite Feld scheint das zu sein, das ich einstellen möchte.Dropwizard [0.9.2] Anfrage hinzufügen Auth Informationen
- Die Remote-Server-Adresse
- Optionale Informationen Authentifizierung
- anfordern Datum und Uhrzeit
- Die HTTP-Methode, URI, und Protokoll für die Anforderung
- Der HTTP-Antwortstatuscode
- Die Länge der Antwort
- Die HTTP-Referer-Header (wenn festgelegt)
- Der HTTP-User-Agent (falls gesetzt)
- Die Log-Latenz
lesen Jetty Quelle Jetty source, fand ich diese
getUserPrincipal().getName()
Aber ich den Namen meines Benutzer nie bekommen. Ich thnik Ich vermisse etwas, weiß aber nicht was.
Einiger Kontext, wenn es
public class MyUser implements Principal {
private Long id;
private String name;
public String getName() {
if (name == null || name.isEmpty())
return getIdAsString();
return name;
}
public String getIdAsString() {
return Long.toString(id, 16);
}
}
In meiner ressource
@POST
@Path("/test/")
public int test(
@Auth @ApiParam(hidden = true) Principal user, ...)
{
logger.error(user.getName());
[...]
}
helfen kann, wenn ich die name
mit Logger lüge ich es ohne Probleme zu bekommen, wie es in das Anforderungsprotokoll haben?
Welche Version von Dropwizard verwenden Sie? Die letzten Release Notes hier http://www.dropwizard.io/1.0.2/docs/about/release-notes.html zeigen einige Probleme mit der HTTP-Request-Protokollierung in den Versionen 1.0.0 und 1.0.1. Und 1.0.2 sollte sie lösen. Probleme sind # 1737, # 1678 und # 1415. – zloster
Ich benutze 0.9.2, ich habe meine Frage bearbeitet –
Ich denke, [Ausgabe # 898] (https://github.com/dropwizard/dropwizard/issues/898) ist, was Sie überprüfen müssen. Wie in den Kommentaren erwähnt, scheint es eine Umgehung dafür zu geben, indem das 'UserAuthentication'-Objekt, das Jetty für die Protokollierung von Anforderungen verwendet, manuell injiziert wird. – zloster