Spring Security/Конфигурирование с помощью пространства имён: различия между версиями

м
Это дает возможность встроиться внутрь веб-инфраструктуры Spring Security. Класс <code>DelegatingFilterProxy</code>, из состава Spring Framework , передает запросы реализации фильтра, которая определена как Spring бин в контексте вашего приложения. В данном случае бин называется "springSecurityFilterChain", который является внутренним инфраструктурным бином, создаваемым при обработке пространства имен для решения вопросов связанных с веб-безопасностью. Заметим, что вы не должны использовать бин с этим именем самостоятельно. После того как вы добавили эти строки в ваш <code>web.xml</code>, вы можете приступить к редактированию файла контекста приложения. Сервисы веб-безопасности настраиваются с помощью элемента <code><http></code>.
 
=== Минимальная <http> конфигурация ===
Все что нужно чтобы начала работать веб-безопасность, это написать следующие строки:
 
С этого момента вы можете запустить ваше приложение и получите запрос для выполнения аутентификации (логина). Попробуйте выполнить это или поэкспериментируйте с "учебным" приложением, которое поставляется вместе с проектом. Приведенная выше конфигурация, по факту добавляет не сильно много сервисов, потому что мы использовали атрибут <code>auto-config</code>. Например, автоматически включается обработка логина на основе веб-форм.
 
==== Что делает включение auto-config? ====
Атрибут <code>auto-config</code>, который мы уже использовали, это просто сокращенный синтаксис:
<source lang="xml">
Эти элементы отвечают соответственно за установку логина на основе веб-формы, базовый логин и выход из приложения <ref name="[3]">In versions prior to 3.0, this list also included remember-me functionality. This could cause some confusing errors with some configurations and was removed in 3.0. In 3.0, the addition of an AnonymousAuthenticationFilter is part of the default <http> configuration, so the <anonymous /> element is added regardless of whether auto-config is enabled.</ref>. Каждый из них имеет атрибуты, которые могут быть использованы для изменения их поведения.
 
==== Базовый вход в систему и вход на основе веб-форм ====
Вы можете быть удивлены когда при попытке войти в систему появится веб-форма для логина, так как мы ничего не говорили ни о каких HTML или JSP файлах. В действительности, поскольку мы не явно установили URL для страницы входа в систему, Spring Security будет генерировать ее автоматически, основываясь на доступных возможностях и используя стандартные значения для URL, который будет обрабатывать в ход в систему по умолчанию, после того как пользователь войдет в систему он будет перенаправлен на URL для которого был послан запрос. Тем не менее, пространство имен предлагает поддержку, которая позволяет настраивать эти параметры. Например, если вы хотите использовать свою собственную страницу для входа в систему, то вы можете использовать:
 
Базовая аутентификация будет иметь приоритет и будет выдавать запрос для логина, когда пользователь попытается получить доступ к защищенному ресурсу. В этой конфигурации по прежнему будет доступна веб-форма для выполнения логина, например если вы захотите чтобы пользователь выполнит аутентификацию через форму встроенную в другую веб-страницу.
 
===== Установка «места назначения» по умолчанию, после выполнения логина =====
Если при попытке получить доступ к защищенному ресурсу, пользователю не будет показана форма аутентификации, то тогда в игру вступает опция <code>default-target-url</code>. Пользователь после входа в систему будет отправлен по этому URL, по умолчанию это "/". Вы также можете настроить поведение таким образом, чтобы пользователь всегда перемещался на эту страницу (независимо от того выполнял он вход в систему "по требованию", либо явно вошел в систему), путем установки значения атрибута <code>always-use-default-target</code> в <code>"true"</code>. Это полезно, если ваше приложение требует чтобы пользователь всегда начинал работу с "домашней" страницы, например:
 
61

правка