JSF - ManageBean redirecionamento

1 resposta
F

Tenho meu manageBean:

public class InicioMB {

    private String urlErroAutorizacao = "gov.prodesp.sgu.urlErroAutorizacao";
    private String urlInicio = "index";
    private SGUAutenticacao autenticacao = null;
    private UsuarioVO userVO = null;
    private SGUAutorizacao autorizacao = null;
    private GrupousuarioVO[] grupos = null;

    public InicioMB() {
    }
    public String validateSessionData() throws IOException {
        //dados da session
        FacesContext facesContext = FacesContext.getCurrentInstance();
        HttpServletRequest request = (HttpServletRequest) facesContext.getExternalContext().getRequest();
        HttpServletResponse response = (HttpServletResponse) facesContext.getExternalContext().getResponse();
        HttpSession session = (HttpSession) facesContext.getExternalContext().getSession(false);
        ExternalContext ec = facesContext.getExternalContext();

        //informacoes do sgu
        ResourceBundle bundle = ResourceBundle.getBundle("sgu-config");
        String token = (String) request.getParameter("sguToken");

        //verifico se o token eh valido
        if (!obterToken(token).equals("")) {
            redirecionarPagina(session, bundle.getString(urlErroAutorizacao), request, response, ec);
        }
        return urlInicio;
    }

O método para redirecionamento:

private void redirecionarPagina(HttpSession session, String url, HttpServletRequest request, HttpServletResponse response, ExternalContext ec) throws IOException {
        StringBuilder strUrl = new StringBuilder();
        String scheme = request.getScheme();
        strUrl.append(scheme);
        strUrl.append("://");
        strUrl.append(request.getServerName());
        strUrl.append(":");
        strUrl.append("8080");
        strUrl.append(url);
        ec.redirect(strUrl.toString());
    }

O problema é que quando cai na condição onde deveria ser redirecionado ec.redirect(strUrl.toString()); o manage bean continua executando e não efetua o redirecionamento. Eu teria que fazer o redirecionamento para uma página de erro - detalhe a página de erro é uma outra url de um outro servidor.
Alguém saberia como fazer isso?

1 Resposta

fabiozanardi

voce conferiu se esse if

if (!obterToken(token).equals("")) {

esta entrando???

caso sim, de um system.out dentro do metodo com a url de saida, veja se esta tudo ok

Criado 29 de fevereiro de 2012
Ultima resposta 29 de fev. de 2012
Respostas 1
Participantes 2