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

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

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

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

Содержание

Содержимое на этой странице применимо к IDE NetBeans 7.2, 7.3, 7.4 и 8.0

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

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

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

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

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

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

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

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

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

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

  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. В окне 'Проекты' в IDE щелкните правой кнопкой мыши 'Веб-страницы' и выберите 'Создать' > 'Другое'.
  10. В мастере создания новых файлов выберите Other ("Другое") в качестве категории и Folder ("Папка") в качестве типа файла. Нажмите кнопку "Далее".
  11. В мастере создания новых папок назовите папку secureAdmin и нажмите кнопку Finish ("Готово").

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

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

  16. В редакторе файлов исходного кода замените существующий код в файле pageU.html следующим кодом.
    <html>
       <head>
          <title>User secure area</title>
       </head>
       <body>
          <h1>User Secure Area</h1>
       </body>
    </html>
  17. Щелкните правой кнопкой мыши папку secureAdmin и создайте новый файлhtml под названием pageA.
  18. В редакторе файлов исходного кода замените существующий код в 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>Request a secure Admin page <a href="secureAdmin/pageA.html">here!</a></p>
    <p>Request a secure User page <a href="secureUser/pageU.html" >here!</a></p>
  2. Сохраните изменения.

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

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

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

  1. В окне 'Проекты' щелкните правой кнопкой мыши папку 'Веб-страницы' и выберите 'Создать' > 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>Login Test: Error logging in</title>
        </head>
        <body>
            <h1>Error Logging In</h1>
            <br/>
        </body>
    </html>

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

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

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

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

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

  1. Откройте консоль администрирования. Для этого перейдите в окно 'Службы' среды IDE и щелкните правой кнопкой мыши Серверы > Сервер GlassFish > Просмотр консоли администратора домена. В окне браузера откроется страница входа в систему сервера GlassFish. Для доступа к консоли администрирования необходимо войти, используя имя и пароль администратора.

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

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

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

При использовании Tomcat 7 создается пользователь с ролью сценария диспетчера и пароль для этого пользователя при регистрации сервера в IDE NetBeans.

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

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

Окно 'Службы', в котором отображается контекстное меню для открытия свойств 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" roles="AdminRole"/>
  5. Добавьте пользователя с именем user, паролем userpw01 и ролью UserRole.
    <user username="user" password="userpw01" roles="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="UserRole"/>
<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. Откройте консоль администрирования, перейдя в окно 'Службы' среды IDE и щелкнув правой кнопкой мыши 'Серверы' > 'Сервер WebLogic' > 'Просмотр консоли администратора'. В окне браузера откроется страница входа в систему сервера GlassFish. Для доступа к консоли администрирования необходимо войти, используя имя и пароль администратора.

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

  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, на которой отображаются настройки для пользователя с правами администратора
  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. В окне 'Проекты' разверните узел 'Файлы конфигурации' и дважды щелкните web.xml. В визуальном редакторе откроется файл web.xml.
  2. Щелкните Security ("Безопасность") на панели инструментов, чтобы открыть файл в представлении безопасности.
  3. Разверните узел Login Configuration ("Конфигурация входа") и установите настройку входа на Basic ("Простая").

    Примечание. Если необходимо использовать формы, выберите 'Форма', а не 'Основные' и укажите имя входа и страницы входа с ошибками.

  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". Откроется диалоговое окно Add Web Resource ("Добавление веб-ресурса").
    4. В этом диалоговом окне установите Resource Name ("Имя ресурса") на Admin и шаблон URL на /secureAdmin/*, после чего нажмите кнопку "OK". Диалоговое окно закроется.

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

      Диалоговое окно Add Web Resource (&quot;Добавление веб-ресурса&quot;)
    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. В окне 'Проекты' дважды щелкните web.xml, расположенный в каталоге Веб-страницы/WEB-INF, чтобы открыть файл в Visual Editor.
    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".

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

        Диалоговое окно Add Web Resource (&quot;Добавление веб-ресурса&quot;)
      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 ("Файлы конфигурации"). Если отсутствует, создайте его, щелкнув правой кнопкой мыши узел проекта и перейдя в 'Создать' > 'Другие' > GlassFish > 'Дескриптор развертывания GlassFish'. Примите все параметры по умолчанию.

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

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

  1. В окне 'Проекты' разверните узел 'Файлы конфигурации' и дважды щелкните 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 в качестве имени участника. Нажмите кнопку "OK".
  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 ("Файлы конфигурации"). Если отсутствует, создайте его, щелкнув правой кнопкой мыши узел проекта и перейдя в 'Создать' > 'Другие' > WebLogic > 'Дескриптор развертывания WebLogic'. Примите все параметры по умолчанию.

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

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

  1. В окне 'Проекты' разверните узел 'Файлы конфигурации' и дважды щелкните 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.

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

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

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

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

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

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

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

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

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

    Доступ запрещен

Заключение

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


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






get support for the NetBeans

Support


By use of this website, you agree to the NetBeans Policies and Terms of Use. © 2013, Oracle Corporation and/or its affiliates. Sponsored by Oracle logo