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