6.2. 迁移授权应用程序


授权是 Eclipse Vert.x 4 中的新功能。在之前的版本中,您只能检查用户是否有权在 User 对象上执行任务。这意味着该提供程序负责用户的身份验证和授权。

在 Eclipse Vert.x 4 中,User 对象实例不与特定的身份验证供应商相关联。因此,您可以使用不同的供应商验证并授权用户。例如,您可以使用 OAuth2 验证用户,并对 MongoDB 或 SQL 数据库执行授权检查。

以下示例演示了如何应用程序检查用户是否可以在 Eclipse Vert.x 3.x 版本中使用打印机 #1234。

// omitting the error handling for brevity
user.isAuthorized("printers:printer1234", res -> {
  if (res.succeeded()) {
    boolean hasAuthority = res.result();
    if (hasAuthority) {
      System.out.println("User can use the printer");
    } else {
      System.out.println("User cannot use the printer");
    }
  }
});

此授权适用于 JDBC 和 MongoDB。但是,它不适用于 OAuth2 等提供程序,因为该提供程序没有执行授权检查。从 Eclipse Vert.x 4 中,可以使用不同的提供程序执行此类授权检查。

// omitting the error handling for brevity
provider.getAuthorizations(user, res -> {
  if (res.succeeded()) {
    if (PermissionBasedAuthorization.create("printer1234").match(user)) {
      System.out.println("User can use the printer");
    } else {
      System.out.println("User cannot use the printer");
    }
  }
});

您可以检查对添加的角色、权限、逻辑操作、通配符和其他任何实施的授权。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.