UserDatabaseRealm 是 Tomcat Realm 接口的一种实现,使用 JNDI 资源来存储用户信息。默认,JNDI 资源是通过一个 XML 文件来提供支持的。它并不是针对大规模生产环境用途而设计的。在启动时,UserDatabaseRealm 会从一个 XML 文档中加载所有用户以及他们角色的信息(该 XML 文档默认位于 $CATALINA_BASE/conf/tomcat-users.xml。)用户、密码以及相应角色通常可利用 JMX 进行动态编辑,更改结果会加以保存并立刻反映在 XML 文档中。
跟之前讨论的一样,为了配置 UserDatabaseRealm,需要在 $CATALINA_BASE/conf/server.xml 中创建 元素。关于 UserDatabaseRealm 中的属性定义可参看 Realm 配置文档。
用户文件使用的格式与 MemoryRealm所使用的相同。
默认的 Tomcat 安装已经配置了内嵌在 元素中的 UserDatabaseRealm,因而可以将其应用于所有的虚拟主机和 Web 应用中。默认的 conf/tomcat-users.xml 文件内容为:
<tomcat-users>
<user username="tomcat" password="tomcat" roles="tomcat" />
<user username="role1" password="tomcat" roles="role1" />
<user username="both" password="tomcat" roles="tomcat,role1" /></tomcat-users>
使用 UserDatabaseRealm 需要遵循以下规则: