Весенняя безопасность
Разработчик(и) | 4 |
---|---|
Стабильная версия | 5.2.1
/ 4 ноября 2019 г [ 1 ] |
Написано в | Ява |
Операционная система | Кросс-платформенный |
Тип | платформы веб-приложений безопасность |
Лицензия | Лицензия Апач 2.0 |
Веб-сайт | проекты |
Spring Security — это платформа Java / Java EE , обеспечивающая аутентификацию , авторизацию и другие функции безопасности для корпоративных приложений. Проект был запущен в конце 2003 года под названием «Acegi Security» (произносится как Ah-see-gee / ɑː s iː dʒ iː / , буквы которого представляют собой первый, третий, пятый, седьмой и девятый символы английского алфавита, чтобы предотвратить конфликты имен [ 2 ] ) Бена Алекса, и он был публично выпущен под лицензией Apache в марте 2004 года. Впоследствии Acegi был включен в портфолио Spring как Spring Security, официальный подпроект Spring. Первым общедоступным выпуском под новым названием стал Spring Security 2.0.0 в апреле 2008 года, при этом коммерческая поддержка и обучение доступны на SpringSource .
Поток аутентификации
[ редактировать ]На диаграмме 1 показан основной поток запроса аутентификации с использованием системы Spring Security. Он показывает различные фильтры и то, как они взаимодействуют от первоначального запроса браузера до успешной аутентификации или ошибки HTTP 403.
Браузер отправляет « учетные данные аутентификации » | |
« Механизм аутентификации » собирает детали | |
« запрос аутентификации ». Создается объект | |
Запрос аутентификации отправлен в AuthenticationManager | |
AuthenticationManager (отвечает за передачу запросов через цепочку AuthenticationProviders ) | |
« Поставщик аутентификации » запросит UserDetailsService предоставить UserDetails объект
| |
Результирующий UserDetails объект (который также содержит GrantedAuthority[]s ) будет использоваться для построения полностью заполненного Authentication объект.
| |
Если « Механизм аутентификации » получает обратно полностью заполненный Authentication объект, он посчитает запрос действительным, поместит Authentication в SecurityContextHolder ; и вызвать повторную попытку исходного запроса. Если, с другой стороны, AuthenticationProvider отклонил запрос, механизм аутентификации попросит пользовательский агент повторить попытку.
| |
AbstractSecurityInterceptor авторизует повторно созданный запрос и генерирует исключения Java. (Спрашивает AccessDecisionManager для решения.)
| |
ExceptionTranslationFilter переводит исключения, выданные AbstractSecurityInterceptor в коды ошибок, связанные с HTTP
| |
Код ошибки 403 — если принципал прошел аутентификацию и, следовательно, ему просто не хватает доступа. Запустить AuthenticationEntryPoint – если принципал не прошел аутентификацию, что является механизмом аутентификации
|
Ключевые функции аутентификации
[ редактировать ]- LDAP (с использованием стратегий на основе привязки и сравнения паролей) для централизации информации аутентификации. [ 3 ] : 358–362, §7-3
- Возможности единого входа с использованием популярной центральной службы аутентификации .
- Служба аутентификации и авторизации Java (JAAS) LoginModule — основанный на стандартах метод аутентификации, используемый в Java. Обратите внимание, что эта функция является лишь делегированием модулю входа JAAS.
- Базовая аутентификация доступа , как определено в RFC 1945.
- Дайджест-аутентификация доступа [ 3 ] : 356–358, §7-3 как определено в RFC 2617 и RFC 2069.
- X.509 Представление клиентского сертификата по стандарту Secure Sockets Layer .
- CA, Inc SiteMinder для аутентификации (популярный коммерческий продукт для управления доступом).
- Su (Unix) -подобная поддержка переключения удостоверений субъектов через соединение HTTP или HTTPS .
- Замена запуска от имени, которая позволяет операции принять другой идентификатор безопасности.
- Анонимная аутентификация. Это означает, что даже неаутентифицированным участникам присваивается идентификатор безопасности.
- Поддержка адаптера контейнера (настраиваемая область) для Apache Tomcat , Resin , JBoss и Jetty (веб-сервер) .
- Windows NTLM для включения интеграции с браузером (экспериментально).
- Аутентификация веб-формы , аналогичная спецификации контейнера сервлетов .
- Поддержка функции «Запомнить меня» через файлы cookie HTTP .
- Поддержка одновременных сеансов, которая ограничивает количество одновременных входов в систему, разрешенных принципалом.
- Полная поддержка настройки и подключения пользовательских реализаций аутентификации.
Основные возможности авторизации
[ редактировать ]- Разрешение на вызов метода AspectJ .
- HTTP- авторизация URL-адресов веб-запросов с использованием путей Apache Ant или регулярных выражений .
Функции безопасности на основе экземпляров
[ редактировать ]- Используется для указания списков управления доступом, применимых к объектам домена .
- Spring Security предлагает репозиторий для хранения, извлечения и изменения списков ACL в базе данных . [ 3 ] : 376–381, §7-7
- Функции авторизации обеспечивают соблюдение политик до и после вызовов методов.
Другие особенности
[ редактировать ]- Локализация программного обеспечения , поэтому сообщения пользовательского интерфейса могут быть на любом языке.
- Безопасность канала для автоматического переключения между HTTP и HTTPS при соблюдении определенных правил.
- Кэширование во всех областях платформы, связанных с базой данных.
- Публикация сообщений для облегчения программирования, управляемого событиями .
- Поддержка выполнения интеграционного тестирования через JUnit .
- Сама Spring Security имеет комплексные JUnit . тесты изоляции
- Несколько примеров приложений, подробная документация JavaDocs и справочное руководство.
- Независимость от веб-фреймворка.
Релизы
[ редактировать ]- 2.0.0 (апрель 2008 г.)
- 3.0.0 (декабрь 2009 г.)
- 3.1.0 (7 декабря 2011 г.)
- 3.1.2 (10 августа 2012 г.)
- 3.2.0 (16 декабря 2013 г.)
- 4.0.0 (26 марта 2015 г.)
- 4.1.3 (24 августа 2016 г.)
- 4.2.0 (10 ноября 2016 г.)
- 3.2.10, 4.1.4, 4.2.1 (22 декабря 2016 г.)
- 4.2.2 (2 марта 2017 г.)
- 4.2.3 (8 июня 2017 г.)
- 5.0.0 (28 ноября 2017 г.)
- 5.0.8, 4.2.8 (11 сентября 2018 г.) [ 4 ]
- 5.1.0 GA (27 сентября 2018 г.) [ 5 ]
- 5.1.1, 5.0.9, 4.2.9 (16 октября 2018 г.) [ 6 ]
- 5.1.2, 5.0.10, 4.2.10 (29 ноября 2018 г.) [ 7 ]
- 5.1.3, 5.0.11, 4.2.11 (11 января 2019 г.) [ 8 ]
- 5.1.4 (14 февраля 2019 г.) [ 9 ]
- 5.1.5, 5.0.12, 4.2.12 (3 апреля 2019 г.) [ 10 ]
Цитаты
[ редактировать ]- ^ «Выпущены Spring Security 5.2.1 и 5.1.7» . весна.io . Проверено 4 декабря 2019 г.
- ^ «Почему имя Аджеги?» . весна.io .
- ^ Перейти обратно: а б с Deinum et al. 2014Дейнум и др. 2014
- ^ «Выпущены Spring Security 5.0.8 и 4.2.8» . весна.io . Проверено 9 июня 2019 г.
- ^ «Spring Security 5.1 выходит в общедоступном виде» . весна.io . Проверено 9 июня 2019 г.
- ^ «Выпущены Spring Security 5.1.1, 5.0.9 и 4.2.9» . весна.io . Проверено 9 июня 2019 г.
- ^ «Выпущена Spring Security 5.1.2, 5.0.10, 4.2.10» . весна.io . Проверено 9 июня 2019 г.
- ^ «Выпущена Spring Security 5.1.3, 5.0.11, 4.2.11» . весна.io . Проверено 9 июня 2019 г.
- ^ «Выпущена Spring Security 5.1.4» . весна.io . Проверено 9 июня 2019 г.
- ^ «Выпущена Spring Security 5.1.5, 5.0.12, 4.2.12» . весна.io . Проверено 9 июня 2019 г.
Ссылки
[ редактировать ]- Дейнум, Мартен; Рубио, Дэниел; Лонг, Джош; Мак, Гэри (1 сентября 2014 г.). Весенние рецепты: подход к решению проблем (второе изд.). Апресс . п. 1104. ИСБН 978-1-4302-2499-0 .
- «Почему имя Аджеги?» . весна.io .