Il y a cette expression régulière pour vérifier la validité d'un mot de passe:
@Pattern(regexp = ".*(?=.{8,})(?=.*\\d)(?=.*[a-z])(?=.*[A-Z]).*",
message = "Le mot de passe saisi n'est pas assez sécurisé")
Elle fonctionne bien... sauf qu'elle accepte également les espaces à l'intérieur du mot de passe, ce qui n'est pas correct.
Je suppose que je dois intégrer "\S" pour dire "sans espace", mais je ne sais pas où et comment le mettre. J'ai fait divers tests mais ça ne fonctionne pas. Par exemple j'ai testé:
Et là on est bien obligé d'intégrer un espace pour que ça fonctionne.
Donc je comprends la logique d'obliger à placer une classe de caractères, mais pas celle d'exclusion.
Ce doit être tout bête mais je ne m'en sors pas.
Merci à ceux qui auront pris le temps de me lire.
PS: j'ai également essayé avec "\w" (pour dire que cela doit être un mot entier, donc sans espaces) mais cela exclut les caractère accentués notamment donc ça ne conviendrait pas de toute manière pour le test.
Elle fonctionne bien... sauf qu'elle accepte également les espaces à l'intérieur du mot de passe, ce qui n'est pas correct.
- Edité par Ayok il y a environ 13 heures
L'espace fait partie des caractères spéciaux et ne nuit aucunement à la sécurité d'un mot de passe, bien au contraire !
D'autre part la REGEX ne fonctionnait pas pour moi :s
De toute façon si tu souhaites refuser les espaces il te faut replacer les "." par des "[^ .]", ce qui signifie "Je veux tous les caractères sauf les espaces. Voilà un super site pour t'entraîner : regexr.com.
C'est vrai que je n'avais jamais testé de mettre des espaces dans un mot de passe en fait (sans doute l'habitude du développeur de remplacer par des underscores ou formatter style "maVariable" lol), mais en essayant de créer un compte hotmail avec mot de passe "Moule Frite 51 @" finalement ça passe très bien donc tu as tout à fait raison les espaces sont inclus.
Malgré tout merci pour la suggestion, je vais tester à titre d'exercice et c'est toujours bon de savoir comment exclure des espaces de toute manière un jour ou l'autre.
Oui j'avais vu ce site et je commençais à m'en servir pour faire mes tests, mais avec l'exemple en question
.*(?=.{8,})(?=.*\\d)(?=.*[a-z])(?=.*[A-Z]).*
par exemple, ça ne surligne pas la partie
0123456789
du texte par défaut du site. Alors qu'elle valide bien ce nombre dans le formulaire (ce qui est normal), donc à partir de là j'ai eu des doutes et je préférais tester directement dans mon formulaire.
Je me suis dit que les symboles et regex n'étaient pas exactement les mêmes d'un langage à un autre. J'en avais fait il y a longtemps durant mes études et je maîtrisais assez bien (en tout cas scolairement ). Mais c'est le genre de choses qu'il faut pratiquer assez souvent pour ne pas oublier
Juste pour info car tu disais que ça ne fonctionnait pas pour toi. Voici mon code entre bean et formulaire. Je suis en JSF 2.2, et comme le tuto commence à dater, peut être qu'avec les versions d'avant il y avait certains bugs, comme signalés dans le tuto pour certains et qui ont été corrigés depuis avec JSF 2.2 (tant mieux!)
@Entity
public class Utilisateur
{
@Id
@GeneratedValue( strategy = GenerationType.IDENTITY )
private Long id;
@NotNull ( message = "Veuillez saisir une adresse email" )
@Pattern( regexp = "([^.@]+)(\\.[^.@]+)*@([^.@]+\\.)+([^.@]+)", message = "Merci de saisir une adresse mail valide" )
private String email;
@Column( name = "mot_de_passe" )
@NotNull( message = "Veuillez saisir un mot de passe" )
@Size( min = 3, message = "Le mot de passe doit contenir au moins 3 caractères" )
@Pattern(regexp = ".*(?=.{8,})(?=.*\\d)(?=.*[a-z])(?=.*[A-Z]).*", message = "Le mot de passe saisi n'est pas assez sécurisé (au moins 8 caractères, 1 chiffre, 1 lettre minuscule et 1 lettre majuscule")
private String motDePasse;
@NotNull( message = "Veuillez saisir un nom d'utilisateur" )
@Size( min = 3, message = "Le nom d'utilisateur doit contenir au moins 3 caractères" )
private String nom;
@Column( name = "date_inscription" )
private Timestamp dateInscription;
...
}
oui j'ai vu les showcases des différentes librairies (RichFaces, OmniFaces, Icefaces... bien que certaines sont sur le déclin semble-t-il) !!! ca donne envie lol, ya plein de possibilités sexy
J'en suis pas encore là, je dois encore finir le tout dernier TP8
Mais bientôt bientôt.... un projet personnel de faire un site-serveur-BD pour un site commercial, ça fera une bonne expérience perso pour mettre tout ça en pratique
Dans le doute: Reboot !! ლ(ಠ益ಠ)ლ
Regex - sans espace
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.