CombinedRealm 是一种 Tomcat 的 Realm 实现,通过一个或多个子 Realm 进行用户验证。
通过 CombinedRealm,开发者能够将多个 Realm(同一或不同类型) 组合起来使用,从而用于验证多种数据源,而且万一当其中一个 Realm 失败,或其他一些操作需要多个 Realm 时,它还能提供回滚处理。
子 Realm 是通过在定义 CombineRealm 的 Realm 元素中内嵌 Realm 元素来实现的。验证操作会按照 Realm 元素的叠加顺序来逐个进行。对逐个 Realm 进行验证,从而就能充分证明用户的身份。
为了配置 CombinedRealm,需要创建一个 元素,并将其内嵌在 或 元素中的 $CATALINA_BASE/conf/server.xml 文件内。同样,你也可以将其内嵌到 context.xml 文件下的 节点。
下面是 server.xml 中的一段代码,综合使用了 UserDatabaseRealm 和 DataSourceRealm: