MemoryRealm

Tomcat教程

全部教程

×

MemoryRealm

MemoryRealm 是一种对 Tomcat 的 Realm 接口的简单演示实现,并不是针对生产环境而设计的。在启动时,MemoryRealm 会从 XML 文档中加载所有的用户信息及其相关的角色信息(默认该文档位于 $CATALINA_BASE/conf/tomcat-users.xml)。只有重启 Tomcat 才能使对该文件作出的修改生效。

Realm 元素属性

跟之前讨论的一样,为了配置 MemoryRealm,需要在 $CATALINA_BASE/conf/server.xml 中创建  元素。关于 MemoryRealm 中的属性定义可参看 Realm 配置文档

用户文件格式

用户文件包含下列属性。默认情况下,conf/tomcat-users.xml 必须是一个 XML 文件,并且带有一个根元素:。每一个有效用户都有一个内嵌在根元素中的  元素。

  • name 用户登录所用的用户名。
  • password 用户登录所用的密码。如果  元素中没有设置 digest 属性,则采用明文密码,否则就设置为摘要式密码,如之前讨论的那样。
  • roles 以逗号分隔的用户角色名列表。

特别注意事项

使用 MemoryRealm 需要注意以下规则:

  • Tomcat 首次启动时,它会从用户文件中加载所有已定义的用户及其相关信息。假如对该用户文件中的数据进行修改,则只有重启 Tomcat 后才能生效。
  • 当用户首次访问一个受保护资源时,Tomcat 会调用这一 Realm 的 authenticate() 方法。
  • 一旦用户认证成功,在登录后,该用户(及其相应角色)就将缓存在 Tomcat 中。(对于以表单形式的认证,这意味着直到会话超时或者无效才会过期;对于基本形式的验证,意味着直到用户关闭浏览器才会过期。)在会话序列化期间不会保存或重置缓存的用户。对已认证用户的数据库信息进行的任何改动都不会生效,直到该用户下次登录。
  • 应用负责管理users(用户表)和user roles(用户角色表)中的信息。Tomcat 没有提供任何内置功能来维护这两种表。