Архив рубрики: Памятки

Spring: TLS/SSL подключение к RabbitMQ

Возникла потребность подключаться из Java приложения к брокеру RabbitMQ с использованием защищенного соединения. Приложение на Spring Boot, живёт в контейнере Docker и должно слушать два узла Rabbit параллельно.

  • На входе: сертификат клиентского узла – контейнер client-cert.pfx, корневой сертификат для него root-cert.crt
  • Открытый серверный сертификат шлюза Rabbit: выкачивается автоматически (можно подложить вручную)
  • Используемая версия java поддерживает форматы хранилищ и JKS, и PKCS12
  • Требуется: создать и положить сертификаты в Key Store (сертификаты приложения “клиентские”) и Trust Store (доверенные “серверные” сертификаты). В чём разница.
Читать далее Spring: TLS/SSL подключение к RabbitMQ

Как связать контейнеры Docker в одну сеть

Очень легко и удобно оказалось в Докере (compose) связывать сети. Раньше сервисы обычно пихал в один compose-файл (или, точнее, лень было разделять специально – как шли “из коробки” – так и запускались).

Но стало неудобно. Совсем неудобно стало, что каждый норовит себе отдельную БД поднять соседним контейнером. И всё равно приходится лезть, и монтирование данных для БД на хостовой ФС прописывать. Ближе к делу:

Читать далее Как связать контейнеры Docker в одну сеть

Получение класса “Enum с параметром” по значению параметра

Частенько в коде встречаются перечисления, дополнительно хранящие некие значения (в виде private final поля обычно).

Чтобы в дальнейшем можно было, например, при сериализации в json это значение подставлять автоматом (@JsonValue у Jackson). Тогда возникает обычно и обратная задача – десериализовать (распарсить) значение обратно в Enum (@JsonCreator у Jackson).

Вот мне и надоело копипастить туда-сюда все эти методы (сериализации/десериализации) между классами Enum. Решил сделать один раз утилитный метод и в проекте им пользоваться. Благо, время позволило.

Читать далее Получение класса “Enum с параметром” по значению параметра

LibreOffice Calc – трюки работы с таблицей

Накопилось ещё некоторое количество “приёмчиков” работы с Open/Libre Office. Если предыдущая заметка на эту тему была посвящена LO Writer, то на сей раз – “подопытным” выступает пакет Calc (электронные таблицы).

Для затравки – простое, но часто нужное действие – перемещение строк и столбцов таблицы.

Читать далее LibreOffice Calc – трюки работы с таблицей

Git: извлечение первого и последнего коммита по автору

В силу определённых обстоятельств – периодически стал возникать вопрос, в каких временных рамках я занимался тем или иным проектом. И готового ответа на него у меня не было – как-то не приходило в голову фиксировать подобную информацию.

Но есть же git – ведь он поможет? Ведь поможет, да?

Читать далее Git: извлечение первого и последнего коммита по автору

GitLab: склонировать список репозиториев

Решил слегка “причесать” и обобщить свой опыт по этому вопросу. Чтобы удобней было пользоваться, как этакой краткой инструкцией, а не искать разрозненные ответы на SO и т.п.

Задача проста – сделать удобно 🙂

  1. Взять GitLab (много где используется, как self-hosted) и выкачать с него все репозитории проекта. Чтобы можно было локально работать с ними, не загружая каждый отдельно.
  2. Обновлять эти репозитории одной командой
Читать далее GitLab: склонировать список репозиториев

Git config с разделением по проектам

Возникла потребность настраивать по-разному конфиги гита для разных проектов (email контактный поменять, хотя бы, или хук на прогон тестов повесить).

Ну и понятно, что как-то эти конфиги подкладывать туда-сюда – не слишком увлекательно. К счастью, в свежих версиях гита – есть инклюды. В том числе – по условию – includeIf. Вот ими и стоит воспользоваться.

Читать далее Git config с разделением по проектам

CloudFlare WARP + WireGuard на роутере Keenetic

По аналогии с настройкой доступа к Cloudflare WARP через WireGuard в Linux – решил, заодно уж, поднять VPN и на роутере.

В наличии – Keenetic Omni KN-1410 с KeeneticOS версии 3.7.4 (WireGuard есть и в более ранних версиях). Насколько я понимаю, политика Keenetic такова, что функциональность прошивок у них идентична для разных моделей роутеров (не зависит от “класса” устройства). Так что – должно работать не только на Omni.

Читать далее CloudFlare WARP + WireGuard на роутере Keenetic

CloudFlare WARP + WireGuard = простой способ разблокировки сайтов

Долгое время пользовался ssh-туннелем для “разблокировки” некоторых сетевых ресурсов, доступ к которым был ограничен для IP Российского диапазона (ну, драйверы там скачать с сайта производителя, и т.п.).

Но – всему приходит конец. Моему терпению – тоже. Надоело постоянно переключать потребителей на работу через прокси (privoxy), чтобы завернуть трафик в socks-прокси туннеля. TOR стали прикручивать, что привело к очень долгому поиску мостов. И лень моя победила (в очередной раз).

Очевидно – нужен был способ попроще, да ещё – без особых затрат. Ставить VPN сервер (в том или ином виде) на VPS – хотелось ещё меньше, чем кидать туннель. Всякие платные прокси (типа Mullvad) – они удобны, позволяют выбрать “точку выхода”, но – надо изыскивать возможность их оплатить. Бесплатные – обычно, работают так себе.

Читать далее CloudFlare WARP + WireGuard = простой способ разблокировки сайтов

Midnight Commander

Решил собрать в одном месте (для памяти и удобства использования) некоторые нужные настройки и возможности MC, ранее валявшиеся разрозненно по разным заметкам.

Даже при ежедневном использовании MC в качестве файлового менеджера – некоторые горячие клавиши забываются и приходится перелистывать справку. Доступ к ним в табличном виде оказывается быстрей и удобней. По мере необходимости – буду пополнять заметку.

Читать далее Midnight Commander