2010-10-19 3 views
1

Performing user authentication in Java EE/JSF using j_security_checkProblème avec activatin Authentification FORM avec JSF 2.0

J'ai essayé cette solution. Mais si je mets à mon config

<login-config> 
    <auth-method>FORM</auth-method> 
    <realm-name>sql</realm-name> 
    <form-login-config> 
     <form-login-page>/login.xhtml</form-login-page> 
     <form-error-page>/index.xhtml</form-error-page> 
    </form-login-config> 
</login-config> 

au lieu de

<login-config> 
    <auth-method>BASIC</auth-method> 
    <realm-name>sql</realm-name> 
</login-config> 

la fenêtre de connexion de base auth ne montre pas plus .. qui était ce que j'aspecté. Mais la page de connexion qui vient alors n'a pas de champs d'entrée .. aucun code de faclet n'a été exécuté. comment cela pourrait-il être?

mon code login.xhtml:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" 
     xmlns:h="http://java.sun.com/jsf/html" 
     xmlns:f="http://java.sun.com/jsf/core"> 

    <h:head> 
     <title>Login</title> 
    </h:head> 
    <h:body> 

     <form action="j_security_check" method="post"> 
      <h:outputLabel for="j_username">Username:</h:outputLabel> 
      <h:inputText id="j_username" required="true" /> 
      <h:message for="j_username" /> 
      <br /> 
      <h:outputLabel for="j_password">Password:</h:outputLabel> 
      <h:inputSecret id="j_password" required="true" /> 
      <h:message for="j_password" /> 
      <br /> 
      <h:commandButton value="Login" /> 
     </form> 
    </h:body> 
</html> 

C'est tout ce qui est affiché

Username: 
Password: 

Répondre

1

En d'autres termes, le FacesServlet est pas été invoquée. Comme une autre preuve, clic droit page dans le navigateur, choisissez Afficher la source et vous verrez que les balises JSF n'ont pas été traitées. Le FacesServlet est le responsable de cela.

Vous devez modifier l'URL de la page de connexion pour correspondre au url-pattern du FacesServlet. Si tel est par exemple *.jsf, puis mise à jour comme suit:

<form-login-page>/login.jsf</form-login-page> 
+0

D'accord, il était /faces/login.xhtml Merci vous me poussais à droite direction .. Je pardonne le Servlet Visages qui cartographie automatiquement tous les Faclets! Merci! – Markus

+1

De rien. Vous pouvez également mapper le 'FacesServlet' sur' * .xhtml', alors vous n'avez jamais à vous soucier de tout cela. – BalusC

+0

je pense que cette cartographie est sur un répertoire virtuel ?? Faces Servlet * .xhtml fonctionnerait? – Markus