Tomcat办事器配置参考
Realm组件
概述
Realm元素是一个包罗用户名,密码和用户脚色的数据库。脚色与Unix的group类似。Realm的差别实现允许将Catalina集成到认证信息已经被创建和维护的情况中,然后利用这些信息来实现Container Managed Security,如Servlet Specification中所述。
你可以在任何Catalina容器(Engine,Host大概Context)中嵌套Realm元素。另外,Engine大概Host的Realm会自动被低条理的容器继续,除非被明确笼罩。
有关web应用中container managed security的更多信息,参考FIXME-应用开发者这一部门中“Container Managed Security指南”的连接;有关配置和使用尺度Realm实现的更多信息,参考FIXME-治理者这一部门中的"Realm Configuration HOW-TO"连接。
以下的描述使用变量$CATALINA_HOME来指Tomcat 5安装的目录。大多数的相对路径都是以该目录为基准。但是,通过设置CATALINA_BASE目录,可以运行多个Tomcat 5实例,这时你应该使用$CATALINA_BASE来作为目录基准,而不是使用$CATALINA_HOME。
属性
大众属性
所有Realm的实现支持如下属性:
属性
描述
className
实现的Java类名。这个类必须实现org.apache.catalina.Realm接口。
尺度实现
和大多数Catalina组件不一样的是,Realm有几个尺度的实现。所以,必须使用className属性来选择你希望使用的实现。
JDBC Database Realm (org.apache.catalina.realm.JDBCRealm)
JDBC Database Realm将Catalina连接到一个干系数据库,通过正确的JDBC驱动访问,用来查询用户名,密码和他们相关的脚色。由于查询是在每次须要的时候完成的,因此数据库的改变会马上反应到用来认证新登录的信息中。
除了用来获取必须信息的数据库表名和列名以外,另有许多附加的属性用来配置到数据库的连接:
属性
描述
connectionName
创建JDBC连接时使用的数据库用户名
connectionPassword
创建JDBC连接时使用的数据库密码
connectionURL
创建数据库连接时通报给JDBC驱动的连接URL
digest
用来对数据库中的用户密码编码的“消息摘要”算法的名称。如果没有指定,密码以明文方法存储。
driverName
连接到认证数据库的JDBC驱动的完整的Java类名
roleNameCol
“用户脚色“表中的列名,包罗了指定给对应用户的脚色名称。
userCredCol
“用户”表中的列名,包罗用户的可信数据(好比,密码)。如果设置了digest属性,则假定密码已经用了指定的算法进行编码,不然,假定密码是明文密码。
userNameCol
“用户”表和“用户脚色”表中的列名,包罗用户的用户名
userRoleTable
“用户脚色”表名,必须包罗userNameCol和roleNameCol指定的列。
userTable
用户表,必须包罗userNameCol和userCredCol属性指定的列
有关使用JDBC Database Realm组件来设置container managed security的更多信息,参考FIXME - Nested pointer into HOW-TO
DataSource Database Realm (org.apache.catalina.realm.DataSourceRealm)
DataSource Database Realm 将Catalina连接到一个干系数据库,通过一个名为JDBC Datasource的JNDI访问,查询用户名,密码以及他们对应的脚色。由于查询在每次需要的时候进行,因此数据库的变革会马上反应到用来认证新的登录的信息上。
JDBC Realm使用单个数据库连接。这要求基于realm的认证之间同步,好比,同一时刻只允许一个认证。这对需要大量使用认证的应用步伐来说是一个瓶颈。
DataSource Database Realm支持并发的基于Realm的认证,允许JDBC DataSource处置惩罚优化问题,好比数据库连接池。
有许多选项可以配置JNDI JDBC Datasource的名字,同时包罗用来获取须要信息的数据库表名和列名。
属性
描述
dataSourceName
Realm的JNDI JDBC DataSource的名字