Перейти к основному содержимому

· 9 мин. чтения

1. Обзор

В этом руководстве мы рассмотрим службу Apereo Central Authentication Service (CAS) и увидим, как служба Spring Boot может использовать ее для аутентификации. CAS — это корпоративное решение единого входа (SSO) с открытым исходным кодом.

Что такое ССО? Когда вы входите в YouTube, Gmail и Карты с одинаковыми учетными данными, это единый вход. Мы собираемся продемонстрировать это, настроив сервер CAS и приложение Spring Boot. Приложение Spring Boot будет использовать CAS для аутентификации.

2. Настройка CAS-сервера

2.1. Установка CAS и зависимости

· 6 мин. чтения

1. Обзор

В этом руководстве мы обсудим, как реализовать SSO — единый вход — с помощью Spring Security OAuth и Spring Boot, используя Keycloak в качестве сервера авторизации.

Мы будем использовать 4 отдельных приложения:

  • Сервер авторизации — центральный механизм аутентификации.
  • Сервер ресурсов — поставщик Foo s
  • Два клиентских приложения — приложения, использующие SSO

Проще говоря, когда пользователь пытается получить доступ к ресурсу через одно клиентское приложение, он сначала будет перенаправлен для аутентификации через сервер авторизации. Keycloak выполнит вход пользователя в систему, и, пока он все еще находится в первом приложении, если доступ ко второму клиентскому приложению осуществляется с помощью того же браузера, пользователю не нужно будет снова вводить свои учетные данные.

Мы собираемся использовать тип предоставления кода авторизации из OAuth2 для делегирования аутентификации.

· 4 мин. чтения

1. Введение

Когда мы компилируем файл .java , мы получаем отдельный файл класса с расширением .class . Файл .class состоит из нескольких разделов, одним из которых является постоянный пул.

В этом кратком руководстве мы рассмотрим детали постоянного пула. Кроме того, мы увидим, какие типы он поддерживает и как он форматирует информацию.

2. Постоянный пул в Java

Проще говоря, пул констант содержит константы, необходимые для запуска кода определенного класса. По сути, это структура данных времени выполнения, похожая на таблицу символов. Это представление среды выполнения для каждого класса или интерфейса в файле класса Java.

· 7 мин. чтения

1. Обзор

Контейнеры Docker используются для запуска приложений в изолированной среде. По умолчанию все изменения внутри контейнера теряются при остановке контейнера. Если мы хотим сохранить данные между запусками, могут помочь тома Docker и привязки.

В этом руководстве мы узнаем о томах Docker , а также о том, как управлять ими и подключать их к контейнерам.

2. Что такое объем?

2.1. Файловая система Docker

· 5 мин. чтения

1. Введение

Как разработчики программного обеспечения, мы всегда ищем передовой опыт использования данной технологии или библиотеки. Естественно, иногда возникают споры.

Один из таких споров касается размещения аннотации Spring @Service . Поскольку Spring предоставляет альтернативные способы определения bean-компонентов, стоит обратить внимание на расположение аннотаций стереотипов.

В этом уроке мы рассмотрим аннотацию @Service и выясним , как лучше всего ее разместить в интерфейсах, абстрактных классах или конкретных классах .

2. @Service на интерфейсах

· 2 мин. чтения

1. Обзор

При создании документации Swagger нам часто приходится скрывать конечные точки от конечных пользователей. Чаще всего это делается, когда конечная точка еще не готова. Кроме того, у нас могут быть некоторые частные конечные точки, которые мы не хотим раскрывать.

В этой короткой статье мы рассмотрим, как мы можем скрыть конечные точки из документации Swagger API . Для этого мы будем использовать аннотации в нашем классе контроллера.

2. Скрытие конечной точки с помощью @ApiIgnore

Аннотация @ApiIgnore позволяет скрыть конечную точку . Давайте добавим эту аннотацию для конечной точки в наш контроллер:

· 5 мин. чтения

1. Обзор

В этом руководстве мы обсудим различные подходы к оценке математического выражения с использованием Java. Эта функция может пригодиться в проектах, где мы хотим оценить математические выражения, представленные в строковом формате.

Для начала мы обсудим несколько сторонних библиотек и их использование. Далее мы увидим, как мы можем использовать встроенный API сценариев Java для решения этой задачи.

2. exp4j

exp4j — это библиотека с открытым исходным кодом, которую можно использовать для вычисления математических выражений и функций. Библиотека реализует алгоритм Дейкстры Shunting Yard Algorithm, метод разбора математических выражений, заданных в инфиксной нотации .

· 3 мин. чтения

1. Весна и Ява

>> Выпущен Quarkus 1.11 — RESTEasy Reactive, Dev UI и многое другое! [ quarkus.io ]

Полностью реактивная реализация JAX-RS, пользовательский интерфейс Dev, расширенная поддержка Micrometer и многие другие функции в новой версии Quarkus!

>> Предложение по примитивным объектам для Java [ openjdk.java.net ]

К объектам без идентификаторов — предложение по примитивным и встроенным объектам для платформы Java!

>> GraalVM 21.0: Представляем новый способ запуска Java [ medium.com ]

· 5 мин. чтения

1. Введение

В этой статье мы узнаем, что такое встроенные функции и как они работают в Java и других языках на основе JVM.

2. Что такое внутренние качества?

Встроенная функция — это функция, которая имеет специальную обработку компилятором или интерпретатором для нашего языка программирования. Точнее, это особый случай, когда компилятор или интерпретатор может заменить функцию альтернативной реализацией по разным причинам.

Язык программирования обычно справляется с этим, понимая, что конкретный вызов метода является особенным, и всякий раз, когда мы вызываем этот метод, результирующее поведение отличается. Это позволяет нашему коду не отличаться от обычного, но реализация языка программирования может вмешиваться в особых случаях, чтобы дать дополнительные преимущества.

· 3 мин. чтения

В самом начале прошлого года я решил отслеживать свои читательские привычки и делиться лучшим материалом здесь, на ForEach . С тех пор не пропускал обзоров.

Вот так…

1. Весна и Ява

>> JEP 269: удобные фабричные методы для коллекций [ java.net ]

Быстрый и понятный JDK, упрощающий создание коллекций на Java. Так язык становится лучше.

>> Управление версиями ресурсов с помощью Spring MVC [ mscharhag.com ]