Я пытаюсь добавить userId или имя пользователя в журнал запросов http, второе поле похоже на то, которое я хочу установить.Dropwizard [0.9.2] request добавить информацию об аутентификации
- Удаленный адрес сервера
- Дополнительно аутентификации информации
- дата и время запроса
- метод HTTP, URI и протокол для запроса
- Отклик HTTP код состояния
- Длина ответа
- Заголовок заголовка HTTP (если установлен)
- Пользователь HTTP агент (если он установлен)
- Журнал латентность
чтения источник Jetty Jetty source, я нашел этот
getUserPrincipal().getName()
Но я никогда не получить имя моего пользователя. Я что-то пропускаю, но не знаю, что.
Некоторые контекст, если он может помочь
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);
}
}
В мой Ressource
@POST
@Path("/test/")
public int test(
@Auth @ApiParam(hidden = true) Principal user, ...)
{
logger.error(user.getName());
[...]
}
Если я вхожу в name
с регистратором я получаю это не проблема, как получить его в журнал запроса?
Какая версия Dropwizard вы используете? Недавние заметки о выпуске здесь http://www.dropwizard.io/1.0.2/docs/about/release-notes.html показывают некоторые проблемы с протоколом HTTP-запроса в версиях 1.0.0 и 1.0.1. И 1.0.2 должен их разрешить. Проблемы: # 1737, # 1678 и # 1415. – zloster
Я использую 0.9.2, я отредактировал свой вопрос –
Я думаю, [вопрос # 898] (https://github.com/dropwizard/dropwizard/issues/898) - это то, что вам нужно проверить. Как упоминалось в комментариях, кажется, что для этого существует обходной путь путем ручного ввода объекта «UserAuthentication», который Jetty использует для ведения журналов. – zloster