2017-02-14 59 views
6

Używam sprężynowego boot z wbudowanym tomcat + ochrona sprężyn. Mój dziennik dostęp z tomcat Wygląda na toWiosenny rozruch z wbudowanym tomcat + dziennik dostępu z użytkownikiem uwierzytelniającym

IP - - [14/luty/2017: 08: 49: 50 +0200] "GET/page/2 HTTP/1.1" 200 2606

Tak, jak mogę zrobić plik dziennika wygląda jak

IP - - [14/luty/2017: 08: 49: 50 +0200] nazwa - "GET/page/2 HTTP/1.1" 200 2606

Każde żądanie musi mieć nazwę użytkownika, z której pochodzi. Do uwierzytelniania zabezpieczeń używam zabezpieczeń sprężynowych z nazwą użytkownika bazy danych i hasłem.

+0

Ładne pytanie, btw – Andremoniy

Odpowiedz

4

prawdopodobnie trzeba zmienić access log pattern właściwości aplikacyjnych do czegoś takiego:

server.tomcat.accesslog.pattern=%h %l %t %u "%r" %s %b 

gdzie %u jest zdalny użytkownik, który został uwierzytelniony (patrz przykład here).


UPD: Być może nie jest to wystarczające, jako wspólny wzór zawiera już %u parametr. W tym przypadku polecam dwa dodatkowe etapy: nazwę

1) Umieść użytkownika do parametru żądanie sesji coś takiego:

request.getSession().addAttribute("username", user.getName());

2) Dodaj następujący parametr wzór dziennika dostępu: %{username}s

server.tomcat.accesslog.pattern=%h %l %t %u %{username}s "%r" %s %b 

Która powinna przyjąć atrybut o nazwie username z HttpSession zgodnie z opisem here.

+1

Idealne! Myślę, że% u jest dla Tomcat Basic Auth .. –