我创建了一个数据库设置jsf页面,它在页面加载期间显示属性文件中的值。用户将更新页面并单击提交,并在属性文件中更新值。
我写了下面的代码
<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>
<h:inputSecret id="wspasswordInput" value="#{mypage.Password}" style="display:none;width:146px" maxlength="100" redisplay="true" autocomplete="off"></h:inputSecret>
public void setPassword(String Password) {
this.Password = Password;
}
public String getPassword() {
return Password;
}
我在这里更新我的实体。
虽然我在页面加载期间设法显示属性文件中的密码,但它正确显示。但我不想在密码字段中显示实际密码。 Coz用户可以使用firebug扩展名在页面源中查看密码。我想显示一些静态字符,如'******',而不是显示实际的密码。当用户单击提交按钮时,我想保存用户修改的密码。
请建议任何解决方案?
答案 0 :(得分:3)
预先填充密码字段没有意义。 getPassword()
应该返回null,或者我的意思是""
,甚至"********"
。然后,用户可以看到的唯一密码就是他刚输入的密码,这可能是也可能不正确,并且会在POST时消失。
我希望这并不意味着你有明文密码。如果你这样做,你会遇到比这更大的问题。密码必须经过哈希处理。请参阅password-encryption了解原因,并回答here。