Vert.x Oauth 2 授权服务器

Vert.x Oauth 2 Authorization server

谁能帮我设置 Oauth 2 授权服务器 Vert.x (3.3.0)。我找不到任何相关文档。 我发现 vertx-auth-oauth2 这个 vert.x 模块但我想如果授权服务器不同它会很有用 例如

以下代码片段来自 vert.x 文档

  OAuth2Auth oauth2 = OAuth2Auth.create(vertx, OAuth2FlowType.AUTH_CODE, new OAuth2ClientOptions()
        .setClientID("YOUR_CLIENT_ID")
        .setClientSecret("YOUR_CLIENT_SECRET")
        .setSite("https://github.com/login")
        .setTokenPath("/oauth/access_token")
        .setAuthorizationPath("/oauth/authorize")
);

// when there is a need to access a protected resource or call a protected method,
// call the authZ url for a challenge

String authorization_uri = oauth2.authorizeURL(new JsonObject()
    .put("redirect_uri", "http://localhost:8080/callback")
    .put("scope", "notifications")
    .put("state", "3(#0/!~"));

// when working with web application use the above string as a redirect url

// in this case GitHub will call you back in the callback uri one should now complete the handshake as:


String code = "xxxxxxxxxxxxxxxxxxxxxxxx"; // the code is provided as a url parameter by github callback call

oauth2.getToken(new JsonObject().put("code", code).put("redirect_uri", "http://localhost:8080/callback"), res -> {
  if (res.failed()) {
    // error, the code provided is not valid
  } else {
    // save the token and continue...
  }
});

它使用 Github 作为授权 server.I 很想知道如何在 vert.x 中实现授权服务器,我知道 spring 安全提供了这个功能,即 Oauth2Server 和OAuth2Client.

Vert.x OAuth2 只是一个 OAuth2Client,没有服务器实现,因此您无法从 Vert.x 项目本身获取它。

Vert.x OAuth2 支持以下流程:

  • 授权代码流(适用于具有可存储持久信息的服务器的应用程序)。
  • 密码凭据流程(当无法使用以前的流程或在开发期间)。
  • 客户端凭据流(客户端可以仅使用其客户端凭据请求访问令牌)