java - Sevlet3 登录方法如何工作?

标签 java tomcat servlets authentication

我正在尝试通过 Sevlet3 对用户进行身份验证,Java 类中的这段代码也是如此

 HttpServletRequest request = (HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest();
    try {

           request.login(user, password);

        } catch (ServletException e) {

}

我在 Tomcat server.xml 文件中创建了这个条目

<Realm localDataSource="true" debug="99"
                className="org.apache.catalina.realm.JDBCRealm" connectionName="hariom"
                connectionPassword="password" connectionURL="jdbc:mysql://localhost:3306/ccc"
                digest="md5" driverName="com.mysql.jdbc.Driver" roleNameCol=role_name"
                userCredCol="password" userNameCol="email_id"
                userRoleTable="users_list" userTable="user_list_view" />

在上面的代码中,users_list 是数据库表,user_list_view 是数据库 View ..现在我想知道这段代码是如何调用的,以及登录方法触发了哪个查询这样我就可以检查我的问题或者我做了一些错误的配置。那么如何知道将触发哪个查询以及登录方法将如何对用户进行身份验证?

最佳答案

容器(Tomcat 服务器)负责处理身份验证(使用标准 JAAS),您不必编写任何代码(嗯,最多一个 HTML 页面用于向用户询问数据并将其传递给容器(如果您使用的是 FORM 身份验证)。

容器将知道要使用的安全领域,因为它将在配置文件中定义(不是 web.xml,但每个容器使用不同的;Tomcat 使用 META-INF/context.xml)

当 Web 应用程序的身份验证数据传递给容器时,它会从 context.xml 文件中获取要使用的领域,并从该领域调用模块。

http://tomcat.apache.org/tomcat-7.0-doc/appdev/deployment.html http://tomcat.apache.org/tomcat-7.0-doc/config/context.html#Defining_a_context

注意:J2EE 容器功能强大,但复杂。您将节省大量阅读手册的时间,并且至少了解他们管理的问题。

关于java - Sevlet3 登录方法如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24096472/

相关文章:

java - 如何从 2 个函数中获取字符并产生输出?

java - Java 中的内存使用和垃圾收集

java - 为什么我的OpenGrok全搜索总是出不到结果?

java - Logback 与logstash-logback-encoder 不工作

JavaFX webview 全局 CSS 深色主题

java - 在java中使用正则表达式验证文件名

eclipse - 自动将第三方 jar 添加到 Tomcat lib 文件夹

Eclipse Juno 的 Maven 插件 -> 在 .m2 下找不到 conf 目录

java - 同一表单中的多个提交按钮调用不同的 Servlet

java - Ajax 调用不起作用