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: