172 похожих чатов

Никто не подскажет, а для actix-web есть какое-то готовое решения

для проверки грантов прям на хэндлерах процедурным макросом (аля #[has_role(“admin”)]) ?
Какой-то готовой абстракции по экстракту деталей юзера не нашел для этого 🤔

13 ответов

13 просмотров

Я хотел сделать в какой-то момент, но руки не дошли Я бы, кстати, делал более универсальную систему + интеграцию с actix-web, чтобы потом для другого фреймворка второй раз не переделывать

Emmanuel Goldstein
Я хотел сделать в какой-то момент, но руки не дошл...

Я не до конца допер, речь идет о jwt и проверке данных оттуда?

Artemij Artamonov
Я не до конца допер, речь идет о jwt и проверке да...

Типа, плюс способ удобно писать правила вроде «админ может всё, что может обычный человек»

Artem-Medvedev Автор вопроса
Emmanuel Goldstein
Типа, плюс способ удобно писать правила вроде «адм...

И по хорошему не обязательно только jwt, экстракторы кастомные например через реализацию трейта

Artem Medvedev
И по хорошему не обязательно только jwt, экстракто...

Ну это надо думать как хорошо делать, да Чтобы это при этом незаметно интегрировалось с актиксом

Artem-Medvedev Автор вопроса
Emmanuel Goldstein
Ну это надо думать как хорошо делать, да Чтобы это...

Под актикс в голове вроде сложилось примерное решение, нужно подумать на счёт разделения для интеграции с другими фреймворками 🤔 Ну и начать бы конечно это все делать)

я вот прям щас это делаю)

Artem-Medvedev Автор вопроса
Αλεχ Zhukovsky
я вот прям щас это делаю)

оу, я тоже уже накидал. хотел паблишить скоро) Мб и кривовато, но вроде работает)

Artem Medvedev
оу, я тоже уже накидал. хотел паблишить скоро) Мб ...

а, ну ты прям макросом? Я прост решил что макрос не нужзно и достаточно сделатЬ App::new() .authorized_route( API_PREFIX, web::get().to(handlers::get_about), env_config.clone(), my_permission_list )

Artem-Medvedev Автор вопроса
Αλεχ Zhukovsky
а, ну ты прям макросом? Я прост решил что макрос н...

ага, с макросом как опционально. Можно еще ручками прописывать тож На самом деле очень простенькое решение

Artem-Medvedev Автор вопроса
Artem Medvedev
ага, с макросом как опционально. Можно еще ручками...

там просто можно будет засунуть мое решение поверх того же actix-web-httpauth - если кто-то уже из бирер токена например получает гранты юзера

Artem Medvedev
там просто можно будет засунуть мое решение поверх...

ну вот это мой случай. Я сделал аус через httpauth. Хочу опциональную мидлварю для пермишнов, а эта хрень мне не дается

Artem-Medvedev Автор вопроса

Написал свое решение под это дело Запаблишил крейт actix-web-grants, ридми и доку еще доработать нужно бы… Поэтому чтоб понять, что да как, наверное лучше в доку и эксамплы на гите глянуть. Есть пример интеграции с actix-web-httpauth. Можно и через макрос, и через актиксовый гуард, и вручную прям в сервисах чекать гранты. Опыта с актиксом (да и растом в целом) маловато, поэтому рад буду если кто глянет, оставит какие-то комментарии/замечания.

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Вот еще странный косяк, подскажите как бороться. Я git clone сделал себе всего embassy и примеры там запускаю. Всё хорошо. Но вот решил в cargo.toml зависимости не как в приме...
Lukutin R2AJP
2
Карта сайта