user.isAuthorized始终返回false,无论使用vertx JWT auth的mongodb用户角色条目是什么>> [

问题描述 投票:0回答:1
堆栈:

    Vert.x JWT身份验证
  • Vert.x Mongo身份验证
  • 用户集合

(在身份验证过程中使用):{"username":"admin","roles":["myasd_manager"],"permissions":[],...}

问题:

[isAuthorized("role:myasd_manager")返回false

(期望的真值)

方法调用:

String requiredRole = MongoAuth.ROLE_PREFIX + "myasd_manager"; routingContext.user().isAuthorized(requiredRole, res -> {res.result()});
我的JWT身份验证提供程序设置如下:

PubSecKeyOptions keyOptions = new PubSecKeyOptions() .setAlgorithm(JWT_HASH_ALGORITHM) .setPublicKey(publicKey).setSecretKey(privateKey); JWTAuthOptions config = new JWTAuthOptions().addPubSecKey(keyOptions); JWTAuth jwtAuthProvider = JWTAuth.create(vertx, config);

和我的路由器是这样的:

router.get("/myresource") .handler(JWTAuthHandler.create(jwtAuthProvider).setIssuer(issuer) .setAudience(Collections.singletonList(audience))) .handler(new MyHandler(userClient));

到目前为止,我已经尝试了很多事情,并多次阅读vert.x文档以获取不同的身份验证方法

  • 但是我找不到关于是否需要手动将mongo身份验证连接到JWT身份验证以使用isAuthorized(role)方法的提示。

  • 如果是这样,我的猜测是将用户的角色从mongo db写入由rountingContext.user()方法返回的经过身份验证的JWTUser(即,在创建JWT令牌时将其写入角色)。

堆栈:Vert.x JWT身份验证Vert.x Mongo身份验证用户集合(在身份验证过程中使用):{“ username”:“ admin”,“ roles”:[“ myasd_manager”],“ permissions”:[], ...}问题:isAuthorized(“ role:...

mongodb authorization vert.x
1个回答
0
投票
permissionsClaimKey添加到JWTAuthOptions
© www.soinside.com 2019 - 2024. All rights reserved.