При работе с контекстом безопасности Spring Security иногда возникают ситуации, когда разрабатываемое приложение начинает себя вести не очевидно, отвечать ошибками с HTTP-статусом 403, но без каких-либо подробностей, в том числе и в логах. В рамках этой статьи предлагаю разобраться с тем, как можно добиться большей конкретики от Spring Security при возникновении подобных ситуаций.
Читать далее Отладка контекста безопасности — Spring Security в деталяхАвтор: Alexander Kosarev
Получение информации о пользователе — Spring Security в деталях
Зачастую при реализации какой-то функциональности в приложении требуется доступ к информации о текущем аутентифицированном пользователе. Spring Security предоставляет несколько способов получения информации о пользователе, предлагаю их рассмотреть в этой статье.
Читать далее Получение информации о пользователе — Spring Security в деталяхBasic-аутентификация в Spring Security
Одним из наиболее простых способов аутентификации в HTTP является Basic-аутентификация. Данный способ аутентификации можно назвать универсальным, так как он может использоваться как на обычных сайтах, так и в сервисах, реализующих REST или SOAP. Кроме того Basic-аутентификацию можно использовать и в протоколах на основе HTTP, например в WebDAV.
В Spring Security есть поддержка Basic-аутентификации, и, более того, это один из основных способов аутентификации в Spring Security наравне с традиционной формой входа.
Читать далее Basic-аутентификация в Spring SecurityАутентификация в Spring Security
Процесс предоставления пользователю доступа к информационной системе состоит из трёх этапов: идентификации, аутентификации и авторизации.
Читать далее Аутентификация в Spring SecurityПогружение в Spring Security для Servlet API
Spring Security — это очень мощный и гибкий фреймворк, применяемый для обеспечения безопасности приложений на платформе Java, преимущественно веб-приложений, основанных на Spring Framework. Впрочем, он может применяться и в проектах на основе Jakarta Servlet API, не использующих Spring Framework.
Читать далее Погружение в Spring Security для Servlet APIПринцип инверсии зависимости — SOLID в деталях
Пятым и последним принципом в списке принципов SOLID является принцип инверсии зависимости (Dependency Inversion Principle; DIP), который Роберт Мартин в книге «Чистая архитектура» формулирует следующим образом: «Код, реализующий высокоуровневую политику, не должен зависеть от кода, реализующего низкоуровневые детали. Напротив, детали должны зависеть от политики«.
Читать далее Принцип инверсии зависимости — SOLID в деталяхСамоподписанные сертификаты
Я, как и наверняка большинство разработчиков, в процессе разработки и локального тестирования различных сервисов использую незащищённые соединения. Но иногда возникает необходимость в использовании защищённых соединений. Использовать сертификаты, выданные сертифицирующими центрами, в этом случае не совсем логично, т.к. они не бесплатны. Вместо этого логичнее использовать самоподписанные сертификаты. В данной статье я рассмотрю создание самоподписанных сертификатов при помощи консольной утилиты OpenSSL.
Читать далее Самоподписанные сертификатыШаблонный метод — шаблоны проектирования в деталях
Шаблонный метод — это популярный поведенческий шаблон проектирования. При его помощи можно задать некоторое поведение в методе абстрактного класса, но при этом оставить детали реализации на классы-наследники. Проще говоря, в контексте языка программирования Java шаблонный метод — это метод абстрактного класса или метод по умолчанию интерфейса, задающий общее поведение, но опирающийся на другие абстрактные методы. Шаблонный метод наряду с шаблоном проектирования «Стратегия» часто применяется при реализации инверсии управления.
Читать далее Шаблонный метод — шаблоны проектирования в деталяхИнверсия управления
Одним из наиболее значимых принципов объектно-ориентированного программирования является инверсия управления или принцип инверсии управления. Так же этот принцип в шутку назван «Голливудским принципом», смысл которого раскрывается в определении: «Не звоните нам, мы сами вам позвоним». Данный принцип позволяет существенно снизить связанность между компонентами программного обеспечения, а также изменить процесс его разработки таким образом, чтобы сторонние фреймворки могли использовать компоненты, разрабатываемые другими разработчиками.
Читать далее Инверсия управленияВнедрение и поиск зависимостей
Прежде чем браться за материалы, посвящённые Spring Framework, мне хотелось бы повторить тему инверсии управления, так как этот принцип и его реализации в виде внедрения и поиска зависимостей являются важной составляющей ядра Spring Framework.
Под инверсией управления понимается подход к написанию кода, при котором элементы кода получают поток управления неявно от некоторого фреймворка. Иными словами, если сравнивать с традиционным процедурным программированием, не код обращается к фреймворку или библиотекам для выполнения какого-либо действия, а наоборот, фреймворк обращается к нашему коду.
Читать далее Внедрение и поиск зависимостей