Die Benutzerdatenbank von Tomcat wird als Realm bezeichnet. Jeder Datensatz enthält die Attribute Username, Password und Role. Die Role ist mit einer Gruppe in der Benutzerverwaltung des Betriebssystems zu vergleichen.
Ein Realm kann auf in den Engine, Host oder Context Containern konfiguriert werden. Die Einstellungen in den globalen Containern werden von spezifischeren Einstellungen überschrieben.
Die Daten können je nach Realm Typ in verschiedenen Backends gespeichert werden. Die Tomcat Distribution liefert drei verschiedene Schnittstellen mit.
Ein Realm mit einem dateibasierten Backend. Die Daten werden in einer XML-Datei gehalten und beim Start von Tomcat geladen. Dieser Realm ist in der Standardinstallation von Tomcat für die internen Dienste vorkonfiguriert.
Der Database Realm bietet den Zugriff auf Authentisieurungsinformationen, die in einer relationalen Datenbank gespeichert sind.
Mit dem Directory Realm kann auf die Authentisierungsdaten in einem (LDAP-) Verzeichnis zugegriffen werden.
Die Passwörter können im Klartext oder verschlüsselt im Backend gespeichert werden. Die Abstraktion der Realms geht so weit, dass der für die "Verschlüsselung" genutzte Message Digest Algorithmus in der Konfiguration des Realms eingestellt werden kann.
In der Standardinstallation sind die Tomcat-Applikationen Admin und Manager so vorkonfiguriert, dass die Benutzer in einem Memory Realm gespeichert sind. Die XML-Datei zur Speicherung der Benutzer ist relativ einfach aufgebaut.
<?xml version='1.0' encoding='utf-8'?> <tomcat-users> <role rolename="tomcat"/> <role rolename="role1"/> <role rolename="manager"/> <user name="username" password="secret" roles="tomcat,manager" /> </tomcat-users>
Innerhalb des Tags tomcat-users
werden die Rollen mit
einem role
Tag definiert. Jeder Benutzer wird mit einem
user Tag definiert. Dieses Tag hat die Attribute
name, password und roles. Die Roles, denen
der User zugeordnet ist, werden als kommaseparierte Liste im roles Tag
festgelegt.