powered by simpleCommunicator - 2.0.30     © 2024 Programmizd 02
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / Доступ к методу контроллера только от Feign клиентов
24 сообщений из 24, страница 1 из 1
Доступ к методу контроллера только от Feign клиентов
    #39913575
Nixic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет всем, хочу мало кровью обойтись, не настраивая всякие пермишены дополнительные в сервисах.
Все сервисы на Spring Boot.
добавлены аннотации @EnableFeignClients

Обращаюсь к одному из сервисов через интерфейс из другого сервиса
@FeignClient(name = "some-service")

Хочу, чтобы метод в контроллере сервиса some-service можно было вызывать только сервисами-клиентами, а самому сервису этот метод в контроллере был бы недоступен для прямого вызова по api.

Возможно ли такое?
...
Рейтинг: 0 / 0
Доступ к методу контроллера только от Feign клиентов
    #39913586
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nixic,
Не вижу логики.
Клиент ПОМОГАЕТ ВЫЗВАТЬ ПУБЛИЧНОЕ REST API не на твоем сайте B.
И ты требуешь чтобы на B было закрыто API?
Клиент просто уменьшил твой код.
...
Рейтинг: 0 / 0
Доступ к методу контроллера только от Feign клиентов
    #39913589
Nixic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
Nixic,
Не вижу логики.

бывает :)
найду решение, отпишу сюда
...
Рейтинг: 0 / 0
Доступ к методу контроллера только от Feign клиентов
    #39913591
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nixic
PetroNotC Sharp
Nixic,
Не вижу логики.

бывает :)
найду решение, отпишу сюда

Я за свободу)
...
Рейтинг: 0 / 0
Доступ к методу контроллера только от Feign клиентов
    #39913607
Nixic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
опишу все же кратко зачем оно надо.

В сервис-A (это отдельный проект, один из микросервисов) с неким контроллером, сервисом и методом в сервисе saveUserA(...), вызывается через POST api/user/save
Внутри сервиса есть помимо saveUserA(...) приватный метод, который в нем(saveUserA(...)) вызывается, добавляет некоторые записи в БД.

Есть сервис-B, который так же может сохранять юзера и он вызывает свой saveUserB(...)
И этот метод не имеет каких-то приватных методов, чтобы добавлять какие-то записи в бд.

В итоге, чтобы не писать в обоих сервисах один и тот же код, я вытащил приватный метод в контроллер сервиса-А
и через FeignClient из сервиса-B могу вызывать этот метод по определенному api/user/addSomeRecordsToDB

При этом мне совершенно не нужно, чтобы этот метод светился в сервисе-А :)

В принципе пусть себе светиться, но вызывать его сервис-А сам не должен.
Есть вариант через передачу параметров/заголовков, но надеюсь, что уже существует методы Spring Cloud, которые позволят ограничить вызов этого api напрямую сервисом. Да и вообще было бы интересно узнать, что такая возможность есть.
...
Рейтинг: 0 / 0
Доступ к методу контроллера только от Feign клиентов
    #39913612
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nixic,
Почему я и не люблю микросервисы.
Видимость метод-пакет-класс-переменная-public-private вынесены в веб.
И там мы строим эти отношения (scope).
Если бы поделили сервисы чуть крупнее, то не было бы addUser( два раза в разных сервисах.
Имхо
...
Рейтинг: 0 / 0
Доступ к методу контроллера только от Feign клиентов
    #39913614
Nixic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
Nixic,
Почему я и не люблю микросервисы.
Видимость метод-пакет-класс-переменная-public-private вынесены в веб.
И там мы строим эти отношения (scope).
Если бы поделили сервисы чуть крупнее, то не было бы addUser( два раза в разных сервисах.
Имхо

ситуации разные, юзеры регаются из разных систем, разные системы доступа юзеров к контенту, делили согласно требованиям
...
Рейтинг: 0 / 0
Доступ к методу контроллера только от Feign клиентов
    #39913626
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nixic
ситуации разные, юзеры регаются из разных систем, разные системы доступа юзеров к контенту, делили согласно требованиям


А нафига тогда делать распределенный монолит?!
Разные системы, разные хранилища для пользователей :-)

Если пользователи одни и те же для разных систем, то регистрация и управление пользователями должны быть в общем сервисе.
...
Рейтинг: 0 / 0
Доступ к методу контроллера только от Feign клиентов
    #39913635
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nixic,
А нужно было делить по функционалу.
Модуль - торговля
Модуль - Кадры.
Где будут юзвери?
...
Рейтинг: 0 / 0
Доступ к методу контроллера только от Feign клиентов
    #39913642
Nixic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
Nixic,
А нужно было делить по функционалу.
Модуль - торговля
Модуль - Кадры.
Где будут юзвери?

в данном случае слои такие не катят, ролевая модель достаточно сложная. модули и так разделены по функционалу с учетом нагрузки на сервисы и неразделимости некоторых.
...
Рейтинг: 0 / 0
Доступ к методу контроллера только от Feign клиентов
    #39913644
Nixic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot mad_nazgul#22058725]
Nixic

Если пользователи одни и те же для разных систем, то регистрация и управление пользователями должны быть в общем сервисе.

они и так в одном сервисе, есть сторонние юзеры, которые приходят из другой системы через другой сервис.
но нужно теперь добавлять тот же функционал в тот сервис, чтобы не копипастить и не создавать те же самые структуры дто и сущности в сервисе, используется фейн клиент
...
Рейтинг: 0 / 0
Доступ к методу контроллера только от Feign клиентов
    #39913664
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot Nixic#22058759]
mad_nazgul
пропущено...

они и так в одном сервисе, есть сторонние юзеры, которые приходят из другой системы через другой сервис.
но нужно теперь добавлять тот же функционал в тот сервис, чтобы не копипастить и не создавать те же самые структуры дто и сущности в сервисе, используется фейн клиент
вот тут и чехарда.
Если "из другой ИС" значит надо заводить нового юзверя у себя со ссылкой привязкой на того что там.
Это значит копировать тот код себе. Он не ваш.
А если "из другой ИС" это ваш #сервисмикросервис, то это и есть бардак.
...
Рейтинг: 0 / 0
Доступ к методу контроллера только от Feign клиентов
    #39913669
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У ас что то типо этого
Override
Код: java
1.
2.
3.
addUser(dto
addUser(json
addUser(xml


И все 3 раскиданы по разным микросервисам.
И если просто так вызвать, то все сломается. А при REST не должно ломаться. Хоть 1000 повторов делай.
...
Рейтинг: 0 / 0
Доступ к методу контроллера только от Feign клиентов
    #39914087
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nixic
[
они и так в одном сервисе, есть сторонние юзеры, которые приходят из другой системы через другой сервис.
но нужно теперь добавлять тот же функционал в тот сервис, чтобы не копипастить и не создавать те же самые структуры дто и сущности в сервисе, используется фейн клиент


Для этих двух ИС пользователи где хранятся? В БД или LDAP?
Это хранилище общее для двух ИС?
Если - да, то у вас "распределенный монолит".
Если нет, то каждая ИС хранит своих пользователей в своем хранилище, со всеми нужными полями.
А между сервисами делаете интеграцию по "синхронизации" пользователей.

Или для двух ИС делаете сервер авторизации, в котором хранятся пользователи и роли.
А в ИС уже в соответствии с ролями даются доступы.
...
Рейтинг: 0 / 0
Доступ к методу контроллера только от Feign клиентов
    #39914108
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgul,
Пофигу где хранится.
У него 3 перегруженных метода добавки юзверя. В разных сервисах.
Ему лень DTO, DAO для них 3 раза писать)))
Пример что писать долго не показал.
...
Рейтинг: 0 / 0
Доступ к методу контроллера только от Feign клиентов
    #39914130
Nixic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
mad_nazgul,
Пофигу где хранится.
У него 3 перегруженных метода добавки юзверя. В разных сервисах.
Ему лень DTO, DAO для них 3 раза писать)))
Пример что писать долго не показал.

Писать не долго, просто потом это надо будет как-то поддерживать и переписывать везде.
В итоге оставил метод открытым, в принципе это пофигу, все юзеры, которые обращаются к системе и так добавляют запись о себе с проверкой на уже существующую запись.
Методы не перегружены, они разные в разных сервисах с одной структурой ентити, где-то sso, где-то вход напрямую, где-то анонимный пользователь, обо всех них делается запись и выдаются соответствующие права.
...
Рейтинг: 0 / 0
Доступ к методу контроллера только от Feign клиентов
    #39914138
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nixic,
Если у тебя REST то там к каждому ресурсу CRUD то есть есть метод Добавить.
И конечно, если поменял Модель придется рефакторить.
Кому счас легко). (с)
...
Рейтинг: 0 / 0
Доступ к методу контроллера только от Feign клиентов
    #39914325
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nixic

Писать не долго, просто потом это надо будет как-то поддерживать и переписывать везде.
В итоге оставил метод открытым, в принципе это пофигу, все юзеры, которые обращаются к системе и так добавляют запись о себе с проверкой на уже существующую запись.
Методы не перегружены, они разные в разных сервисах с одной структурой ентити, где-то sso, где-то вход напрямую, где-то анонимный пользователь, обо всех них делается запись и выдаются соответствующие права.


Э-э-э зачем?
Проблема же только при создании пользователя?
Если да.
Так заверните все сообщения по созданию пользователя в какую-нибудь kafka и навешайте на нее нужны обработчиков.
...
Рейтинг: 0 / 0
Доступ к методу контроллера только от Feign клиентов
    #39914361
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgul,
Завернуть?
Стоит завернуть и мы получаем совсем другой классы системы
Message oriented middleware.
Ну а REST типо выкинуть.
...
Рейтинг: 0 / 0
Доступ к методу контроллера только от Feign клиентов
    #39914652
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
mad_nazgul,
Завернуть?
Стоит завернуть и мы получаем совсем другой классы системы
Message oriented middleware.
Ну а REST типо выкинуть.


Так REST это интерфейс, он я думаю не поменяется.
Только в REST-контроллер отправляет не в сервисный слой, а в какой-нибудь event-bus.
...
Рейтинг: 0 / 0
Доступ к методу контроллера только от Feign клиентов
    #39914672
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgul,
Ну мы добавим шину, очереди, ПО для очередей, оркестранта очередей, спеца по очередям.
А что это решит?
Есть у него 4 сервиса с
Код: javascript
1.
2.
3.
4.
addUser(dto
addUser(json
addUser(xml
addUser(ssoToken, json) 


И что решат очереди?
...
Рейтинг: 0 / 0
Доступ к методу контроллера только от Feign клиентов
    #39914675
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgul,
Можно добавлять (rmi/soap/rest/message/RPC/qRPC/...
А можно _рефакторить_. То означает убирать лишнее.
Все как в классах и их взаимодействию.
Тут смотреть надо.
Автору виднее его проект.
...
Рейтинг: 0 / 0
Доступ к методу контроллера только от Feign клиентов
    #39914682
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgul,
Тут вообще, вариантов миллион.
На предприятии делают несколько API.
Он может всю кухню скрыть в нижнем API техническом. И наверху иметь 3 публичных бизнес API. Одно для носимой электроники (смарты, умные часы,...) другое для руководства и третье для производства.
Так он тоже закроет доступ что хотел.
Ты выше предлагал права юзверей. Это тоже решение. И все его знают.
Есть у него sso и токены.
Вариантов много.
Удачи аффтару!
...
Рейтинг: 0 / 0
Доступ к методу контроллера только от Feign клиентов
    #39915647
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nixic, непонятно. Вопрос вроде в плоскости SpringSecurity. Или в javaSecurity.

До того как были добавлены магические слова. Как оно "раньше работало"?
...
Рейтинг: 0 / 0
24 сообщений из 24, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Доступ к методу контроллера только от Feign клиентов
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]