使用 j-安全检查验证附加参数



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

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

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

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

j_security_check替换为通过 HttpServletRequest#login() 进行编程登录。

例如

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

本答案的第二部分对此进行了详细说明:使用 j_security_check 在 Java EE/JSF 中执行用户身份验证

相关内容

  • 没有找到相关文章

最新更新