代码之家  ›  专栏  ›  技术社区  ›  Markus

使用JSF 2.0激活表单身份验证时出现问题

  •  1
  • Markus  · 技术社区  · 14 年前

    Performing user authentication in Java EE / JSF using j_security_check

    <login-config>
        <auth-method>FORM</auth-method>
        <realm-name>sql</realm-name>
        <form-login-config>
            <form-login-page>/login.xhtml</form-login-page>
            <form-error-page>/index.xhtml</form-error-page>
        </form-login-config>
    </login-config>
    

    而不是

    <login-config>
        <auth-method>BASIC</auth-method>
        <realm-name>sql</realm-name>
    </login-config>
    

    基本身份验证的登录弹出窗口不再显示。。这就是我所说的。 但是随后出现的登录页面没有输入字段。。没有执行任何faclet代码。怎么会这样?

    我的login.xhtml代码:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml"
          xmlns:h="http://java.sun.com/jsf/html"
          xmlns:f="http://java.sun.com/jsf/core">
    
        <h:head>
            <title>Login</title>
        </h:head>
        <h:body>
    
            <form action="j_security_check" method="post">
                <h:outputLabel for="j_username">Username:</h:outputLabel>
                <h:inputText id="j_username" required="true" />
                <h:message for="j_username" />
                <br />
                <h:outputLabel for="j_password">Password:</h:outputLabel>
                <h:inputSecret id="j_password" required="true" />
                <h:message for="j_password" />
                <br />
                <h:commandButton value="Login" />
            </form>
        </h:body>
    </html>
    

    Username:
    Password:
    
    1 回复  |  直到 7 年前
        1
  •  1
  •   BalusC    14 年前

    换句话说 FacesServlet 未调用。作为另一个证据,右键单击浏览器中的页面,选择 查看源 FacesServlet公司 是那个负责的人。

    url-pattern . 比如说 *.jsf ,然后更新如下:

    <form-login-page>/login.jsf</form-login-page>