禁用Web浏览器密码保存

时间:2011-12-14 12:47:15

标签: jsf jsf-2 jboss

我有一个使用JSF 2.0制作的简单登录页面。通常在每个登录页面中,Web浏览器建议用户将其用户名保存为密码。

我在Oracle的网站上看到用户必须验证当我输入用户名和密码时,浏览器不会问我是否要保存用户名和密码。也许有一种方法可以从登录页面的代码中禁用它。

这可能吗?

3 个答案:

答案 0 :(得分:13)

您基本上需要将autocomplete="off"属性添加到HTML <form>元素。但是,<h:form>不支持此属性。它仅在单个<h:inputText><h:inputSecret>组件上受支持。

所以,这应该做:

<h:form>
    <h:inputText value="#{auth.username}" required="true" autocomplete="off" />
    <h:inputSecret value="#{auth.password}" required="true" autocomplete="off" />
    <h:commandButton value="Login" action="#{auth.login}" />
    <h:messages />
</h:form>

autocomplete上的新<h:form>属性计划用于JSF 2.2。另请参阅JSF spec issue 418

或者,如果您使用j_security_check的容器管理登录,无论如何都需要普通的HTML <form>,那么只需将其添加到其中:

<form action="j_security_check" method="post" autocomplete="off">
    <input type="text" name="j_username" />
    <input type="password" name="j_password" />
    <input type="submit" value="Login" />
</form>

另见:

答案 1 :(得分:0)

您还可以使用Jquery来阻止自动完成选项。所以,我们没有必要为个别领域。

<script>
$(function(){
$("#formID").attr("autocomplete", "off");
});
</script>

how to do autocomplete="off" at form level in JSF

答案 2 :(得分:-1)

如果添加“自动完成”不起作用,您可以尝试这个技巧。你应该在真实的“inputText”之后加上这种风格:

<p:inputText style="display: none;"/>