我已经使用j-security-check实现了web应用程序登录,它接受参数j_username和j_password,用于与后台注册表进行身份验证。现在,我需要添加出生日期作为另一个参数,并需要使用此参数验证用户。
有没有办法扩展j-security-check来接受额外的参数?如果可能的话,我希望避免在servlet筛选器中执行检查。
使用WebSphere V8、MyFaces JSF2.0、Servlet3.0、基于自定义数据库的身份验证
发布于 2013-03-08 15:40:14
最简单的方法是将出生日期附加到实际的j_username (即使用JavaScript,然后在登录模块中手动拆分。
发布于 2013-03-13 23:53:53
将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.
}
}这在这个答案的第二部分中有详细的描述:Performing user authentication in Java EE / JSF using j_security_check
https://stackoverflow.com/questions/15286145
复制相似问题