Olá pessoal,
Estou tendo um probleminha quando submeto o formulário de login.
Vou tentar explicar melhor:
1º. Adicionei o código abaixo ao meu web.xml
[code]
manager
<security-constraint>
<web-resource-collection>
<web-resource-name>management pages</web-resource-name>
<url-pattern>*.jsf</url-pattern>
<http-method>GET</http-method>
<http-method>POST</http-method>
</web-resource-collection>
<auth-constraint>
<role-name>manager</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>FORM</auth-method>
<form-login-config>
<form-login-page>/login.jsf</form-login-page>
<form-error-page>/login.jsf</form-error-page>
</form-login-config>
</login-config>
[/code]
2º. Criei a página de login (login.jsp):
<body>
<form method="POST" action="j_security_check">
Login:: <input type="text" name="j_username"> <br/>
Password: <input type="password" name="j_password">
<br/>
<input type="submit" value="Submit"/>
</form>
</body>
Quando tento acessar qualquer recurso (.jsf) no servidor ele direciona para a página de login, até aqui tudo bem.
Meu problema vem agora, quando eu digito o usuário e a senha no formulário e submeto ele não consegue redirecionar para a página (.jsf) que eu tentei acessar, e o pior direciona para uma página estranha (mostrada abaixo):
{var mediaName="rich-extended-skinning";var skipNavigator=window.opera||navigator.userAgent.indexOf('AppleWebKit/')>-1;if(!skipNavigator){var resetMedia=function(elt){var media=elt.getAttribute('media');if(mediaName==media){elt.removeAttribute('media');}};if(!window._RICH_FACES_SKINNING_ADDED_TO_BODY){var getElementByTagName=function(elt,name){var elements;try{elements=elt.selectNodes(".//*[local-name()=\""+
name+"\"]");}catch(ex){try{elements=elt.getElementsByTagName(name);}catch(nf){}}
return elements;};var f=function(){if(window.RICH_FACES_EXTENDED_SKINNING_ON){var styles=getElementByTagName(document,'link');if(styles){var l=styles.length;for(var i=0;i<l;i++){var elt=styles[i];resetMedia(elt);}}}};if(window.addEventListener){window.addEventListener("load",f,false);}else{window.attachEvent("onload",f);}
window._RICH_FACES_SKINNING_ADDED_TO_BODY=true;}
if(!window._RICH_FACES_SKINNING_ADDED_TO_AJAX&&typeof A4J!="undefined"&&A4J.AJAX){A4J.AJAX.AddHeadElementTransformer(function(elt){if(window.RICH_FACES_EXTENDED_SKINNING_ON){if(elt.tagName&&elt.tagName.toLowerCase()=='link'){resetMedia(elt);}}});window._RICH_FACES_SKINNING_ADDED_TO_AJAX=true;}}};
Mas o interessante é que agora eu estou logado, tanto que se eu digitar novamente o endereço da página (.jsf) eu irei acessá-la.
Alguma idéia de como fazer o redirecionamento correto? Isso é possível no JSF ou terei de utilizar algum outro recurso de login (que não seja a opção BASIC do web.xml)?
Desde já obrigado,
Normandes Junior