#java #web-applications #jakarta-ee #security
#java #веб-приложения #джакарта-ee #Безопасность
Вопрос:
Я совершенно новичок в безопасности, управляемой контейнерами, и мне нужна помощь в ее настройке в моем веб-приложении.
Я хочу ограничить доступ к jsp в моем веб-приложении. Вот как я настроил безопасность в своем web.xml
<security-constraint>
<display-name>PrivilegedConstraint</display-name>
<web-resource-collection>
<web-resource-name>JSP Files</web-resource-name>
<description>All the jsp files in the web application</description>
<url-pattern>*.jsp</url-pattern>
</web-resource-collection>
<auth-constraint>
<description/>
<role-name>PrivilegedRole</role-name>
</auth-constraint>
<user-data-constraint>
<description/>
<transport-guarantee>NONE</transport-guarantee>
</user-data-constraint>
</security-constraint>
<login-config>
<auth-method>BASIC</auth-method>
<realm-name>BasicRealm</realm-name>
</login-config>
<security-role>
<description>This is a privileged role. Has access to everything in the web app</description>
<role-name>PrivilegedRole</role-name>
</security-role>
Мои вопросы :
Какова цель realm-name в элементе login-config? Где мне настроить имя пользователя, пароли и сопоставить пользователей с ролями?
Когда я пытаюсь получить доступ к jsp в моем веб-приложении, меня просят ввести имя пользователя и пароль. Что я там даю? И как работает этот механизм безопасности?
Я совершенно новичок в безопасности, поэтому я буду благодарен, если кто-нибудь сможет указать мне на хорошую статью, в которой объясняются основы настройки безопасности и как это на самом деле работает?
Ответ №1:
Вопрос: «Какова цель имени области в элементе login-config?»
Из руководства по Java EE 6:
Область — это домен политики безопасности, определенный для веб-сервера или сервера приложений. Область содержит коллекцию пользователей, которые могут быть или не быть назначены группе.
Поведение, определенное таким образом в текущей спецификации Servlet 3.0:
Базовая аутентификация HTTP, основанная на имени пользователя и пароле, является механизмом аутентификации, определенным в спецификации HTTP / 1.0. Веб-сервер запрашивает веб-клиент для аутентификации пользователя. Как часть запроса, веб-сервер передает область (строку), в которой пользователь должен быть аутентифицирован. Веб-клиент получает имя пользователя и пароль от пользователя и передает их на веб-сервер. Затем веб-сервер проверяет подлинность пользователя в указанной области.
Вопрос: «Где мне настроить имя пользователя, пароли и сопоставить пользователей с ролями?»
Это зависит от конкретного контейнера. То есть каждый поставщик сервера может свободно определять, как определяются пользователи / группы и как настраивается эта информация. Обычно существует более одного способа сделать это.
Пользователи и группы часто определяются в каталоге. Затем сервер настраивается для использования этого каталога, и администратор сопоставит роли приложений во время развертывания.
Тестовый сервер Tomcat разработчика может использовать плоский файл; рабочий сервер WebSphere может подключаться к каталогу Exchange компании через LDAP.
Для получения дополнительной информации обратитесь к документации вашего сервера.
Вы могли бы поступить хуже, чем следовать руководству Oracle Java EE 6 с Netbeans и Glassfish, но помните о шагах, специфичных для продуктов этого поставщика.