如何使用tomcat为容器管理的安全性配置JDBC领域?

如何使用tomcat为容器管理的安全性配置JDBC领域?,tomcat,web.xml,realm,Tomcat,Web.xml,Realm,我想将tomcat/my web应用程序配置为使用JDBC域实现容器管理的安全性。我在tomcat的server.xml文件中指定了如下领域: <Realm className="org.apache.catalina.realm.JDBCRealm" driverName="net.sourceforge.jtds.jdbc.Driver" connectionURL="jdbc:jtds:sqlserver://hostname:1433/intranet;user=sa;passwo

我想将tomcat/my web应用程序配置为使用JDBC域实现容器管理的安全性。我在tomcat的server.xml文件中指定了如下领域:

<Realm className="org.apache.catalina.realm.JDBCRealm" driverName="net.sourceforge.jtds.jdbc.Driver" connectionURL="jdbc:jtds:sqlserver://hostname:1433/intranet;user=sa;password=sa04jT14;instance=instanceName" userTable="users" userNameCol="username" userCredCol="password" userRoleTable="roles" roleNameCol="role" />

我创建了数据库和表。我创建了一个登录页面,并在web.xml中添加了以下代码:

<login-config>
    <auth-method>FORM</auth-method>
    <form-login-config>
        <form-login-page>/login.xhtml</form-login-page>
        <form-error-page>/login.xhtml</form-error-page>
    </form-login-config>
</login-config>

形式
/login.xhtml
/login.xhtml
但是Tomcat如何知道必须使用哪个领域进行身份验证呢? 我必须向元素添加元素吗?那么价值应该是什么呢


提前谢谢。

这样很好。它取决于Tomcat将为您的webapp找到并使用的
声明的位置。在以下章节中也明确提到:

元素可以嵌套 在下列任何一种情况下
容器
元素。地点 领域元素具有直接影响 关于该领域的“范围”(即。 哪些web应用程序将共享 相同的身份验证信息):

  • 元素中-此领域将在所有 所有虚拟主机上的web应用程序, 除非它被领域覆盖 嵌套在从属对象中的元素
    元素

  • 元素中-此领域将在所有web站点上共享 此虚拟主机的应用程序, 除非它被领域覆盖 嵌套在从属对象中的元素
    元素

  • 元素内-此域仅用于此 web应用程序

元素通常在
/conf/server.xml
中声明。
元素可以根据的介绍性文本底部的列表在任何位置声明。例如,如果您打算在一个特定于webapp的
中定义此领域,并且希望在不影响服务器配置的情况下将其与webapp一起部署,那么最好的位置就是
webapp/META-INF/context.xml

希望这有帮助