Seguinte. Estou criando um sistema CRUD usando JAAS, JBoss e JSF. E o estranho é … quando eu crio um link para um página “protegida” pelo JAAS usando a tag commandLink do JSF, o navegador direciona diretamente para a página mesmo eu não estando logado como administrador nem nada. Tipo o JAAS nem fez a autenticação. Já quando uso o link comum <a href… ele manda pra autenticação. A pergunta é … o JAAS se comporta assim mesmo, ou tem alguma coisa errada?
Seguinte. Estou criando um sistema CRUD usando JAAS, JBoss e JSF. E o estranho é … quando eu crio um link para um página “protegida” pelo JAAS usando a tag commandLink do JSF, o navegador direciona diretamente para a página mesmo eu não estando logado como administrador nem nada. Tipo o JAAS nem fez a autenticação. Já quando uso o link comum <a href… ele manda pra autenticação. A pergunta é … o JAAS se comporta assim mesmo, ou tem alguma coisa errada?
Obrigado!
<h:commandLink action="/pages/protected/admin/admin.xhtml" value="Para administrador" />
<a href="/agendaPro/pages/protected/admin/admin.xhtml">Para administrador link comum</a>
O commandLink usa post. Por isso que você consegue entrar na página inicial. Tente navegar para outra página e você vai ver que ele te manda para a tela de login.
O que você pode fazer é no commandLink chamar um redirect. Ou então você pode utilizar o outputLink (eu acho).
VandersonAssis
jakefrog:
kira911:
Boa tarde pessoal!
Seguinte. Estou criando um sistema CRUD usando JAAS, JBoss e JSF. E o estranho é … quando eu crio um link para um página “protegida” pelo JAAS usando a tag commandLink do JSF, o navegador direciona diretamente para a página mesmo eu não estando logado como administrador nem nada. Tipo o JAAS nem fez a autenticação. Já quando uso o link comum <a href… ele manda pra autenticação. A pergunta é … o JAAS se comporta assim mesmo, ou tem alguma coisa errada?
Obrigado!
<h:commandLink action="/pages/protected/admin/admin.xhtml" value="Para administrador" />
<a href="/agendaPro/pages/protected/admin/admin.xhtml">Para administrador link comum</a>
O commandLink usa post. Por isso que você consegue entrar na página inicial. Tente navegar para outra página e você vai ver que ele te manda para a tela de login.
O que você pode fazer é no commandLink chamar um redirect. Ou então você pode utilizar o outputLink (eu acho).
Grande Jakefrog!!
Mas cara, só pelo fato do commandLink usar post ele consegue “burlar” o JAAS???
Hebert_Coelho
Ele não burla, repare no seu browser que a URL fica sendo a url anterior e não a URL nova.
Ele não atualiza a URL do browser por isso que o JAAS não trava. [=
Agora caso você tente ir direto para a URL aí sim o JAAS entra de avuadora. [=
VandersonAssis
A soh entendi!
Velhinho mais uma vez muito obrigado.
Vou dar uma pesquisada nesse redirect!
VandersonAssis
Só para avisar, com o redirect ficou perfeito!
Obrigado!
Hebert_Coelho
kira911:
Só para avisar, com o redirect ficou perfeito!
Obrigado!
\o/
Como diriam lá em minas… BAAAAAAAAAAAAAAUUUM!
Coloca o código aí para caso alguém procure depois veja o resultado. [=
VandersonAssis
Opa ta na mão! E quanto à qualquer má prática do JSF nessa página me desculpem, estou começando agora =)
Mas já que o código está aí, me diz ai jakefrog. Tem alguma coisa errada aí nessa pequena página? Algo que eu deveria mudar para fazer uso de uma melhor prática quanto ao JSF?
Mas cara, só pelo fato do commandLink usar post ele consegue “burlar” o JAAS???
Primeiramente, que bom que o problema foi resolvido
Agora só para ficar claro: o acesso pelo commandLink não passou pelo fato de usar post, e sim pela mudança de página ser feita por forward.
Assim:
Você está na página A (que tem acesso permitido), e ela tem um commandLink para a página B (acesso não permitido).
Quando clica no link, é feito um post para a url da página A, e o acesso é autorizado. Somente durante o processamento da requisição - mais especificamente, depois de executar a Action do link e pegar seu retorno - é que ocorre o forward para a página B, internamente. Nesse ponto não existe uma nova validação, e a página B é renderizada com sucesso.
Com redirect isso não acontece, visto que o browser faz uma nova requisição diretamente para a página B.
VandersonAssis
gomesrod:
kira911:
Mas cara, só pelo fato do commandLink usar post ele consegue “burlar” o JAAS???
Primeiramente, que bom que o problema foi resolvido
Agora só para ficar claro: o acesso pelo commandLink não passou pelo fato de usar post, e sim pela mudança de página ser feita por forward.
Assim:
Você está na página A (que tem acesso permitido), e ela tem um commandLink para a página B (acesso não permitido).
Quando clica no link, é feito um post para a url da página A, e o acesso é autorizado. Somente durante o processamento da requisição - mais especificamente, depois de executar a Action do link e pegar seu retorno - é que ocorre o forward para a página B, internamente. Nesse ponto não existe uma nova validação, e a página B é renderizada com sucesso.
Com redirect isso não acontece, visto que o browser faz uma nova requisição diretamente para a página B.