Почему мой тег перенаправления в файле face-config вызывает ошибку

Я создал систему входа в систему для своего приложения. Только я не могу понять, почему, когда я добавляю тег перенаправления в файл Face-config.xml, чтобы иметь правильный URL-адрес после входа в систему, моя навигация больше не работает.

Действительно, если я удалю его, моя функция навигации, но URL-адрес не годится. К минусам, когда я добавляю тег в файл, URL меняется, но страница не меняется. Она просто xhtml.

Это мой код: login.xhtml

<h:body>
    <div id="home-accueil">
        <h1>Bonjour et Bienvenue</h1>
        <h2>Veuillez vous connecter</h2>
    </div>
    <div id="formulaire">
        <h:form id="formConnection">
            <h:inputText id="nomUtil" value="#{utilisateursManageur.nom}" a:placeholder="Mail" /> <br />
            <h:inputSecret id="mdpUtil" value="#{utilisateursManageur.mdp}" a:placeholder="mot de passe" /><br />
            <h:commandButton value="Valider" action="#{utilisateursManageur.login()}" />             
        </h:form>
        <h:message for="formConnection" showSummary="true" showDetail="false"/>

    </div>
</h:body>

мой управляемый боб:

@Named(value = "utilisateursManageur")
@SessionScoped
public class UtilisateursManageur implements Serializable {

Utilisateurs currentUser;
String nom;
String mdp;

@EJB
        UtilisateursFacade utilisateursFacade;



public UtilisateursFacade getUtilisateursFacade() {
    return utilisateursFacade;
}

/**
 * Creates a new instance of utilisateursManageur
 */
public void setUtilisateursFacade(UtilisateursFacade utilisateursFacade) {
    this.utilisateursFacade = utilisateursFacade;
}

public UtilisateursManageur() {
}

public Utilisateurs getCurrentUser() {
    return currentUser;
}

public void setCurrentUser(Utilisateurs currentUser) {
    this.currentUser = currentUser;
}

public String getNom() {
    return nom;
}

public void setNom(String nom) {
    this.nom = nom;
}

public String getMdp() {
    return mdp;
}

public void setMdp(String mdp) {
    this.mdp = mdp;
}

public String logout() throws IOException {

    /* Récupération et destruction de la session en cours */
    FacesContext facesContext = FacesContext.getCurrentInstance();
    HttpSession session = (HttpSession) facesContext.getExternalContext().getSession(true);
    session.invalidate();


    return "toLoginFromAll";
}

public String login() throws NoSuchAlgorithmException, NoSuchProviderException{
    // byte[] salt = getSalt();
    currentUser = utilisateursFacade.findOne(nom, get_SHA_256_SecurePassword(mdp));

    if (currentUser.getNomUtil() != null ) {
        FacesContext facesContext = FacesContext.getCurrentInstance();
        HttpSession session = (HttpSession) facesContext.getExternalContext().getSession(true);
        session.setAttribute("user", currentUser.getNomUtil());
        System.out.println("logic.UtilisateursManageur.login()");
        return "toCompteFromLogin";
    }
    FacesContext context = FacesContext.getCurrentInstance();
    FacesMessage message = new FacesMessage();
    message.setSeverity(FacesMessage.SEVERITY_INFO);
    message.setSummary("Impossible de se connecter. Veuillez vérifier votre identifiants ou votre mot de passe");
    context.addMessage("formOrFieldID", message);
    return "";
}

private static String get_SHA_256_SecurePassword(String passwordToHash)
{
    String generatedPassword = null;
    String salt = "5f8f041b75042e56";
    try {
        MessageDigest md = MessageDigest.getInstance("SHA-256");
        // md.update(salt);
        byte[] bytes = md.digest((salt+passwordToHash).getBytes());
        StringBuilder sb = new StringBuilder();
        for(int i=0; i< bytes.length ;i++)
        {
            sb.append(Integer.toString((bytes[i] & 0xff) + 0x100, 16).substring(1));
        }
        generatedPassword = sb.toString();
    }
    catch (NoSuchAlgorithmException e)
    {
        e.printStackTrace();
    }
    return generatedPassword;
}

}

И для завершения мои хорошие лица-config.xml:

<?xml version='1.0' encoding='UTF-8'?>
<faces-config version="2.2"
              xmlns="http://xmlns.jcp.org/xml/ns/javaee"
              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
              xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-facesconfig_2_2.xsd">
    <navigation-rule>
        <from-view-id>/login.xhtml</from-view-id>
        <navigation-case>
            <from-outcome>toCompteFromLogin</from-outcome>
            <to-view-id>/admin/compte.xhtml</to-view-id>

        </navigation-case>
    </navigation-rule>
    <navigation-rule>
        <from-view-id>/*</from-view-id>
        <navigation-case>
            <from-outcome>toLoginFromAll</from-outcome>
            <to-view-id>/login.xhtml</to-view-id>
        </navigation-case>
    </navigation-rule>
</faces-config>

Если бы у меня было <redirect/> в этом файле. Моя навигация перестала работать. URL изменился, но страница осталась прежней. Она просто перезагрузить.

<navigation-case>
       <from-outcome>toCompteFromLogin</from-outcome>
       <to-view-id>/admin/compte.xhtml</to-view-id>
       <redirect />
</navigation-case>

пожалуйста, помогите мне найти решение. Ты так много

0 ответов

Другие вопросы по тегам