В системе Zero авторизацию можно включить, выполнив следующие шаги:
В конфигурации 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).
Далее можно создать новый класс следующим образом:
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.После настройки @Wall необходимо отправить запрос с заголовком Authorization, иначе вы получите следующий ответ:
{
"code": -60012,
"message": "[ERR-60012] (BasicPhylum) Web Exception occus: (401) - (Security) Unauthorized request met in request."
}
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )