Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/308.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.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
如何在JavaEE6中实现身份验证机制_Java_Security_Authentication_Jakarta Ee_Java Ee 6 - Fatal编程技术网

如何在JavaEE6中实现身份验证机制

如何在JavaEE6中实现身份验证机制,java,security,authentication,jakarta-ee,java-ee-6,Java,Security,Authentication,Jakarta Ee,Java Ee 6,我试图学习JavaEE6,我只是想知道如何在JavaEE6中实现身份验证机制 以下是Java EE 6身份验证示例: public void login() { if (account.authenticate(name, password) == null) { message = "Invalid user name or password!"; } else { message = " Login suc

我试图学习JavaEE6,我只是想知道如何在JavaEE6中实现身份验证机制

以下是Java EE 6身份验证示例:

    public void login() {
    if (account.authenticate(name, password) == null) {
        message = "Invalid user name or password!";
    } else {
        message = " Login successful";
        FacesContext context = FacesContext.getCurrentInstance();
        HttpServletRequest request = (HttpServletRequest) context.getExternalContext().getRequest();
        try {
            request.login(this.name, this.password);
            Principal principal = FacesContext.getCurrentInstance().getExternalContext().getUserPrincipal();
            name = principal.getName();
        } catch (ServletException e) {
            // Handle unknown username/password in request.login().
            context.addMessage(null, new FacesMessage("Unknown login"));
        }
    }
}
我有以下问题:

  • 如何使用request.login函数检查名称和密码?它不知道用户实体
  • 如果这不是正确的方法。如何实现标准认证机制
  • 最后,谢谢你的建议,我需要一个非常好的教程或建议

    如何
    请求.登录
    功能检查名称和密码?它不知道用户实体

    允许实现编程安全性,并在为ServletContext配置的web容器登录机制使用的密码验证域中验证提供的用户名和密码

    换句话说,它将身份验证检查委托给容器,并且该检查是针对webapp的安全领域进行的。这是一种非常好的
    替代基于表单的身份验证的方法

    在实际操作中很好地展示了此功能。如果您不想使用文件领域,而是使用JDBC领域,请选中

    另见

    很酷。非常感谢。我喜欢Java和JavaEE。@Zeck:JavaEE6太棒了!为什么你说它是“基于表单的身份验证的替代品”,在屏幕上,登录/密码框看起来真的像一个,不是吗?(或者我们不是在讨论同一种表单?@Kevin这两种解决方案都依赖于表单,但会强制您使用表单专用页面。这不是这里的原因,这就是为什么我认为这是一个更好的选择。