Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf 使用j-security-check验证附加参数_Jsf_Jsf 2_J Security Check - Fatal编程技术网

Jsf 使用j-security-check验证附加参数

Jsf 使用j-security-check验证附加参数,jsf,jsf-2,j-security-check,Jsf,Jsf 2,J Security Check,我已经使用j-security-check实现了web应用程序登录,它接受参数j_用户名和j_密码,用于后台注册表的身份验证。现在,我需要添加出生日期作为另一个参数,并需要使用此参数对用户进行身份验证 有没有办法扩展j-security-check以接受其他参数? 如果可能的话,我希望避免在servlet过滤器中执行检查 使用WebSphere V8、MyFaces JSF 2.0、Servlet 3.0、自定义基于数据库的身份验证最简单的方法是将出生日期附加到实际的j_用户名(即,使用Java

我已经使用
j-security-check
实现了web应用程序登录,它接受参数
j_用户名
j_密码
,用于后台注册表的身份验证。现在,我需要添加出生日期作为另一个参数,并需要使用此参数对用户进行身份验证

有没有办法扩展j-security-check以接受其他参数? 如果可能的话,我希望避免在servlet过滤器中执行检查


使用WebSphere V8、MyFaces JSF 2.0、Servlet 3.0、自定义基于数据库的身份验证

最简单的方法是将出生日期附加到实际的
j_用户名
(即,使用JavaScript,然后在登录模块中手动将其拆分。

通过
HttpServletRequest#login()
编程登录来替换
j_security_check

例如


答案的第二部分对此进行了详细概述:

这可能是一个选项。我想将此作为最后的选项之一:)我不久前遇到了这个问题,只是没有找到任何其他解决方案;-)我将此作为一个解决方案,因为我找不到任何替代选项
<h:form>
    <h:inputText value="#{bean.username}" />
    <h:inputSecret value="#{bean.password}" />
    <h:inputText value="#{bean.birthdate}" />
    <h:commandButton value="Login" action="#{bean.login}" />
</h:form>
public void login() {
    // Do your thing with birthdate here.

    // ...

    // Then perform programmatic login.
    try {
        request.login(username, password);
        // Login success. Redirect to landing page.
    } catch (ServletException e) {
        // Login fail. Return to login page.
    }
}