Boa tarde,
Tenho um projeto que preciso acessar o FacesContext.getCurrentInstance(), mas o mesmo sempre retorna null pelo fato de não esta no contexto web. Precisamente preciso fazer um acesso via webService usando autenticação com o Spring Security.
Autenticação junto ao Spring Security é contemplada e redirecionado para o método mapeado como informado abaixo.
@Path("/usuario")
@Service
@Scope("request")
public class LoginControle{
@POST
@Path("get/{id}")
@Produces(MediaType.APPLICATION_JSON)
public Pessoa getUsuarios(@PathParam("id") String id) {
try {
pessoaSession = new PessoaService().carregar(Integer.parseInt(id));
Contexto.getLoginControle().getPessoa().add(pessoaSession);
return pessoaSession;
} catch (CamaraException e) {
e.printStackTrace();
}
return null;
}
}
O método retorno uma pessoaSession conforme o apresentado acima mas a linha que informa Contexto.getLoginControle().getPessoa().add(pessoaSession); seria onde desejo acrescentar uma pessoa em meu contexto onde existe um @ApplicationScoped, desejando um resultado que ao logar com qualquer usuário acesse esse contexto e obtenha a pessoaSession inserida na lista.
@ManagedBean(eager = true)
@ApplicationScoped
public class LoginControleApplicationScoped {
private List<Pessoa> pessoa;
public List<Pessoa> getPessoa() {
return pessoa;
}
public void setPessoa(List<Pessoa> pessoa) {
this.pessoa = pessoa;
}
}
import br.com.supremanet.camara.restfull.applicationScoped.LoginControleApplicationScoped;
public class Contexto {
public static LoginControleApplicationScoped getLoginControle() {
return (LoginControleApplicationScoped) FacesContext.getCurrentInstance().getExternalContext().getApplicationMap().get("loginControleApplicationScoped");
}
}
Obrigado.