Redirecionar para pagina original após o login

Boa tarde pessoal, estou com um problema a quase 1 semana, e não consigo pensar em mais nada que possa me ajudar, vou compartilhar o mesmo com vocês, se alguém já passou por algo do tipo, ou tiver uma ideia, ficaria muito grato.

Estou desenvolvendo uma aplicação usando o ADF Essentials da Oracle, estou utilizando o JAAS para autenticação e autorização, o problema é que quando o usuário não está logado no sistema, e tenta acessar alguma pagina protegida, o JAAS redireciona ele para a pagina de login, ok, até ai tudo legal, só que o que eu preciso fazer, é que quando o usuário logar, ele redirecione para a pagina que ele tentou acessar, e não para uma pagina padrão que eu declaro no método de login, segue o código do ManagedBean abaixo:

      public String login() {
        String WELLCOME_PAG = "faces/protected/index";
        FacesContext context = FacesContext.getCurrentInstance();
        HttpServletRequest request = (HttpServletRequest) context.getExternalContext().getRequest();
        try {
            request.login(username, password);
            
        catch (ServletException ex) {
            System.out.println(ex);
            return "";
        }
    }

OK, e o que eu já tentei fazer? vamos la…
já tentei criar um filtro, filtrando todas as requisições da aplicação, esse filtro salva a penúltima e a ultima URL acessada pelo usuário, e eu fazia com que o return do método de login, fosse a penúltima pagina (caso a mesma não fosse null), porém, essa ideia funcionou sem o JAAS…, é como se o servidor não completasse o request, com o JAAS ele redireciona para a pagina de login novamente, e o filtro, só pega a pagina do JAAS, tentei fazer a mesma coisa, só que dessa vez, usando phaseListener ao invez de filter, o resultado foi o mesmo. o código que usei para recuperar a url foi esse (usei o mesmo no phaseListener e no filter) tentei, também criar um event em um template que é usado em todas as paginas, para fazer isso, coloquei o mesmo método abaixo como listener dele, porém o resultado foi o mesmo…

  private void changeURL(){
        FacesContext context = FacesContext.getCurrentInstance();
        HttpServletRequest request = (HttpServletRequest) context.getExternalContext().getRequest();
        penult_URL = atual_URL;
        atual_URL = request.getPathInfo(); 
  }