Galera, blz?,
Estou com o seguinte problema, implementei o JAAS com JSF a um projeto, consegui realizar uns testes e a autenticaçao funciona, o problema é que no JSF, na pagina de login quando tento entrar ele recarrega a pagina de login, não acessando a pagina de usuario e nem a pagina de login invalido, fora o JSF funciona mais nao carrega os conteudos das paginas JSF.
Consegui resolver esse problema, tinha um form a mais no meu formulario de login, mais o que acontece agora é que ao efetuar login o sistema nao encontra a pagina do usuario, mas se eu voltar a pagina e tentar de novo ele carrega normalmente, o que será que pode ser?
Eu utilizo em outras paginas, de cadastro por exemplo, retornando ao usuário, sobre campos obrigatórios não preenchidos, e pelas regras de navegação do JSF, mais na pagina de login não esta exibindo, o meu problema é essa questão do JAAS só acessar na segunda tentativa, andei lendo e percebi em alguns projetos o uso do ao invés do , não entendi muito bem, voce poderia me ajudar a implementar o , talvez seja esse o problema, na requisição do JSF ele atualizar o link e acessar a pagina do usuario.
No link ou botão para a página de login de seu index.xhtml, aponte para um método do tipo:
public String minhaPaginaDeLogin(){
return "/PastaProtegidaPeloJaas/index.xhtml?faces-redirect=true";
}
No seu caso, deve ser a pasta: “local”, então aponte para local/suaPagina.xhtml.
Ou seja, você vai apontar o link para uma página dentro de uma pasta protegida pelo JAAS, conforme informado no web.xml.
Ao tentar acessar esta página o usuário automaticamente será levado para a página de login do JAAS (informada no web.xml) para que possa informar as credenciais e acessar a página pretendida.
O p:messages que você utilizou não tem serventia na página de login, pois caso o usuário reprove na validação será encaminhado para a página de falha de login, informada no web.xml.
Tente fazer estes ajustes, deve conseguir.
Por favor nos dê o retorno e coloque o tópico como concluído.
[quote=henrique ganso]Eu utilizo em outras paginas, de cadastro por exemplo, retornando ao usuário, sobre campos obrigatórios não preenchidos, e pelas regras de navegação do JSF, mais na pagina de login não esta exibindo, o meu problema é essa questão do JAAS só acessar na segunda tentativa, andei lendo e percebi em alguns projetos o uso do ao invés do , não entendi muito bem, voce poderia me ajudar a implementar o , talvez seja esse o problema, na requisição do JSF ele atualizar o link e acessar a pagina do usuario.
Obrigado![/quote]
Entendi, tive o mesmo problema que você, coloca o nas tuas páginas no faces-config.xml ai que resolve, agora, eu fiz isso meio sem saber como resolveu, fiquei com a dúvida…se alguém souber responder porque tem que chamar duas vezes o link se não colocar o redirect seria legal =))
Cara, aproveitando que você também está trabalhando com JAAS, uma coisa que achei bem chata é ter que informar qual a role do usuário antes de ir pro formulário de login, por que o JAAS não sabe pra qual diretório protegido ele quer ir, ou seja, antes de fazer o login, eu tive que criar um link para cada role, pra depois de selecionado o tipo ir pra página de login. Tem como contornar isso será? Como você fez a autenticação?
tem um campo na tabela de usuario no BD, “grupo”, assim pelo nome do usuario é identificado a qual grupo pertence e libera o acesso, por exemplo, o usuario com cadastro no grupo CLI terá acesso ao diretorio local.
[quote=gRoOve][quote=mrbbm]
Ou seja, você vai apontar o link para uma página dentro de uma pasta protegida pelo JAAS, conforme informado no web.xml.
Ao tentar acessar esta página o usuário automaticamente será levado para a página de login do JAAS (informada no web.xml) para que possa informar as credenciais e acessar a página pretendida.
[/quote]
Cara, aproveitando que você também está trabalhando com JAAS, uma coisa que achei bem chata é ter que informar qual a role do usuário antes de ir pro formulário de login, por que o JAAS não sabe pra qual diretório protegido ele quer ir, ou seja, antes de fazer o login, eu tive que criar um link para cada role, pra depois de selecionado o tipo ir pra página de login. Tem como contornar isso será? Como você fez a autenticação?[/quote]
Olha, eu apenas encaminho o usuário para dentro de uma pasta protegida, automaticamente ele volta para a página de login do JAAS e ao logar ele é levado para a pasta que estava tentando acessar. Não preciso informar ROLES antes. No seu caso deve ser sua implementação, onde dependendo da ROLE o usuário é levado para tal página.
No meu caso o usuário apenas se loga. Depois de logado faço o controle de para onde ele pode ou não ir.
Você só tem a role “CLI” por enquanto, certo? Quando você vai fazer o login tem que dizer qual o link da página protegida, pra depois de realizado o login, o usuário ser redirecionado à ela.
Quando você tiver outra role, vai ter no mínimo dois links protegidos, e ai, qual vai indicar?
Por isso que eu te disse, fica uma coisa bem POG isso, o cara ter que falar qual a role dele antes, pra depois ir pro login.
Tentei implementar outra role que vai entender o que eu estou falando.
[quote=mrbbm]Olha, eu apenas encaminho o usuário para dentro de uma pasta protegida, automaticamente ele volta para a página de login do JAAS e ao logar ele é levado para a pasta que estava tentando acessar. Não preciso informar ROLES antes. No seu caso deve ser sua implementação, onde dependendo da ROLE o usuário é levado para tal página.
No meu caso o usuário apenas se loga. Depois de logado faço o controle de para onde ele pode ou não ir.[/quote]
Sim, para cada role ele tem acesso a diretórios diferentes. E agora? Não quero ter que selecionar o tipo da role antes de fazer login "/
Quando falo em selecionar o tipo da role, seria um link apontando para uma página protegida, após clicar o usuário é encaminhado à página de login, após logar é direcionado para a página do primeiro link clicado.
Como você faz o controle de para onde ele pode ir ou não?
[quote=gRoOve][quote=mrbbm]Olha, eu apenas encaminho o usuário para dentro de uma pasta protegida, automaticamente ele volta para a página de login do JAAS e ao logar ele é levado para a pasta que estava tentando acessar. Não preciso informar ROLES antes. No seu caso deve ser sua implementação, onde dependendo da ROLE o usuário é levado para tal página.
No meu caso o usuário apenas se loga. Depois de logado faço o controle de para onde ele pode ou não ir.[/quote]
Sim, para cada role ele tem acesso a diretórios diferentes. E agora? Não quero ter que selecionar o tipo da role antes de fazer login "/
Quando falo em selecionar o tipo da role, seria um link apontando para uma página protegida, após clicar o usuário é encaminhado à página de login, após logar é direcionado para a página do primeiro link clicado.
Como você faz o controle de para onde ele pode ir ou não?[/quote]
Depois de logado, ao clicar para ir para determinada página, por exemplo, administração, verifico se ele tem a ROLE necessária para acessar esta página. Em alguns casos o botão ou link só é exibido se o usuário tiver esta ROLE.
No link ou botão para a página de login de seu index.xhtml, aponte para um método do tipo:
public String minhaPaginaDeLogin(){
return "/PastaProtegidaPeloJaas/index.xhtml?faces-redirect=true";
}
No seu caso, deve ser a pasta: “local”, então aponte para local/suaPagina.xhtml.
Ou seja, você vai apontar o link para uma página dentro de uma pasta protegida pelo JAAS, conforme informado no web.xml.
Ao tentar acessar esta página o usuário automaticamente será levado para a página de login do JAAS (informada no web.xml) para que possa informar as credenciais e acessar a página pretendida.
O p:messages que você utilizou não tem serventia na página de login, pois caso o usuário reprove na validação será encaminhado para a página de falha de login, informada no web.xml.
Tente fazer estes ajustes, deve conseguir.
Por favor nos dê o retorno e coloque o tópico como concluído.
[/quote]
Sem sucesso, continua não acessando a pagina protegida no primeiro acesso o link vai para “http://localhost:8080/Insjc_Consulta/local/RES_NOT_FOUND”, a autenticação é realizada e se eu realizar nova tentativa a pagina é acessada normalmente.
eu já apontava um link para a pagina protegida e mesmo adicionando o ?faces-redirect=true a frente do link, continua do mesmo jeito. Tentei alterar meu faces-config utilizando
Obrigado a todos, consegui resolver o problema, alterei o meu web.xml, ao invés de apontar para /local/* eu apontei para a pagina principal da pasta protegida.
segue meu web.xml