2017-08-23 1 views
-1

J'ai créé une page jsf de définition de base de données qui affiche la valeur du fichier de propriétés pendant le chargement de la page. Les utilisateurs mettront à jour la page et cliquent sur le soumettre et la valeur sera mise à jour dans le fichier de propriétés.Comment faire un masquage de mot de passe dans JSF

j'ai écrit le code ci-dessous

entity.hbm.xml

<class name="mypageEntity" 
    table="tbl_user"> 
    <id name="id" type="long"> 
     <column name="ID" /> 
     <property name="Password" type="java.lang.String" 
     column="PASSWORD" length="100" />  
    </id></class> 

mypage.jsp

<h:inputSecret id="wspasswordInput" value="#{mypage.Password}" style="display:none;width:146px" maxlength="100" redisplay="true" autocomplete="off"></h:inputSecret> 

mypageEntity.java

public void setPassword(String Password) { 
    this.Password = Password; 
} 
public String getPassword() { 
    return Password; 
} 

mypageActionImpl.java

Je suis en train de mettre à jour mon entité ici.

Bien que j'ai réussi à afficher le mot de passe du fichier de propriétés pendant le chargement de la page, il s'affiche correctement. Mais je ne veux pas afficher le mot de passe réel dans le champ mot de passe. Les utilisateurs Coz peuvent voir le mot de passe dans la source de la page en utilisant l'extension firebug. Je veux afficher des caractères statiques comme '******' au lieu d'afficher le mot de passe actuel. Lorsque l'utilisateur clique sur le bouton soumettre, je veux enregistrer le mot de passe qui est modifié par l'utilisateur.

Veuillez suggérer une solution?

+0

Svp soyez sage et utilisez un cadre existant bien pensé pour ceci comme [tag: PicketLink] ou [tag: shiro] ou même [tag: spring-seucity] – Kukeltje

Répondre

3

Il ne sert à rien de pré-remplir le champ du mot de passe. getPassword() devrait retourner null, ou peut-être que je veux dire "", ou même "********". Ensuite, le seul mot de passe que l'utilisateur peut voir est celui qu'il vient de taper, ce qui peut être correct ou non, et il disparaîtra au POST.

J'espère que cela ne signifie pas que vous avez des mots de passe en clair. Si vous le faites, vous avez un problème beaucoup plus important que cela. Les mots de passe doivent être hachés. Voir pour pourquoi, et ma réponse here.