Я запускаю образец веб-приложения Spring Security (hello world) в Apache Tomcat 8. Я пытаюсь увидеть информацию о пользователе в журналах доступа Tomcat, но похоже, что этой информации там нет. Пример записей журнала доступа:
0:0:0:0:0:0:0:1 - - [06/Nov/2019:09:41:57 +0200] "GET / HTTP/1.1" 200 422
0:0:0:0:0:0:0:1 - - [06/Nov/2019:09:41:59 +0200] "GET /hello HTTP/1.1" 200 83
Конфигурация журнала доступа в Tomcat server.xml
:
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="common" />
pattern="common"
соответствует Общему формату журнала, определенному в '%h %l %u %t "%r" %s %b', как описано здесь. В документации Tomcat также говорится:
%u — удаленный пользователь, прошедший аутентификацию (если есть), иначе '-'
Есть ли какая-либо дополнительная конфигурация, которую я должен применить, чтобы сделать пользователя видимым в журналах доступа?
1 ответ
Как ответил , он может работать не так, как ожидалось.
Клапан журнала доступа Tomcat, это не сработает, поскольку Tomcat не знает о Spring Security, который полностью работает в вашем приложении.
Вы можете использовать фильтр:
Самый простой вариант - просто добавить свой собственный фильтр (например, в web.xml) после Spring Security и вывести нужную информацию.
Другое решение предложено в Config9 вам может потребоваться включить имя пользователя в качестве атрибута сеанса
Возможно, этого недостаточно, так как общий шаблон уже содержит параметр %u. В этом случае я бы рекомендовал два дополнительных шага:
1) Поместите имя пользователя в параметр сеанса запроса, например:
request.getSession().addAttribute("username", user.getName());
2) Добавьте следующий параметр в шаблон журнала доступа: %{username}s
server.tomcat.accesslog.pattern=%h %l %t %u %{username}s "%r" %s %b
Похожие вопросы
Связанные вопросы
Новые вопросы
java
Java — это высокоуровневый объектно-ориентированный язык программирования. Используйте этот тег, если у вас возникли проблемы с использованием или пониманием самого языка. Этот тег часто используется вместе с другими тегами для библиотек и/или фреймворков, используемых разработчиками Java.