Closed krkub3 closed 2 years ago
Проверьте вот эту проперти https://github.com/greatbit/quack/blob/master/assembly/quack.properties#L8
По дефолту авторизация тупая - для демо и только через проперти. Если установить в com.testquack.api.security.DbAuthProvider то будет работать создание пользователей в базе и можно будет авторизовываться новыми пользователями
Пока у вас один инстанс, можно использовать InmemSessionProvider https://github.com/greatbit/quack/blob/master/assembly/quack.properties#L12
Но если у вас будет много реплик, то нужно будет поменять конфиг на ru.greatbit.whoru.auth.providers.HazelcastSessionProvider и установить конфигурацию хазелкаста, перечислив ноды https://github.com/greatbit/quack/blob/master/assembly/quack.properties#L29 Можно с wildcards (если у вас настроен VPC) Например hazelcast.interface=10.0.. Это нужно, чтобы сессии пользователей хранились не в памяти на каждой машине, а в распределённом хранилище. Хазелкаст - inmemory database - быстрая и позволяет не нагружать основную БД на каждый запрос к сессии
AuthProcvider интерфейс сделан для того, чтобы каждая компания могла авторизацию под себя написать, если внутри используется что-то кастомное. Есть готовый провайдер для AWS Cognito. Был рабочий вариант для JiraServer. Сейчас работаем над SSO.
Если я устанавливаю whoru.session.provider=com.testquack.api.security.DbAuthProvider, то авторизация новых пользователей работает! Благодарю!
Но проект создать новый пользователь не может. При создании проекта получаю ошибку: Couldn't save project: { "code" : 400 }
И ещё один вопрос. Как удалить созданного пользователя?
Да. При DBAuthProvider проекты создают админы и добавляют пользователей в списки доступа в проекты.
Удалить пользователя сейчас можно либо через базу, либо через api call от имени админа (надо передать token, установленный в конфиге)
Если есть такая потребность - можем сделать UI для удаления пользователей.
Если же есть желание дать возможность пользователям создавать проекты - то можно включить функциональность Организаций. Пользователь может создать организацию и становится её админом. Внутри организации он может создавать проекты. На это всё можно посмотреть в облаке http://cloud.testquack.com/ (3 параллельные пользовательские сессии на организацию - бесплатно)
Если есть такая потребность - можем сделать UI для удаления пользователей. Это было бы восхитительно!
Проверьте вот эту проперти https://github.com/greatbit/quack/blob/master/assembly/quack.properties#L8
По дефолту авторизация тупая - для демо и только через проперти. Если установить в com.testquack.api.security.DbAuthProvider то будет работать создание пользователей в базе и можно будет авторизовываться новыми пользователями
Пока у вас один инстанс, можно использовать InmemSessionProvider https://github.com/greatbit/quack/blob/master/assembly/quack.properties#L12
Но если у вас будет много реплик, то нужно будет поменять конфиг на ru.greatbit.whoru.auth.providers.HazelcastSessionProvider и установить конфигурацию хазелкаста, перечислив ноды https://github.com/greatbit/quack/blob/master/assembly/quack.properties#L29 Можно с wildcards (если у вас настроен VPC) Например hazelcast.interface=10.0.. Это нужно, чтобы сессии пользователей хранились не в памяти на каждой машине, а в распределённом хранилище. Хазелкаст - inmemory database - быстрая и позволяет не нагружать основную БД на каждый запрос к сессии
Если я в конфигурационном файле напишу whoru.auth.provider=ru.greatbit.whoru.auth.providers.StubAuthProvider. Можно ли в конфигурационном файле создать несколько stub.login? Например:
stub.login1=somelogin1
stub.password1=somepass1
stub.login2=somelogin2
stub.password2=somepass2
Исходные данные Развернут QuAck на standalone сервере.
Создание пользователя
При авторизации с учетными данными testuser/testuser получаю ошибку: Unable to login: { "message" : "ru.greatbit.whoru.auth.error.UnauthorizedException: Login and password should match", "code" : 401 }