1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/silentbalanceyh-vertx-zero

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
91-enable-basic-authorization.md 3.6 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 30.11.2024 04:28 85b9559

Включение базовой авторизации

В системе Zero авторизацию можно включить, выполнив следующие шаги:

1. Конфигурация

В конфигурации vertx.yml необходимо определить узел lime как extend следующим образом:

zero:
  lime: secure

Затем необходимо создать новый файл up.god с именем vertx-secure.yml, содержащий следующее содержимое:

secure:
  # Стандартный тип
  mongox:
    type: mongo
    config:
      collectionName: DB_USER
      saltStyle: NO_SALT

Система Zero предоставляет стандартную авторизацию по типу (в настоящее время поддерживается mongo).

2. Создание нового класса

Далее можно создать новый класс следующим образом:

import io.vertx.core.json.JsonObject;
import io.vertx.ext.auth.mongo.MongoAuth;
import io.vertx.ext.web.handler.AuthHandler;
import io.vertx.up.annotations.Authenticate;
import io.vertx.up.annotations.Wall;
import io.vertx.mod.plugin.mongo.MongoInfix;
import io.vertx.up.secure.component.BasicOstium;

@Wall(value = "mongox", path = "/exp4/*")
public class MongoKeeper {

    @Authenticate
    public AuthHandler authenticate(final JsonObject config) {
        return BasicOstium.create(
            MongoAuth.create(MongoInfix.getClient(), config)
        );
    }
}

Этот класс аннотирован @Wall. Если путь не установлен, он будет иметь значение /* для всех маршрутов. Значение должно быть настроено в vertx-secure.yml. В данном примере это mongox. Можно определить более одной стены для каждого маршрута. Затем необходимо создать метод AuthHandler для создания AuthHandler, теперь вы можете использовать BasicOstium для создания обработчика базовой авторизации, также этот метод должен быть аннотирован @Authenticate.

  • Метод должен быть аннотирован с помощью @Authenticate, чтобы указать, что этот метод предоставит AuthHandler для аутентификации.
  • В этом классе вы не должны использовать какие-либо зависимости для внедрения, такие как MongoClient, поскольку эта аннотация @Wall будет обрабатываться на этапе запуска, а не на этапе запроса.
  • Мы рекомендуем использовать BasicOstium вместо стандартного vert.x BasicAuthHandler, потому что класс BasicOstium будет привязан к экземпляру модели ресурсов Envelop, чтобы обеспечить нулевой формат ответа HTTP.

3. Пример ответа

После настройки @Wall необходимо отправить запрос с заголовком Authorization, иначе вы получите следующий ответ:

{
    "code": -60012,
    "message": "[ERR-60012] (BasicPhylum) Web Exception occus: (401) - (Security) Unauthorized request met in request."
}

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/silentbalanceyh-vertx-zero.git
git@api.gitlife.ru:oschina-mirror/silentbalanceyh-vertx-zero.git
oschina-mirror
silentbalanceyh-vertx-zero
silentbalanceyh-vertx-zero
master