Как настроить область JDBC для безопасности, управляемой контейнером, с помощью tomcat? - PullRequest
3 голосов
/ 03 марта 2010

Я хочу настроить tomcat / мое веб-приложение для использования области JDBC для безопасности, управляемой контейнером. Я указал область внутри файла server.xml tomcat следующим образом:

<Realm className="org.apache.catalina.realm.JDBCRealm" driverName="net.sourceforge.jtds.jdbc.Driver" connectionURL="jdbc:jtds:sqlserver://hostname:1433/intranet;user=sa;password=sa04jT14;instance=instanceName" userTable="users" userNameCol="username" userCredCol="password" userRoleTable="roles" roleNameCol="role" />

Я создал базу данных и таблицы. Я создал страницу входа и добавил следующий код в web.xml:

<login-config>
    <auth-method>FORM</auth-method>
    <form-login-config>
        <form-login-page>/login.xhtml</form-login-page>
        <form-error-page>/login.xhtml</form-error-page>
    </form-login-config>
</login-config>

Но как Tomcat узнает, какую область он должен использовать для аутентификации? Должен ли я добавить элемент к элементу? Но какое тогда должно быть значение?

Заранее спасибо.

1 Ответ

5 голосов
/ 04 марта 2010

Это нормально, так. Это зависит от расположения объявления <Realm>, которое Tomcat найдет и использует для вашего веб-приложения. Это также явно упомянуто в Конфигурации области Tomcat HOWTO :

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

  • Внутри <Engine> элемента - Это Царство будет общим для ВСЕХ веб-приложения на ВСЕХ виртуальных хостах, Если это не отменено Царством элемент, вложенный в подчиненного <Host> или <Context> элемент.

  • Внутри <Host> элемента - Это Царство будет доступно всем ВСЕМ интернетам приложения для ЭТОГО виртуального хоста, Если это не отменено Царством элемент, вложенный в подчиненного <Context> элемент.

  • Внутри <Context> элемента - Это Царство будет использоваться ТОЛЬКО ДЛЯ ЭТОГО веб-приложение.

Элементы <Engine> и <Host> обычно объявляются в /conf/server.xml. Элемент <Context> может быть объявлен в любом месте согласно списку внизу вводного текста этой документации . Например, если вы намереваетесь определить эту область в специфическом для веб-приложения <Context>, который вы хотите развернуть вместе с веб-приложением, не вмешиваясь в конфигурацию сервера, тогда лучшим вариантом будет Webapp/META-INF/context.xml.

Надеюсь, это поможет.

...