Хотите настроить общий царство Tomcat с различными источниками данных - PullRequest
0 голосов
/ 25 октября 2011

У меня есть два набора веб-приложений, которые все работают на одном сервере Tomcat 5.5.

У меня есть одно общее Царство, определенное в server.xml:

<!-- Define the top level container in our container hierarchy -->
<Engine defaultHost="localhost" name="Catalina">

    <Valve className="org.apache.catalina.authenticator.SingleSignOn" />

    <Realm
        className="com.key.portal.common.realm.PortalDataSourceRealm"
        debug="0"
        dataSourceName="jdbc/usa"
        userTable="user_info"
        userNameCol="username"
        userIdCol="username"
        userCredCol="password"
        userInactiveCol="inactive"
        userRoleTable="user_role"
        roleNameCol="role" />

Мои приложения "usa" хотят совместно использовать SingleSignOn с этим источником данных, а мои приложения "canada" используют singlesignon, но с другим источником данных. (например, jdbc/canada)

Можно ли разделить этот контейнер Engine верхнего уровня на два подразделения или настроить приложения для переопределения dataSourceName? Документы Tomcat говорят, что у меня может быть определен только один раздел «Engine».

Но оба набора веб-приложений хотят использовать разные источники данных для подключения к нему.

1 Ответ

0 голосов
/ 25 октября 2011

Вы можете поместить Realm внутри Host (или даже внутри Context) элемента.Если ваши США и Канада приложения работают в разных Host с, это может быть решением.

Если они находятся внутри одного Host, вы должны поставитьтег Realm внутри каждого Context приложений usa и пусть приложения canada используют область по умолчанию (которая вложена в тег Engine) или наоборот.

Из документации Конфигурация области, как, Конфигурирование области :

Элемент может быть вложен в любой из следующих элементов-контейнеров.Расположение элемента Realm напрямую влияет на «область» этой области (т. Е. Какие веб-приложения будут использовать одну и ту же информацию аутентификации):

[...]

  • Внутри элемента - Эта Область будет совместно использоваться ВСЕМИ веб-приложениями для ЭТОГО виртуального хоста, ЕСЛИ ЭТО НЕ перезаписывается элементом Область, вложенным в подчиненный элемент.
  • Внутри элемента - Эта Область будет использоваться ТОЛЬКО дляЭТО веб-приложение.

Вот аналогичный вопрос с примером в ответах: как я могу ограничить пользователям доступ ТОЛЬКО к их собственному менеджеру?

...