Главная » Java, Web » Защита Web-страниц. Пароли

0

Защита информации на основе задания имен пользователей и паролей может быть установлена для любых Web-страниц или компонентов EJB, расположенных на сервере Blazix. Для установки защиты необходимо указать, какой именно ресурс будет защищен, а также установить имена пользователей и соответствующие им пароли. При этом аутентификация будет осуществляться с использованием двух стандартных методов: Basic и Form. От пользователя требуется лишь знание имени пользователя и соответствующего ему пароля.

Методы аутентификации

При базовом методе аутентификации Basic браузер выводит диалоговое окно, в котором пользователю предлагается указать имя и пароль. Приложение не может повлиять на внешний вид выводимого окна. Если используется метод From, то тогда создается HTML-страница, содержащая форму, в которую следует ввести имя пользователя и пароль. Форма содержит поля j_username и j_password. Атрибут action этой формы должен быть равен j_security_check. Помимо этой формы создается страничка, которая выводится в том случае, если пароль будет указан неверно.

Метод аутентификации выбирается путем задания значения свойства

application.<appname>.authType, которое может быть либо Basic, либо Form. Если используется базовая аутентификация, то дополнительно указывается свойство application.<appname>.authRealm. Браузер использует это свойство, отображая в выводимом диалоговом окне. Для аутентификации по типу Form задается значение свойств application. <appname>. authLoginForm (форма ДЛЯ аутентификации) И application. <appname>.authErrorPage (страница ошибки аутентификации):

application.default.authType: Form application.default.authLoginForm: /login.html

application.default.authErrorPage: /loginFailed.html

application.default.authType: Basic application.default.authRealm: TestSite

Чтобы удалить сессию пользователя при использовании метода Form, следует удалить атрибут объекта сессии desisoft. form, authorization.

Выбор защищаемых ресурсов

Какие именно ресурсы будут защищены паролями, указывается в файле конфигурации Web-cepeepa или в файлах Web-архива или архива компонентов EJB. В обоих случаях защита осуществляется с использованием ролей. С каждой ролью может быть связано несколько паролей. Для Web-cepeepa следует указать URL защищаемого ресурса в виде значения параметра role.<roie-name>.url. URL может быть указан полностью, либо с использованием звездочек: <path>/* и * .<extension>, например: role.name: user role.user.url: /safearea/* role.user.url: *.jsp

Приведенная в примере конфигурация сообщает, что область /safearea/, а также все URL, завершающиеся .jsp, будут доступны для роли с именем

user.

Для файлов Web-архивов имена ролей и адреса защищенных URL указываются в файле WEB-INF/Web.xml. В файлах архивов серверных компонентов EJB роли и защищаемые ресурсы обозначены в файле ejb-jar.xml.

Задание имен и паролей

Пары пользовательских имен и паролей указываются при создании импле- ментации интерфейса desisoft.deploy.Authcheck. Сервер Blazix содержит встроенную по умолчанию имплементацию этого интерфейса, основанную на использовании файла паролей. Чтобы воспользоваться этой возможностью как простейшим вариантом, следует задать пары имен и паролей, указав их в этом файле. Местоположение файла имен и паролей задается в файле конфигурации Web-cepeepa или в файле конфигурации EJB- сервера. Для Web-cepeepa защита осуществляется для того или иного приложения. Если существует только одно приложение, то для него используется имя default.

Если создается имплементация интерфейса desisoft .deploy.Authcheck, тогда имя имплементирующего класса следует указать в качестве значения

application. <appname>. authClass (для Web-cepBepa) ИЛИ authClass (для сервера EJB). Этот класс может требовать указания тех или иных параметров, которые передаются классу имплементации в виде значений application.<appname>.authParam.* ИЛИ authParam.*. При использовании аутентификации с заданием файла паролей следует указать значение параметра application.<appname>.authParam.file ИЛИ authParam.file, например:

application.default.authParam.file: htaccess.ini

Для Web-cepeepa класс аутентификации можно задать следующим образом:

application.default.authClass: MyAuth.MyAuthC1ass application.default.authParam.myParam: myParamValue

Работа с файлом конфигурации доступа

Файл конфигурации доступа состоит из строк, каждая из которых содержит одну запись. Запись состоит из полей, разделенных запятыми. Строка, начинающаяся со знаков # или ;, считается комментарием.

Первое поле в строке представляет собой URL защищаемого ресурса или EJB. Здесь можно указать *, что обозначает защиту для всех URL и EJB. Второе поле — имя пользователя, третье поле — пароль. За паролем следуют поля (одно или несколько), в которых указаны названия ролей:

*,userl,pwdl,admin,employee *,user2,pwd2,employee

Этот файл сообщает, что имя и пароль useri/pwdi действуют для всех URL и EJB и используются для осуществления доступа для ролей admin и employee. Имя и пароль user2/pwd2 также используются для всех URL и EJB и открывают доступ для роли employee.

Файл паролей используется для защиты всех URL, указанных в файле конфигурации Web-cepeepa, и для всех EJB. Чтобы выборочно защитить те или иные компоненты EJB, необходимо указать их имена в первом поле. Можно использовать отдельные файлы паролей для Web-cepeepa и для сервера EJB.

Пример задания класса аутентификации для Web-cepeepa (класс аутентификации), а также дополнительные параметры конфигурации сервера Blazix описаны в приложении 3.

Источник: Будилов В. А. Интернет-программирование на Java. — СПб.: БХВ-Петербург, 2003. — 704 е.: ил.

По теме:

  • Комментарии