2017-02-14 74 views
6

我使用的是具有嵌入式tomcat + spring安全性的spring引导。 从Tomcat我的访问日志看起来这带有验证用户的嵌入式tomcat +访问日志的春季启动

IP - - [14 /月/ 2017年:08:49:50 +0200] “GET /页/ 2 HTTP/1.1” 200 2606

那么,如何我可以使日志文件看起来像

IP - - [14 /月/ 2017年:08:49:50 +0200] 用户名 - “GET /页/ 2 HTTP/1.1” 200 2606

每个请求都必须有用户名。对于我使用数据库用户名和密码信息的spring security来进行安全认证。

+0

不错的问题,btw – Andremoniy

回答

4

你可能需要在应用程序属性来更改access log pattern到这样的事情:

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

其中%u是已经被验证远程用户(见例如here)。


UPD:可能这是不够的,因为共同模式已经包含%u参数。在这种情况下,我建议两个额外的步骤:

1)把用户的名字进入请求会话参数,是这样的:

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

2)添加下面的参数在访问日志模式:%{username}s

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

它应该从属性usernameHttpSession如其描述here

+1

完美!我认为%u适用于Tomcat Basic Auth .. –