UserDatabaseRealm 是 Tomcat Realm 接口的一种实现,使用 JNDI 资源来存储用户信息。默认,JNDI 资源是通过一个 XML 文件来提供支持的。它并不是针对大规模生产环境用途而设计的。在启动时,UserDatabaseRealm 会从一个 XML 文档中加载所有用户以及他们角色的信息(该 XML 文档默认位于 $CATALINA_BASE/conf/tomcat-users.xml
。)用户、密码以及相应角色通常可利用 JMX 进行动态编辑,更改结果会加以保存并立刻反映在 XML 文档中。
为了配置 UserDatabaseRealm,需要在 $CATALINA_BASE/conf/server.xml
中创建 <Realm>
元素。
用户文件使用的格式与 MemoryRealm所使用的相同。
默认的 Tomcat 安装已经配置了内嵌在 <Engine>
元素中的 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 需要遵循以下规则:
Realm
的 authenticate()
方法。