【问题标题】:Verifying additional parameter with j-security-check使用 j-security-check 验证附加参数
【发布时间】:2013-02-23 12:49:07
【问题描述】:

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

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

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

【问题讨论】:

    标签: jsf jsf-2 j-security-check


    【解决方案1】:

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

    【讨论】:

    • 这可以是一个选项。我想把它作为最后的选择之一:)
    • 我前段时间遇到过这个问题,只是没有找到任何其他解决方案;-)
    • 我将此作为解决方案,因为我找不到任何替代选项
    【解决方案2】:

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

    此答案的第二部分对此进行了详细概述:Performing user authentication in Java EE / JSF using j_security_check

    【讨论】:

      猜你喜欢
      • 2019-03-24
      • 1970-01-01
      • 2016-10-29
      • 2012-08-21
      • 2018-01-29
      • 2019-03-31
      • 1970-01-01
      • 1970-01-01
      • 2013-05-26
      相关资源
      最近更新 更多