Size: a a a

Java/Kotlin and more

2021 May 30

AE

Alexandr Emelyanov in Java/Kotlin and more
Нет сервера авторизации больше в спринге из коробки. Новый пилили, но не доделали
источник

Э

Эд in Java/Kotlin and more
Нет, там по-хитрее. Есть несколько authorization flows. В доке oauth2 находил рекомендации для разных типов приложений. Кажется, authorization flow with pkce для SPA. Тут вот хорошо чел рассказывает вообще о oauth2 https://www.youtube.com/watch?v=996OiexHze0&ab_channel=OktaDevOktaDev
источник

AL

Aleksander Lemyagov in Java/Kotlin and more
Спасибо. Очень помогли. Скорее всего еще вернусь. Хочу проект сделать с oauth2. До этого был JWT на секюрити.
источник

Э

Эд in Java/Kotlin and more
И плюс ещё в Keycloak есть уже страницы логина, которые можно кастомизировать, а не пилить свои. Если юзать флоу с редиректами, можно заиметь это
источник

Э

Эд in Java/Kotlin and more
но если контора интегрирована с Microsoft, все пользователи есть в Microsoft Azure AD, то почему бы не использовать готовый Microsoft Azure AD как сервер авторизации в своих целях. В общем, нужно размышлять, есть много вариантов, чтоб быстрее
источник

AL

Aleksander Lemyagov in Java/Kotlin and more
Как эти страницы в реакт впилить?
источник

Э

Эд in Java/Kotlin and more
эти страницы будут отдаваться пользователю, когда браузер зайдёт по урлу на киклок. Эти страницы не нужно впиливать в своё приложение. Я хз, как объяснить
источник

Э

Эд in Java/Kotlin and more
Приложение React будет крутиться на 1 урле, Киклок на 2 урле.
React получит access + refresh token после юзер логина.
С access token будет ходить на твой бек (Resource Server).
И рефрешить, посылая запросы Киклоку, access token сам (спасибо либе)
источник

Э

Эд in Java/Kotlin and more
Дальше прикрутить на беке Spring Security. 2 пути
1 - взять готовую либу для Киклока
2 - написать кастомные компоненты (около 1 фильтр)
По сути нужно всего лишь добиться, чтоб при успешной валидации токена на беке засунуть его в SecurityContext. Ну а далее всякие @PreAuthorize на котроллерах будут работать

Вот это бек мой. Тут можно поменять только валидацию токена для Microsoft AD на Киклок https://github.com/Sedose/graduate_work_back
источник

B

Bromles in Java/Kotlin and more
Интересный вопрос по кэшу

Я сделал, но мне не нравится, как (самые большие и затратные запросы не кэшируются)

Я хз, как реализовать норм

В общем, у меня список регионов. Есть получение всех, есть поиск по id (уникальное), есть по имени и сокращенному имени. Есть добавление, апдейт по id и делит по id

Так вот
я сделал кэш dtoшек
И все регионы, которые попросили, превращаю в дто и кэширую туда по id

Ключевая фишка в том, что я хз, как кешировать методы, возвращающие лист. Так как ключ можно выбирать только из параметров метода, который кэшируешь. А там либо пусто (получить все), либо имя, либо сокращенное имя

Но сделать отдельные кэши по имени и сокращенному имени нельзя, потому что апдейт и делит только по id

А делать апдейт и делит еще и по имени, во-первых, небезопасно. А во-вторых, если делать апдейт по имени и сокращенному имени, то надо делать еще одно энтити типа дто, но без id внутри (так как при апдейте валидируется пришедшая дтошка и пустой id не пропустит)

Мне очень не нравится нынешняя реализация, но и перечисленные способы решения проблемы мне не нравятся еще больше

Как можно сделать иначе?
источник
2021 May 31

AL

Aleksander Lemyagov in Java/Kotlin and more
кеширование на уровне orm?
источник

AL

Aleksander Lemyagov in Java/Kotlin and more
Спасибо. Познавательно. Почему система сборки gradle?
источник

Э

Эд in Java/Kotlin and more
Чтоб меньше писать. Полотна xml неохота читать
источник

AL

Aleksander Lemyagov in Java/Kotlin and more
Понял. Спасибо за помощь.
источник

СЕ

Сергей Ермаков... in Java/Kotlin and more
Можно использовать в качестве ключа  uuid, а в валюе клади dto, отдаешь фронту ууид и по нему же дергаешь из кеша реквест
источник

B

Bromles in Java/Kotlin and more
На уровне сервиса через Spring Cache
источник

B

Bromles in Java/Kotlin and more
У меня нет фронта, а id уникальный там и так есть. То есть твоя идея уже работает. Проблема-то в том, что большие запросы, которые возвращают листы, не кэшируются
источник

B

Bromles in Java/Kotlin and more
Еще вопрос по спрингдоку

Как добавить поля, которые в респонс ентити (из мапы) в схему? А то он только схему дтошки берет
источник

B

Bromles in Java/Kotlin and more
источник

AE

Alexandr Emelyanov in Java/Kotlin and more
Результаты поиска не кешируют
источник