Процесс предоставления пользователю доступа к информационной системе состоит из трёх этапов: идентификации, аутентификации и авторизации.
Читать далее Аутентификация в Spring SecurityРубрика: Spring
Статьи, посвящённые проектам, входящим в экосистему Spring.IO.
Погружение в Spring Security для Servlet API
Spring Security — это очень мощный и гибкий фреймворк, применяемый для обеспечения безопасности приложений на платформе Java, преимущественно веб-приложений, основанных на Spring Framework. Впрочем, он может применяться и в проектах на основе Jakarta Servlet API, не использующих Spring Framework.
Читать далее Погружение в Spring Security для Servlet APISpring JDBC в деталях: SimpleJdbcInsert
Решил я проанализировать источники трафика на моём сайте и обнаружил, что на сайт частенько заходят в поисках информации о SimpleJdbcInsert
, о чём я толком не рассказывал. Поэтому этой статьёй я постараюсь закрыть этот пробел.
SimpleJdbcInsert
— один из вспомогательных инструментов, предоставляемых Spring Framework JDBC для работы с реляционными базами данных, задача которого — предоставить удобный механизм для вставки новых строк в таблицы.
Spring Security: Маскировка CSRF-токена
В своих проектах я крайне редко использую защиту от CSRF-атак, предоставляемую Spring Security, ввиду того, что подавляющая часть этих проектов — REST-сервисы без хранения состояния. Но один из проектов использует файлы cookies на стороне браузера для хранения состояния, а в этом случае для защиты от CSRF-атак нужно использовать средства Spring Security. И при переводе проекта на Spring Boot 3 я обнаружил, что Spring Security начал игнорировать передаваемый в заголовке CSRF-токен.
Читать далее Spring Security: Маскировка CSRF-токенаSpring по верхам: тестирование REST сервиса
Тестирование является очень важной составляющей процесса разработки программного обеспечения, ведь при помощи тестов можно заранее проверить корректность работы написанного кода, не дожидаясь гневных отзывов от пользователей и заказчиков из-за ошибок, допущенных при разработке. Конечно во многих случаях проверить написанный код можно вручную, однако лучше всё же пользоваться средствами автоматизированного тестирования, так как такое тестирование позволяет проверить не только новый код, но и убедиться в том, что ранее написанный код работает без ошибок.
Читать далее Spring по верхам: тестирование REST сервисаДесериализация JSON в GraalVM Native Image
Одной из главных профессиональных целей, которые я ставил перед собой на этот уже уходящий 2022 год, было изучение перспективной GraalVM, в особенности сборки нативных образов (Native Image), а так же внедрение этого всего в свои проекты. В общих чертах я уже был знаком с GraalVM, и даже экспериментировал со сборкой нативных образов из проектов, основанных на Spring Boot, но ждал релиза Spring Boot 3. И, дождавшись его, начал переводить существующие проекты на новую версию стека Spring и заодно пробовать собирать нативные образы.
Читать далее Десериализация JSON в GraalVM Native ImageSpring по верхам: разработка REST-сервиса
У меня в планах уже давно есть написание нескольких циклов материалов, и я даже начинал писать некоторые из них, но всякий раз по тем или иным причинам дело не доходило до публикации. И вот я наконец созрел явить общественности свой первый цикл материалов «Spring по верхам», в котором буду поверхностно рассказывать о том, как можно использовать экосистему Spring при разработке проектов.
Читать далее Spring по верхам: разработка REST-сервисаТестирование сервисов на Spring с Testcontainers
Нередко даже для тестирования небольших проектов требуется наличие определённой инфраструктуры: баз данных, брокеров очередей сообщений, кеш-серверов и т.д. Можно использовать какие-то встраиваемые решения, но не факт, что они на 100% соответствуют требованиям проекта. Так, например, популярная встраиваемая СУБД H2 не имеет полной поддержки всех типов PostgreSQL. Можно развёртывать для тестирования всю необходимую инфраструктуру, но это несёт дополнительные затраты, в том числе и на сопровождение. Кроме того разработчикам, возможно, придётся разворачивать тестовую инфраструктуру локально на своих ПК, что тоже не всегда удобно.
Читать далее Тестирование сервисов на Spring с TestcontainersОтправка SSE из JMS при помощи Spring WebFlux
Когда речь заходит о необходимости отправки сообщений клиенту от сервера по HTTP, варианты решения, как правило, ограничиваются использованием вебсокетов или событий отправляемых сервером (Server-sent Events, SSE). Если требуется отправить клиенту сообщение из JMS, то обычно реализация этой задачи сводится к использованию STOMP через вебсокеты, как это описано в официальной документации Spring Framework.
Читать далее Отправка SSE из JMS при помощи Spring WebFluxНачало разработки веб-приложений с Java и Spring
В этом цикле статей я опишу процесс разработки веб-приложения на Java и Spring на примере разработки простого интеренет-магазина. Цикл статей разбит таким образом, чтобы в каждой статье описывался процесс работы с одной технологией или с одной группой взаимосвязанных технологий.
Читать далее Начало разработки веб-приложений с Java и Spring