0

実際に私は Vertx Routher を使用しており、ヘッダーにAuthorizationを含むリクエストがあり、トークンに関する詳細情報を見つけたいので、次のようなコードを使用して Vert.x RoutingContext から KeycloakSecurityContextを作成しようとしました。

KeycloakSecurityContext securityContext = (KeycloakSecurityContext) routingContext.session().get(KeycloakSecurityContext.class.getName());

しかし、それは失敗しました。(NPE、空の seesion.data)

VertxルートからそのKeycloakコンテキストを作成するにはどうすればよいですか? 将来的にはそのトークンを終了したいので、追加のヒントを歓迎します。

ありがとう、

4

1 に答える 1

1

Vert.x Web には Keycloak セキュリティ コンテキストはありません。Vert.x と Keycloak 間のすべての対話は、使用しているベンダーに依存しない OAuth2 プロトコルを介して行われます。例: Keycloak、Facebook、Google、Twitter、Linkedin など...

バージョン 3.3.0 の時点で、Vert.x 認証機関として OAuth2 トークンでエンコードされたキークローク グラントを使用できるようになるため、認証だけでなく承認も行うことができます。

ここに例があります:

// Initialize the OAuth2 Library
    OAuth2Auth oauth2 = OAuth2Auth.createKeycloak(vertx, OAuth2FlowType.PASSWORD, keycloakJson);

    // first get a token (authenticate)
    oauth2.getToken(new JsonObject().put("username", "user").put("password", "secret"), res -> {
      if (res.failed()) {
        // error handling...
      } else {
        AccessToken token = res.result();

        // now check for permissions
        token.isAuthorised("account:manage-account", r -> {
          if (r.result()) {
            // this user is authorized to manage its account
          }
        });
      }
});
于 2016-06-09T14:47:49.050 に答える