Почему мой тег перенаправления в файле 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>
пожалуйста, помогите мне найти решение. Ты так много