java - 使用 JSF 2.0 激活 FORM 身份验证时出现问题

标签 java jsf

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:

最佳答案

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

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

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

关于java - 使用 JSF 2.0 激活 FORM 身份验证时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3968568/

相关文章:

java - 多模块项目中的 spring boot gradle 插件-查找 mainClass 时出错

java - 缓存 YAML 文件

java - 动态添加绑定(bind)到TableView

java - 根据玩家 X,Y 切换 jpanels?

java - 有没有办法在不创建新的临时 ArrayList 的情况下更改 ArrayList 的泛型类型?

JSF UIComponent 绑定(bind)、可序列化和 View 范围

javascript - 如何将值从 jQuery 传递到 jsf h :inputText and Backing Bean

ajax - 如何将参数值传递给a4j :jsFunction

java - 如何通过 Controller 显示组件?

jsf - 我应该使用哪个 jsf-impl?