Ответ 1
Самый простой способ получить доступ к зарегистрированному пользователю через EL (язык выражений) в JSF 2.0:
#{request.remoteUser}
Ответ Tobbe будет хорошо работать, чтобы получить удаленный пользователь из резервной копии bean.
Я настроил вход в форму на моем приложении JSF 2.0 на сервере GlassFish 3 с помощью пользовательского Realm. Самый простой способ получить информацию о зарегистрированном пользователе, то есть имя пользователя.
Возможно ли это? Или текущий сеанс связан только с ролью безопасности? Если да, можно ли это сделать, не изменяя конфигурацию журнала?
Проще говоря, я хочу показать простое сообщение вроде:
Вход в систему как имя пользователя
на моих веб-страницах.
Самый простой способ получить доступ к зарегистрированному пользователю через EL (язык выражений) в JSF 2.0:
#{request.remoteUser}
Ответ Tobbe будет хорошо работать, чтобы получить удаленный пользователь из резервной копии bean.
Простой (может быть, не самый лучший) ответ был:
FacesContext.getCurrentInstance().getExternalContext().getRemoteUser()
Я в шоке от того, сколько времени мне понадобилось, чтобы понять это.
в вашем классе loginmanagedbean определите currentUSer и в getter это: я не использовал внешнюю регистрацию в системе, и это работает для меня.
public Login getCurrentUser() {
FacesContext fc = FacesContext.getCurrentInstance();
ExternalContext externalContext = fc.getExternalContext();
if (externalContext.getUserPrincipal() == null){
logger.info("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!current principal is null");
}
else{
Integer id = Integer.parseInt(externalContext.getUserPrincipal().getName());
logger.info("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!LOGGED USER "+ id);
try {
currentUser = getLoginService().getLoginById(id);
}
catch (Exception ex) {
}
}
return currentUser;
}
Внутри Facelets вы можете использовать #{request.userPrincipal.name}
.