package com.titanic.ventapasajes.security; import javax.enterprise.context.RequestScoped; import javax.enterprise.inject.Produces; import javax.faces.context.ExternalContext; import javax.faces.context.FacesContext; import javax.inject.Inject; import javax.inject.Named; import com.titanic.ventapasajes.modelo.Terminal; import com.titanic.ventapasajes.repositorio.TerminalRepositorio; import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; import org.springframework.security.core.context.SecurityContextHolder; @Named @RequestScoped public class Seguridad { @Inject private ExternalContext externalContext; @Inject private TerminalRepositorio terminalRepositorio; public String getNombreUsuario(){ String nombreUsuario = null; UsuarioSistema usuarioLogeado = getUsuarioLogeado(); if(usuarioLogeado != null){ nombreUsuario = usuarioLogeado.getUsuario().getNombreUsuario(); } return nombreUsuario; } public Terminal getTerminal(){ final CustomWebAuthenticationDetails cwad = (CustomWebAuthenticationDetails)SecurityContextHolder.getContext().getAuthentication().getDetails(); return terminalRepositorio.buscarTerminalporId(Long.valueOf(cwad.getyourParameter())); } @Produces @UsuarioLogeado public UsuarioSistema getUsuarioLogeado() { UsuarioSistema usuario = null; UsernamePasswordAuthenticationToken auth = (UsernamePasswordAuthenticationToken) FacesContext.getCurrentInstance().getExternalContext().getUserPrincipal(); if(auth!=null && auth.getPrincipal()!=null){ usuario = (UsuarioSistema) auth.getPrincipal(); } return usuario; } }