繁体   English   中英

使用JSF 2.0进行激活素FORM认证的问题

[英]Problem with activatin FORM authentfication with JSF 2.0

使用j_security_check在Java EE / JSF中执行用户身份验证

我尝试了这种解决方案。 但是如果我把它放到我的配置中

<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>

基本身份验证的登录弹出窗口不再显示..这就是我所关注的。 但是随后出现的登录页面没有Inputfields ..没有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:

换句话说,不会调用FacesServlet 另一个证据是,在浏览器中右键单击页面,选择“ 查看源代码” ,您将看到未处理JSF标记。 FacesServlet是负责这一工作的人。

您需要更改登录页面的URL以匹配FacesServleturl-pattern 如果是例如*.jsf ,则更新如下:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM