Путать ов web.xml - PullRequest
       24

Путать ов web.xml

3 голосов
/ 14 марта 2011

Я понимаю, что <security-role><role-name>Admin</role-name></security-role> предназначено для отображения контейнера с помощью tomcat-users.xml (realm)

, но я путаюсь, не использовал ли я область, но я использую базу данных, как контейнер знает, какойполе в моей базе данных предназначено для имени роли или оно имеет соглашение о присвоении имен в имени поля базы данных, например "роль_имя", и контейнер будет знать его

Спасибо за все советы

1 Ответ

6 голосов
/ 14 марта 2011

Просто используйте область базы данных и настройте имена таблиц и столбцов в элементе <Realm> в файле конфигурации сервера. Для Tomcat это описано в Realm HOWTO . Вот выдержка из главы JDBCRealm :

Быстрый старт

Чтобы настроить Tomcat на использование JDBCRealm, вам необходимо выполнить следующие шаги:

  1. Если вы еще этого не сделали, создайте таблицы и столбцы в своем База данных, которая соответствует требования, описанные выше.
  2. Настройте имя пользователя и пароль базы данных для использования Tomcat, чтобы имеет по крайней мере доступ только для чтения к Таблицы описаны выше. (Tomcat будет никогда не пытайтесь писать в эти таблицы.)
  3. Поместите копию драйвера JDBC, который вы будете использовать, внутри $CATALINA_HOME/lib каталог. Заметка что распознаются только файлы JAR!
  4. Установите элемент <Realm>, как описано ниже, в вашем $CATALINA_BASE/conf/server.xml файл.
  5. Перезапустите Tomcat 6, если он уже запущен.

Атрибуты элемента Царства

Для настройки JDBCRealm вам потребуется создайте элемент <Realm> и вложите его в вашем $CATALINA_BASE/conf/server.xml файл, как описано выше. атрибуты для JDBCRealm являются определяется в конфигурации Realm документация.

Пример * +1034 * Пример сценария SQL для создания необходимые таблицы могут выглядеть что-то как это (адаптировать синтаксис как требуется для вашего конкретного базы данных): create table users ( user_name varchar(15) not null primary key, user_pass varchar(15) not null ); create table user_roles ( user_name varchar(15) not null, role_name varchar(15) not null, primary key(user_name, role_name) ); Пример Realm элементы включены (закомментировано) по умолчанию $CATALINA_BASE/conf/server.xml файл. Вот пример использования MySQL база данных называется "авторитет", настроен с помощью описанных таблиц выше, и доступ с именем пользователя "dbuser" и пароль "dbpass": <Realm className="org.apache.catalina.realm.JDBCRealm" driverName="org.gjt.mm.mysql.Driver" connectionURL="jdbc:mysql://localhost/authority?user=dbuser&amp;password=dbpass" userTable="users" userNameCol="user_name" userCredCol="user_pass" userRoleTable="user_roles" roleNameCol="role_name"/>

Довольно ясно, не так ли? Если у вас уже есть источник данных JDBC, настроенный в Tomcat (для объединения и включения соединений), тогда вы также можете использовать DataSourceRealm .

tomcat-users.xml, о котором вы говорите, кстати, называется UserDatabaseRealm .

...