Как показывать имя пользователя logueado в мое Веб приложение?

Как я могу показывать имя пользователя, что logea?

С этим я могу показывать user и то, что я хочу, состоит в том, чтобы показывать имя, есть какой-то способ это делать? Estoy usando esto

1
задан 05.01.2017, 07:13
0 ответов

У него есть два выбора.

  1. Искать организацию (пользователя) из-за Ваш getRemoteUser() что заканчивает тем, что id каждый раз, когда он потребовал (он не имеет много чувства...).
  2. Обычно, если пользователь вводит информацию в компьютер в сайт, первое, который делается, он состоит в том, чтобы создавать сеанс для этого не?

Пусть не создавать managed bean, который брался бы за то, чтобы вводить информацию в компьютер этот, пользователь в сеанс? Что задержит информация пользователя logeado, с этим он имеет accesso в этот немедленной формы, всякий раз когда сеанс продолжил быть активным.

FacesContext fc = FacesContext.getCurrentInstance();
fc.getExternalContext().getSessionMap().put("usuario", usuario);

Где usuario он происходит от поисков услуги EJB.

E.G.

@Named
@SessionScoped
public class InfoUsuario implements Serializable{

   private EntidadUsuario user;

   @EJB
   private ServicioUsuario userService;

   public EntidadUsuario getUser(){
       if(user == null){
         Principal principal = FacesContext.getCurrentInstance().getExternalContext().getUserPrincipal();

         user = userService.findById(principal.getName());
       }

      return user;
   }
}

Таким образом, у пользователя в сеансе есть вся Ваша информация и смоги быть accessible с такого Facelet через НЕГО:

#{infoUsuario.user.nombre}
1
ответ дан 03.12.2019, 19:53
  • 1
    Но если уже он справляется из-за realm, ¿ для qué хранить это в новом месте? –  05.01.2017, 07:14
  • 2
    @LuiggiMendoza ream сохраняет все? пойдите, имя, фамилия, direcció n, и т.д.? того, чтобы быть así podrí схвати давать ответ для меня tambié n изучать? –  05.01.2017, 16:27
  • 3
    Я не верю в это, он одинокий для безопасности, управления списков и пользователей. –  05.01.2017, 17:55
  • 4
    Если это думаю я, поэтому, если имя и фамилия не остановитесь пользователя, так как нужно искать их не? –  05.01.2017, 18:31

Обычно сеансы хранятся в beans с Вашими соответствующими Scopes с @SessionScoped он должен бы быть достаточным, чтобы хранить всю информацию, которая назначается внутри класса в течение всего сеанса.

Сейчас, обычно информация пользователей сохраняет в базе данных, что я сделал бы, что, в момент пользователь заставляет login сохранять в bean с @SessionScoped, что считал очевидным объект Пользователь.

package mx.tuProyecto.controllers;

import java.io.Serializable;
import javax.ejb.EJB;
import javax.enterprise.context.SessionScoped;
import javax.inject.Named;
import mx.tuProyecto.entities.Notification;
import mx.tuProyecto.entities.User;
import mx.materiam.sessions.UserManager;


@SessionScoped
public class Bean implements Serializable {

    @EJB
    UserManager userManager;
    User user;
    String email;
    String password;

    public Bean(){
    user = new User();
    }

    public void login() {
      try {
        HttpServletRequest r = (HttpServletRequest)                                    FacesContext.getCurrentInstance().getExternalContext().getRequest();
        setDestination(r.getHeader("referer") + "?faces-   redirect=true");
        try {
            r.login(email, password);
            user = userManager.getUserByEmail(email));
        } catch (Exception e) {
            FacesContext.getCurrentInstance().addMessage(null,
                    new FacesMessage(FacesMessage.SEVERITY_ERROR,
                            e.getMessage(), null));
        }
    }

    }
-1
ответ дан 03.12.2019, 19:53