Чтобы реализовать поставщика AuthZ
, вам нужно взглянуть на поставщика JWT
: https://github.com/vert-x3/vertx-auth/tree/master/vertx-auth-jwt
Помните, что вы должны игнорировать методы generateToken
, так как те, которые являются вспомогательными, имеют AuthN
.
Так что в основном все, что вам нужно для реализации следующего метода:
@Override
public void authenticate(JsonObject authInfo,
Handler<AsyncResult<User>> resultHandler) {
...
}
Объект authInfo
должен содержать токен или любую полезную нагрузку, которая вам нужна, и тогда вы выполните утверждения, и если они хороши, верните объект User
.
Объекты User
будут использоваться для выполнения AuthZ
. Ваш объект должен реализовать:
@Override
public void doIsPermitted(String permission,
Handler<AsyncResult<Boolean>> handler) {
...
}
Например, см .: https://github.com/vert-x3/vertx-auth/blob/master/vertx-auth-jwt/src/main/java/io/vertx/ext/auth/jwt/impl/JWTUser.java