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();
}