В статье объясняется, как работает AuthenticationProvider — ключевая абстракция, отвечающая за проверку учетных данных и создание аутентифицированных объектов в Spring Security.
Автор на примере показывает, как реализовать собственный провайдер, зарегистрировать его в конфигурации и обрабатывать особые кейсы (например, “впускать Даниэля без пароля”) без нарушения встроенной логики безопасности.
Что вы узнаете из статьи:
▶️ Как устроено взаимодействие AuthenticationProvider и AuthenticationManager▶️ Чем отличается Authentication до и после успешной проверки▶️ Как обрабатывать логин под разные сценарии без переписывания фильтров▶️ Как правильно возвращать null из authenticate()▶️ Как подключать свои провайдеры в HttpSecurity и управлять порядком▶️ Как логировать успешную аутентификацию через AuthenticationSuccessEvent
Это заключительная часть цикла, где архитектура Spring Security раскрывается через реализацию собственного AuthenticationProvider.
🔖 Предыдущая часть — КЛИК
tags: #статья
Please open Telegram to view this post
VIEW IN TELEGRAM
❤9🔥3👍2
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣39⚡5❤5👍4😁3
Какова структура у JWT-токена?
Ответ:
Эти части кодируются в base64 и объединяются через точки: header.payload.signature.
tags: #собеседование
Please open Telegram to view this post
VIEW IN TELEGRAM
❤20👍7🔥5
В статье показано, как реализовать неблокирующие вызовы внешних API в бизнес-процессах с использованием BPMN-движков Camunda и Flowable.
Автор объясняет, как управлять транзакциями, обрабатывать ошибки и повысить отказоустойчивость при асинхронной интеграции.
tags: #статья
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4👍3❤2
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣38❤6😁5
Что выведет код сверху?
Anonymous Quiz
20%
true, false
18%
false, true
24%
true, true
25%
false, false
12%
Ошибка
🔥8❤6
maven-cheat-sheet.pdf
147.3 KB
Полезная памятка, чтобы каждый раз не вспоминать — как собрать проект, запустить нужную фазу, пропустить тесты или посмотреть дерево зависимостей.
Всё нужное на одном листе: базовые команды, рабочие флаги, создание архетипов, часто используемые плагины и даже специфичные штуки вроде
mvn help:effective-pom
или dependency:analyze
.tags: #полезное #шпаргалка
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤5🔥3
Что такое множество в Java и какие существуют его стандартные реализации?
Ответ:
Эти классы покрывают разные сценарии: от высокой производительности до потокобезопасности и сортировки.
tags: #собеседование
Please open Telegram to view this post
VIEW IN TELEGRAM
❤14🔥10👍3💯1
В статье разбирается новый API BeanRegistrar из Spring Framework 7 — он упрощает динамическую регистрацию бинов и заменяет устаревшие способы вроде BeanDefinitionRegistryPostProcessor.
Автор показывает, как с его помощью удобно программно подключать репозитории, фильтры и другие компоненты без XML и лишних аннотация.
tags: #статья
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4👍3🔥2
Как работает
volatile
? Гарантирует ли он атомарность операций?Ответ:
Однако volatile не обеспечивает атомарность операций. Это значит, что составные действия вроде инкремента (++) или проверки и установки значения всё равно требуют дополнительных механизмов синхронизации — например, synchronized или Atomic* классов.
tags: #собеседование
Please open Telegram to view this post
VIEW IN TELEGRAM
❤9👍5
JNI — это встроенный интерфейс, который позволяет Java-коду вызывать функции из C или C++ и работать с нативными библиотеками операционной системы.
Он используется, когда нужно взаимодействовать с нативным кодом, применять специфичный для платформы функционал или подключить библиотеки, недоступные на Java.
Пример Java-класса:
public class HelloJNI {
public native void sayHello();
static {
System.loadLibrary("hello");
}
}
Соответствующая C-реализация:
#include <jni.h>
#include <stdio.h>
#include "HelloJNI.h"
JNIEXPORT void JNICALL Java_HelloJNI_sayHello(JNIEnv *env, jobject obj) {
printf("Hello from C!\n");
}
Функция Java_HelloJNI_sayHello должна строго соответствовать полному имени Java-класса и метода: Java_<ClassName>_<MethodName>.
Компиляция (Linux/macOS):
gcc -shared -fpic -I"$JAVA_HOME/include" -I"$JAVA_HOME/include/linux" -o libhello.so HelloJNI.c
Использовать JNI следует с осторожностью: ошибки в нативном коде могут привести к утечкам памяти, нарушению безопасности и краху JVM.
📌 JNI особенно полезен при работе с CUDA, OpenCV, аудиобиблиотеками, нативными API и при переносе существующего C/C++-кода в Java-приложение.
tags: #обучение
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11❤6
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣45🔥5😁3
Как устроен Message в Kafka?
Ответ:
Все сообщения в партиции упорядочены и неизменяемы. Kafka хранит их как commit log и позволяет читать данные повторно, начиная с любого смещения.
tags: #собеседование
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6👍4🔥1
В статье объясняется, почему Spring Data JPA может тормозить: рассматриваются причины вроде open-in-view, ленивой инициализации, неправильной настройки DataSource и медленных JOIN-ов.
Автор на примерах показывает, как выявить проблемные места и оптимизировать конфигурацию, чтобы избавиться от неожиданных лагов и блокировок.
tags: #статья
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6🔥1
Docker — что это и для чего используется?
Ответ:
Такой контейнер можно запускать на любом сервере, где установлен Docker, независимо от операционной системы или конфигурации. Это упрощает переносимость, ускоряет развертывание и обеспечивает стабильную работу приложения в любом окружении — от локальной машины до облака.
Docker активно используется для автоматизации сборки, тестирования и доставки программ, особенно в микросервисной архитектуре и CI/CD-процессах.
tags: #собеседование
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11👍7❤3
В предыдущей части автор построил REST API для сервиса инцидентов на Java и Spring.
В этой статье он реализует микросервис изображений с использованием S3-хранилища и показывает два способа взаимодействия между сервисами — асинхронный через Kafka и синхронный с помощью gRPC.
🔖 Предыдущая часть — КЛИК
tags: #статья
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11❤3🔥1