corner imagecorner image
IDEPlatformPluginsDocs & SupportCommunityPartners

Обеспечение безопасности веб-приложения в среде IDE NetBeans

Данный документ освещает основы добавления функций безопасности к веб-приложению, развернутому на сервере Oracle GlassFish Open Source Edition, Oracle WebLogic или Apache Tomcat.

В данном документе показано, как настроить проверку подлинности на компьютере с помощью простого окна входа и формы входа на веб-странице. В данном документе дан обзор действий для создания пользователей на сервере Tomcat и сервере GlassFish. После создания пользователей мы создадим роли безопасности, установив свойства безопасности в дескрипторе развертывания. Данный документ также показывает, как можно использовать проверку подлинности JDBC для обеспечения безопасности приложения при развертывании на сервере GlassFish.

Ожидаемая продолжительность: 40 минут

Содержание

Содержимое этой страницы относится к среде IDE NetBeans 7.0-7.1

Для работы с этим учебным курсом требуется следующее программное обеспечение и ресурсы.

Программное обеспечение или ресурс Требуемая версия
Среда IDE NetBeans Версия Java EE
Комплект для разработчика на языке Java (JDK) Версия 6 или версия 7
Платформа Java EE Java EE 5 или 6
База данных TRAVEL Не требуется
Веб-сервер или сервер приложений, совместимый с Java EE Веб-сервер Tomcat 7.x, Oracle WebLogic 11g или
GlassFish Server Open Source Edition 3.1

Установка и настройка рабочей среды

Установите и запустите среду IDE NetBeans. С данным учебным курсом можно работать, используя имеющийся в комплекте среды сервер Tomcat или сервер GlassFish.

Убедитесь, что сервер установлен и экземпляр сервера зарегистрирован в среде IDE. Для регистрации установленного экземпляра сервера можно использовать диспетчер серверов. (Выберите Tools ("Сервис") > Servers ("Серверы") > Add Server ("Добавить сервер"). Выберите "GlassFish Server <номер версии>" или "Tomcat <номер версии> и нажмите кнопку Next ("Далее"). Нажмите кнопку Browse ("Обзор") и найдите каталог установки сервера приложений. Нажмите кнопку Finish ("Готово").)

Создание веб-приложения

Мы начнем это упражнение с создания проекта веб-приложения и структуры каталогов. Затем мы создадим несколько простых файлов html в каждом из безопасных каталогов. Созданное веб-приложение использует простую проверку подлинности при входе, чтобы предотвратить несанкционированный доступ к защищенным каталогам. Если для проверки подлинности нужно использовать форму входа, то можно добавить страницу jsp с формой.

Создание безопасных каталогов

  1. Выберите File ("Файл") > New Project ("Создать проект") (Ctrl-Shift-N), выберите Java Web Application ("Веб-приложение Java") из категории Web ("Сеть") и нажмите кнопку Next ("Далее").
  2. Назовите проект WebApplicationSecurity. Примите параметры по умолчанию.
  3. Установите флажок "Использовать отдельную папку для хранения библиотек" и укажите местоположение папки библиотек (необязательно). Дополнительные сведения об этом параметре приведены в разделе Совместное использование библиотек проекта.
  4. Нажмите кнопку Next ("Далее").
  5. Выберите сервер, на котором требуется выполнить развертывание приложения. В списке представлены только те серверы, которые зарегистрированы в среде IDE. Нажмите кнопку Next ("Далее").
  6. В добавлении платформы нет необходимости, так что нажмите кнопку Finish ("Готово").
  7. Если создано было приложение EE 6, перейдите к окну Projects ("Проекты") среды IDE, щелкните правой кнопкой мыши узел проекта и выберите New ("Создать") > Other ("Другое") > Web ("Сеть") > Standard Deployment Descriptor (web.xml) ("Стандартный дескриптор развертывания (web.xml)"). Пройдите по этапам работы мастера, принимая параметры по умолчанию.

    Примечание. В данном учебном курсе показано, как настроить безопасность в дескрипторе развертывания, но приложения EE 6 по умолчанию используют вместо него аннотации.

  8. При использовании сервера GlassFish или WebLogic и среды IDE NetBeans версии 7.0.1 или последующих необходимо создать дескриптор для конкретного сервера. Щелкните правой кнопкой мыши узел проекта и выберите New ("Создать") > Other ("Другое") > GlassFish > GlassFish Descriptor ("Дескриптор GlassFish"), либо New ("Создать") > Other ("Другое") > WebLogic > WebLogic Descriptor ("Дескриптор WebLogic"). Откроется диалоговое окно создание дескриптора для конкретного сервера. Примите настройки по умолчанию и нажмите кнопку "Готово". Дескриптор для конкретного сервера, именуемый glassfish-web.xml либо weblogic.xml, появится в папке Configuration Files ("Файлы настройки") проекта.
  9. В окне Projects ("Проекты") среды IDE щелкните правой кнопкой мыши Web Pages ("Веб-страницы") и выберите New ("Создать") > Other ("Другое").
  10. В мастере создания новых файлов выберите Other ("Другое") в качестве категории и Folder ("Папка") в качестве типа файла. Нажмите кнопку Next ("Далее").
  11. В мастере создания новых папок назовите папку secureAdmin и нажмите кнопку Finish ("Готово").

    Папка secureAdmin появится в окне Projects ("Проекты"), в папке Web Pages ("Веб-страницы").
  12. Повторите 3 предыдущих действия для создания еще одной папки, именуемой secureUser.
  13. Создайте новый файл html в папке secureUser, щелкнув правой кнопкой мыши папку secureUser в окне проектов и выбрав New ("Создать") > HTML.
  14. Назовите новый файл pageU и нажмите кнопку Finish ("Готово").

    При нажатии этой кнопки файл pageU.html откроется в редакторе файлов исходного кода.

  15. В редакторе файлов исходного кода замените существующий код в файле pageU.html следующим кодом.
    <html>
       <head>
          <title>User secure area</title>
       </head>
       <body>
          <h1>User Secure Area</h1>
       </body>
    </html>
  16. Щелкните правой кнопкой мыши папку secureAdmin и создайте новый файлhtml под названием pageA.
  17. В редакторе файлов исходного кода замените существующий код в pageA.html следующим кодом.
    <html>
       <head>
          <title>Admin secure area</title>
       </head>
       <body>
          <h1>Admin secure area</h1>
       </body>
    </html>

Создание страницы индекса JSP

Теперь мы создадим страницу индекса JSP, содержащую ссылки на безопасные области. Если пользователь щелкнет такую ссылку, у него будут запрошены имя пользователя и пароль. В случае использования простого входа будет выведено окно входа по умолчанию используемого обозревателя. В случае использования страницы формы входа пользователь вводит имя пользователя и пароль в форму.

  1. Откройте index.jsp в редакторе файлов исходного кода и добавьте следующие ссылки на pageA.html и pageU.html:
    <p>Запросить безопасную страницу администратора <a href="secureAdmin/pageA.html">здесь.</a></p>
    <p>Запросить безопасную страницу пользователя<a href="secureUser/pageU.html" >здесь.</a></p>
  2. Сохраните изменения.

Создание формы входа (обязательно для сервера Tomcat, не обязательно для сервера GlassFish или WebLogic)

Если вместо простого входа желательно использовать форму входа, то можно создать страницу jsp, содержащую форму. После этого можно указать страницы входа и ошибки при входе, в ходе настройки метода входа.

Важно! Для пользователей Tomcat создание формы входа обязательно.

  1. В окне Projects ("Проекты") щелкните правой кнопкой мыши папку Web Pages ("Веб-страницы") и выберите New ("Создать") > JSP.
  2. Назовите файл login, оставьте значения по умолчанию для остальных полей и нажмите кнопку Finish ("Готово").
  3. В редакторе файлов исходного кода вставьте следующий код между тегами <body> login.jsp.
    <form action="j_security_check" method="POST">
       Username:<input type="text" name="j_username"><br>
       Password:<input type="password" name="j_password">
       <input type="submit" value="Login">
    </form>
  4. Создайте новый файл html под названием loginError.html в папке Web Pages ("Веб-страницы"). Это простая страница ошибки.
  5. В редакторе файлов исходного кода замените существующий код в loginError.html следующим кодом.
    <html>
        <head>
            <title>Тест входа: ошибка при входе</title>
        </head>
        <body>
            <h1>Ошибка при входе</h1>
            <br/>
        </body>
    </html>

Создание пользователей на целевом сервере

Чтобы в веб-приложениях можно было использовать безопасность на основе проверки подлинности с помощью имени пользователя и пароля (простой вход или вход на основе формы), для целевого пользователя необходимо определить пользователей и соответствующие роли для них. Для входа в систему на сервере на этом сервере должна существовать учетная запись пользователя.

Определения пользователей и ролей варьируются в зависимости от указанного целевого сервера. В данном руководстве для тестирования параметров безопасности используются определения admin и user. Необходимо подтвердить, что эти пользователи существуют на соответствующих серверах и что им назначены соответствующие роли.

Определение пользователей на сервере GlassFish

В этом сценарии нам нужно использовать консоль администрирования сервера GlassFish для создания двух новых пользователей, user и admin. У пользователя user будет ограниченный доступ к приложению, а у пользователя admin – права администратора.

  1. Откройте консоль администрирования, зайдя в окно Services ("Службы") IDE и щелкнув правой кнопкой мыши Servers ("Серверы") > GlassFish ("Сервер GlassFish") > View Admin Console ("Просмотр консоли администрирования"). В окне обозревателя откроется страница входа в систему сервера GlassFish. Для доступа к консоли администрирования необходимо войти, используя имя и пароль администратора.

    Примечание. Перед доступом к консоли администратора необходимо запустить сервер приложений. Для запуска сервера щелкните правой кнопкой мыши узел сервера GlassFish и нажмите кнопку Start ("Пуск").

  2. В консоли администрирования перейдите к Configurations ("Настройки") > server-config > Security ("Безопасность") > Realms ("Области") > File ("Файл"). Откроется панель редактирования области.
    Область файла для server-сonfig в консоли администрирования GlassFish 3.1
  3. Нажмите кнопку Manage Users ("Управлять пользователями") наверху панели редактирования области. Откроется панель File Users ("Пользователи файла").
    Панель File Users ("Пользователи файла") с выделенной кнопкой создания пользователя
  4. Нажмите кнопку New ("Создать"). Откроется панель New File Realm User ("Новый пользователь области файла"). Введите user в качестве идентификатора пользователя и userpw01 в качестве пароля. Нажмите кнопку "ОК".
  5. Выполните приведенные выше действия, чтобы создать пользователя admin с паролем adminpw1 в области file.

Определение ролей и пользователей на сервере Tomcat

Для сервера Tomcat 7 мы создадим пользователя с ролью manager-script и пароль для этого пользователя при регистрации сервера в среде IDE NetBeans.

Базовые пользователи и роли для сервера Tomcat содержатся в tomcat-users.xml. Файл tomcat-users.xml можно найти в каталоге <CATALINA_BASE>\conf.

Примечание. Местоположение CATALINA_BASE можно найти, щелкнув правой кнопкой мыши узел сервера Tomcat в окне Services ("Службы") и выбрав Properties ("Свойства"). Откроется окно свойств сервера. CATALINA_BASE расположен во вкладке Connection ("Подключение").

Окно Services ("Службы") показывает контекстное меню для свойств Tomcat 7.0 Диалог свойств сервера Tomcat 7, показывающий местоположение CATALINA_BASE

Примечание. Если использовать Tomcat 6, поставляемый с ранними версиями среды IDE, то у этого сервера определен пользователь ide с паролем и ролями администратора и диспетчера. Пароль для пользователя ide создается при установке Tomcat 6. Пароль для пользователя ide можно изменить, либо скопировать его в tomcat-users.xml.

Для добавления пользователей в Tomcat выполните следующие действия.

  1. Откройте в редакторе <CATALINA_BASE>/conf/tomcat-users.xml.
  2. Добавьте роль под названием AdminRole.
    <role rolename="AdminRole"/>
  3. Добавьте роль под названием UserRole.
    <role rolename="UserRole"/>
  4. Добавьте пользователя с именем admin, паролем adminpw1 и ролью AdminRole.
    <user username="admin" password="adminpw1" role="AdminRole"/>
  5. Добавьте пользователя с именем user, паролем userpw01 и ролью UserRole.
    <user username="user" password="userpw01" role="UserRole"/>

Файл tomcat-users.xml теперь выглядит следующим образом:

<tomcat-users>
<!--
  <role rolename="tomcat"/>
  <role rolename="role1"/>
  <user username="tomcat" password="tomcat" roles="tomcat"/>
  <user username="both" password="tomcat" roles="tomcat,role1"/>
  <user username="role1" password="tomcat" roles="role1"/>
-->
...
<role rolename="AdminRole"/>
<role rolename="UserRole"/>
<user username="user" password="userpw01" roles="user"/>
<user username="admin" password="adminpw1" roles="AdminRole"/>
[User with manager-script role, defined when Tomcat 7 was registered with the IDE]
...
</tomcat-users>

Определение ролей и групп на сервере WebLogic

В этой ситуации нам нужно использовать консоль администрирования сервера WebLogic для создания двух новых пользователей, user и admin. Добавьте этих пользователей к группам userGroup и adminGroup соответственно. Позже можно будет назначить роли безопасности для этих групп. У userGroup будет ограниченный доступ к приложению, а у adminGroup – права администратора.

Общие инструкции по добавлению пользователей и групп к серверу Web Logic можно найти в Интерактивной справке по консоли администрирования WebLogic.

Чтобы добавить пользователей и группы "user" и "admin" к WebLogic, выполните следующие действия:

  1. Откройте консоль администрирования, зайдя в окно Services ("Службы") IDE и щелкнув правой кнопкой мыши Servers ("Серверы") > WebLogic ("Сервер WebLogic") > View Admin Console ("Просмотр консоли администрирования"). В окне обозревателя откроется страница входа в систему сервера GlassFish. Для доступа к консоли администрирования необходимо войти, используя имя и пароль администратора.

    Примечание. Перед доступом к консоли администратора необходимо запустить сервер приложений. Для запуска сервера щелкните правой кнопкой мыши узел сервера WebLogic и нажмите кнопку Start ("Пуск").

  2. В левой панели выберите Security Realms ("Области безопасности"). Откроется страница сводки областей безопасности.
  3. На этой странице выберите имя области безопасности (имя по умолчанию – "myrealm"). Откроется страница Settings for Realm Name ("Настройки имени области").
  4. На этой странице выберите Users and Groups ("Пользователи и группы") > Users ("Пользователи"). Появится таблица пользователей.
  5. В таблице пользователей щелкните New ("Создать"). Откроется страница создания нового пользователя.
  6. Введите там имя "user" и пароль "userpw01". Если хочется, введите описание пользователя. Примите поставщика проверки подлинности по умолчанию.
    Консоль администрирования WebLogic с диалогом добавления нового пользователя
  7. Нажмите кнопку "ОК". Мы вернемся к таблице пользователей.
  8. Щелкните New ("Создать") и добавьте пользователя с именем"admin" и паролем "admin1".
  9. Откройте вкладку Groups ("Группы"). Появится таблица групп.
  10. Нажмите кнопку New ("Создать"). Откроется окно создания новой группы.
  11. Назовите группу userGroup. Примите поставщика по умолчанию и нажмите кнопку "OK". Это вернет нас к таблице групп.
  12. Щелкните New ("Создать") и создайте группу adminGroup.
  13. Откройте вкладку Users ("Пользователи") для следующей процедуры.

Теперь добавьте пользователя admin к adminGroup и пользователя user к userGroup.

Для добавления пользователей к группам:

  1. На вкладке Users ("Пользователи") щелкните пользователя admin. Откроется страница параметров пользователя.
  2. На этой странице откройте вкладку Groups ("Группы").
  3. В таблице Parent Groups: Available: ("Родительские группы: Доступные") выберите adminGroup.
  4. Щелкните стрелку вправо >. adminGroup появится в таблице Parent Groups: Chosen: ("Родительские группы: Выбранные:").
    Консоль администрирования WebLogic с настройкой пользователя admin
  5. Нажмите кнопку "Сохранить".
  6. Вернитесь на вкладку Users ("Пользователи").
  7. Щелкните пользователя user и добавьте его к userGroup.

Настройка метода входа

При настройке метода входа для приложения для проверки подлинности при простом входе можно использовать окно входа, предоставляемое обозревателем. Либо можно создать веб-страницу с формой входа. Оба типа проверки подлинности при входе основаны на использовании имени пользователя/пароля.

Для настройки входа следует создать ограничения безопасности и назначить роли этим ограничениям безопасности. Ограничения безопасности определяют набор файлов. При назначении роли ограничению безопасности пользователи с этой ролью получат доступ к набору файлов, определенных ограничением. Для примера, в этом учебном курсе мы назначаем AdminRole ограничению AdminConstraint, а ограничению UserConstraint – и UserRole и AdminRole. Это означает, что у пользователей с AdminRole будет доступ к файлам и для администраторов и для простых пользователей, а у пользователей с UserRole – только к файлам для пользователей.

Примечание. Предоставление отдельной роли администратора доступа к файлам пользователей не является стандартным способом использования. Как вариант, можно назначить UserConstraint только UserRole, а на стороне сервера предоставить AdminRole конкретным пользователям, которые также являются администраторы. Лучший способ предоставления доступа зависит от конкретной ситуации.

Настройка метода входа для приложения выполняется посредством настройки web.xml. Файл web.xml может быть найден в каталоге Configuration Files ("Файлы конфигурации") окна Projects ("Проекты").

Простой вход

При использовании простого входа окно входа предоставляется обозревателем. Для доступа к защищенному содержимому необходимы правильные имя пользователя и пароль.

Ниже показано, как настроить простой вход для серверов GlassFish и WebLogic. Пользователям Tomcat необходимо использовать форму входа.

Для настройки простого входа выполните следующие действия.

  1. В окне Projects ("Проекты") разверните узел Configuration Files ("Файлы настройки") проекта и дважды щелкните web.xml. В визуальном редакторе откроется файл web.xml.
  2. Щелкните Security ("Безопасность") на панели инструментов, чтобы открыть файл в представлении безопасности.
  3. Разверните узел Login Configuration ("Конфигурация входа") и установите настройку входа на Basic ("Простая").

    Примечание. Если нужно использовать форму, выберите вместо этого Form ("Форма") и укажите страницы как входа, так и ошибки входа.

  4. Введите имя области, в зависимости от используемого сервера.
    • GlassFish: введите file в поле Realm Name ("Имя области"). Это имя области по умолчанию при создании пользователей на сервере GlassFish.
    • Tomcat: не вводите имя области.
    • WebLogic: введите имя своей области. Областью по умолчанию является myrealm.
    Добавление базового входа в систему и ролей к web.xml
  5. Разверните узел Security Roles ("Роли безопасности") и нажмите кнопку Add ("Добавить") для добавления имени роли.
  6. Добавьте следующие роли безопасности:
    • AdminRole. Пользователи, добавленные к этой роли, получат доступ к каталогу secureAdmin на сервере.
    • UserRole. Пользователи, добавленные к этой роли, получат доступ к каталогу secureUser на сервере.

    Внимание! Имена ролей GlassFish должны начинаться с прописной буквы.

  7. Создайте и настройте ограничение безопасности под названием AdminConstraint, выполнив следующее:
    1. Щелкните Add Security Constraint ("Добавить ограничение безопасности"). Появится раздел для нового ограничения безопасности.
    2. Введите AdminConstraint в качестве Display Name ("Отображаемое имя") нового ограничения безопасности.
      Добавление AdminConstraint
    3. Нажмите кнопку "Добавить". Откроется диалоговое окно Add Web Resource ("Добавление веб-ресурса").
    4. В этом диалоговом окне установите Resource Name ("Имя ресурса") на Admin и шаблон URL на /secureAdmin/*, после чего нажмите кнопку "OK". Диалоговое окно закроется.

      Примечание. Использование звездочки (*) предоставляет пользователю доступ ко всем файлам в указанной папке.

      Диалоговое окно добавления веб-ресурса
    5. Выберите Enable Authentication Constraint ("Включить ограничение проверки подлинности") и нажмите кнопку Edit ("Изменить"). Откроется диалоговое окно изменения имен роли.
    6. В этом окне выберите AdminRole на левой панели, нажмите кнопку Add ("Добавить"), затем нажмите кнопку OK.

      После завершения этих действий результат должен быть подобен этому рисунку:

      Ограничения для администратора и пользователя
  8. Создайте и настройте ограничение безопасности под названием UserConstraint, выполнив следующее:
    1. Щелкните Add Security Constraint ("Добавить ограничение безопасности"), чтобы добавить новое ограничение безопасности.
    2. Введите UserConstraint в качестве Display Name ("Отображаемое имя") нового ограничения безопасности.
    3. Нажмите кнопку Add ("Добавить") для добавления Web Resource Collection ("Коллекция веб-ресурсов").
    4. В диалоговом окне добавления ресурсов установите Resource Name ("Имя ресурса") на User и шаблон URL на /secureUser/*, после чего нажмите кнопку "OK".
    5. Выберите Enable Authentication Constraint ("Включить ограничение проверки подлинности") и нажмите кнопку Edit ("Изменить"), чтобы изменить поле Role Name ("Имя роли").
    6. В диалоговом окне изменения имени роли выберите AdminRole и UserRole на левой панели, нажмите кнопку Add ("Добавить"), затем нажмите кнопку OK.
    Примечание. Также можно установить время ожидания сеанса в web.xml. Для настройки времени ожидания щелкните вкладку General ("Общие") визуального редактора и укажите, сколько должен продолжаться сеанс. Продолжительность по умолчанию – 30 минут.

    Вход с помощью формы

    Использование формы для входа позволяет настраивать содержимое страниц входа и ошибки входа. Этапы настройки входа с помощью формы идентичны настройке простого входа, за исключением того, что надо указать созданные страницы входа и ошибки.

    Настройка формы входа показана ниже:

    1. В окне Projects ("Проекты") дважды щелкните файл web.xml, расположенный в каталоге Веб-страницы/WEB-INF, чтобы открыть файл в визуальном редакторе.
    2. Щелкните Security ("Безопасность") на панели инструментов, чтобы открыть файл на панели безопасности и развернуть узел Login Configuration ("Настройка входа").
    3. Установите настройку входа на Form ("Форма").
    4. Установите Form Login Page ("Страница входа с помощью формы"), щелкнув Browse ("Просмотр") и найдя login.jsp.
    5. Установите Form Login Page ("Страница ошибки входа с помощью формы"), щелкнув Browse ("Просмотр") и найдя loginError.html.

      Настройка форм входа в web.xml
    6. Введите имя области, в зависимости от используемого сервера.
      • GlassFish: введите file в поле Realm Name ("Имя области"). Это имя области по умолчанию при создании пользователей на сервере GlassFish.
      • Tomcat: не вводите имя области.
      • WebLogic: введите имя своей области. Областью по умолчанию является myrealm.
    7. Разверните узел Security Roles ("Роли безопасности") и нажмите кнопку Add ("Добавить") для добавления имени роли.
    8. Добавьте следующие роли безопасности:
      Роль сервера Описание
      AdminRole Пользователи, добавленные к этой роли, получат доступ к каталогу secureAdmin на сервере.
      UserRole Пользователи, добавленные к этой роли, получат доступ к каталогу secureUser на сервере.
    9. Создайте и настройте ограничение безопасности под названием AdminConstraint, выполнив следующее:
      1. Щелкните Add Security Constraint ("Добавить ограничение безопасности"), чтобы добавить новое ограничение безопасности.
      2. Введите AdminConstraint в качестве Display Name ("Отображаемое имя") нового ограничения безопасности.
      3. Нажмите кнопку Add ("Добавить") для добавления Web Resource Collection ("Коллекция веб-ресурсов").
      4. В этом диалоговом окне установите Resource Name ("Имя ресурса") на Admin и шаблон URL на /secureAdmin/*, после чего нажмите кнопку "OK".

        Примечание. Использование звездочки (*) предоставляет пользователю доступ ко всем файлам в указанной папке.

        Диалоговое окно добавления веб-ресурса
      5. Выберите Enable Authentication Constraint ("Включить ограничение проверки подлинности") и нажмите кнопку Edit ("Изменить"). Откроется диалоговое окно изменения имен роли.
      6. В этом окне выберите AdminRole на левой панели, нажмите кнопку Add ("Добавить"), затем нажмите кнопку OK.

        После завершения этих действий результат должен быть подобен этому рисунку:

        Ограничения для администратора и пользователя
    10. Создайте и настройте ограничение безопасности под названием UserConstraint, выполнив следующее:
      1. Щелкните Add Security Constraint ("Добавить ограничение безопасности"), чтобы добавить новое ограничение безопасности.
      2. Введите UserConstraint в качестве Display Name ("Отображаемое имя") нового ограничения безопасности.
      3. Нажмите кнопку Add ("Добавить") для добавления Web Resource Collection ("Коллекция веб-ресурсов").
      4. В диалоговом окне добавления ресурсов установите Resource Name ("Имя ресурса") на User и шаблон URL на /secureUser/*, после чего нажмите кнопку "OK".
      5. Выберите Enable Authentication Constraint ("Включить ограничение проверки подлинности") и нажмите кнопку Edit ("Изменить"), чтобы изменить поле Role Name ("Имя роли").
      6. В диалоговом окне изменения имени роли выберите AdminRole и UserRole на левой панели, нажмите кнопку Add ("Добавить"), затем нажмите кнопку OK.
      Примечание. Также можно установить время ожидания сеанса в web.xml. Для настройки времени ожидания щелкните вкладку General ("Общие") визуального редактора и укажите, сколько должен продолжаться сеанс. Продолжительность по умолчанию – 30 минут.

Настройка дескрипторов развертывания сервера

В случае развертывания приложения на сервере GlassFish или WebLogic, необходимо настроить дескриптор развертывания сервера, чтобы он соответствовал ролям безопасности, определенным в web.xml. Дескриптор развертывания сервера указан в узле Configuration Files ("Файлы конфигурации") созданного проекта в окне Projects ("Проекты").

Настройка дескриптора развертывания сервера GlassFish

Дескриптор развертывания сервера GlassFish именуется glassfish-web.xml. Дескриптор развертывания сервера в папке Configuration Files ("Файлы конфигурации"). Если его там нет, создайте его, щелкнув правой кнопкой мыши узел проекта и перейдя к New ("Создать") > Other ("Другое") > GlassFish > GlassFish Deployment Descriptor ("Дескриптор развертывания GlassFish"). Примите все параметры по умолчанию.

Обратите внимание, что значения, введенные в web.xml, отображаются в glassfish-web.xml. Среда IDE извлекает эти значения из web.xml для нас.

Для настройки дескриптора развертывания GlassFish:

  1. В окне Projects ("Проекты") разверните узел Configuration Files ("Файлы конфигурации") проекта и дважды щелкните glassfish-web.xml. Дескриптор развертывания glassfish-web.xml открывается в специальном редакторе со вкладками для дескрипторов развертывания GlassFish.

    Примечание. В случае версий сервера GlassFish, более ранних, чем 3.1, этот файл называется sun-web.xml.

  2. Выберите вкладку Security ("Безопасность") для раскрытия ролей безопасности.
  3. Выберите узел роли безопасности AdminRole, чтобы открыть страницу Security Role Mapping ("Сопоставление ролей безопасности").
  4. Щелкните Add Principal ("Добавить участника") и введите admin в качестве имени участника. Нажмите кнопку "ОК".

    Диалоговое окно добавления участника
  5. Выберите узел роли безопасности UserRole, чтобы открыть страницу Security Role Mapping ("Сопоставление ролей безопасности").
  6. Щелкните Add Principal ("Добавить участника") и введите user в качестве имени участника. Нажмите кнопку "ОК".
  7. Сохраните изменения в glassfish-web.xml.

glassfish-web.xml также можно просматривать и редактировать в редакторе XML, щелкнув вкладку XML. Если открыть glassfish-web.xml в редакторе XML, то можно будет увидеть, что glassfish-web.xml содержит следующую информацию о сопоставлении ролей безопасности:

<security-role-mapping>
    <role-name>AdminRole</role-name>
    <principal-name>admin</principal-name>
</security-role-mapping>
<security-role-mapping>
    <role-name>UserRole</role-name>
    <principal-name>user</principal-name>
</security-role-mapping>

Настройка дескриптора развертывания сервера WebLogic

Дескриптор развертывания WebLogic именуется weblogic.xml. На данный момент поддержка дескрипторов развертывания GlassFish в среде IDE не распространяется на дескрипторы развертывания WebLogic. Поэтому все изменения в weblogic.xml необходимо будет внести вручную.

Дескриптор развертывания сервера WebLogic в папке Configuration Files ("Файлы конфигурации"). Если его там нет, создайте его, щелкнув правой кнопкой мыши узел проекта и перейдя к New ("Создать") > Other ("Другое") > WebLogic > WebLogic Deployment Descriptor ("Дескриптор развертывания GlassFish"). Примите все установки по умолчанию.

Примечание. Дополнительную информацию об обеспечении безопасности веб-приложений в WebLogic, включая декларативную и программную безопасность, можно найти в Oracle Fusion Middleware Programming Security for Oracle WebLogic Server ("Программная безопасность Oracle Fusion Middleware для Oracle WebLogic Server").

Для настройки дескриптора развертывания WebLogic:

  1. В окне Projects ("Проекты") разверните узел Configuration Files ("Файлы конфигурации") проекта и дважды щелкните weblogic.xml. Дескриптор развертывания weblogic.xml откроется в редакторе.
  2. Внутри элемента <weblogic-web-app> введите или скопируйте следующие элементы назначения роли безопасности:
    <security-role-assignment>
        <role-name>AdminRole</role-name>
        <principal-name>adminGroup</principal-name>
    </security-role-assignment>
    <security-role-assignment>
        <role-name>UserRole</role-name>
        <principal-name>userGroup</principal-name>
    </security-role-assignment>
  3. Сохраните изменения в weblogic.xml.

Развертывание и выполнение приложения

В окне "Проекты" щелкните правой кнопкой мыши узел проекта и выберите команду "Выполнить".

Примечание. По умолчанию проект создается с включенной функцией компиляции при сохранении, поэтому для выполнения приложения в среде IDE его предварительная компиляция не требуется. Дополнительные сведения о функции "Компиляция при сохранении" приведены в соответствующем разделе руководства Создание, импорт и настройка проектов Java.

После сборки приложения и развертывания его на сервере в веб-обозревателе откроется начальная страница. Выберите безопасную область, к которой необходимо получить доступ, щелкнув admin либо user.

Развернутое приложение 1

После ввода имени пользователя и пароля возможны следующие результаты:

  • Пароль пользователя верен и у пользователя есть права на доступ к защищенному содержимому -> отобразится страница защищенного содержимого.

    Безопасная область пользователя
  • Пароль пользователя неверен -> отобразится страница ошибки.

    Страница ошибки при входе
  • Пароль пользователя верен, но у пользователя нет прав на доступ к защищенному содержимому -> обозреватель выведет ошибку 403, "В доступе к запрошенному ресурсу отказано".

    В доступе отказано

Заключение

В этом учебном курсе мы создали веб-приложение. Затем мы изменили настройки его безопасности, используя редакторы дескрипторов web.xml и glassfish-web.xml, создав веб-страницы с безопасным входом и несколькими удостоверениями.


Дополнительные сведения



Дата последнего изменения страницы: 18 июня 2009 г.