Вы должны попробовать добавить фильтр перед вашей картой. Используя фильтр, ваша карта не получит вызов до тех пор, пока пользователь не будет установлен.
return this.userSrv.user.pipe(
filter(Boolean),
map((user: UserModel) => request.clone(
{setParams: {'access-token': user.accessToken}}
)),
mergeMap(request => next.handle(request))
);
Если Вам нужно к доменному имени, можно использовать это:
com.sun.security.auth.module.NTSystem NTSystem = new
com.sun.security.auth.module.NTSystem();
System.out.println(NTSystem.getName());
System.out.println(NTSystem.getDomain());
До свидания.
Примечание: System.getProperty ("user.name") будет работать, только если пользователь запустит приложение. Если программа запускается Системой или приложением, таким как LANDesk, пользователь будет отображаться как «СИСТЕМА» (в домене «АВТОРИТЕТ NT»).
В этом случае второе решение, использующее NTSystem, вернет правильные результаты.
Я заметил, что автор темы впоследствии спрашивает в комментариях, может ли он / она использовать его в веб-приложении Java, на которое каждый раз отвечал «нет». Это верно, если вы запускаете конкретный код на стороне сервера, но не если вы запускаете его на стороне клиента в виде апплета или jnlp, который встроен в запрошенную страницу jsp / html. Однако впоследствии он должен отправить необходимую информацию на сервер.