Vert.x Web 中没有 Keycloak 安全上下文。Vert.x 和 Keycloak 之间的所有交互都是通过 OAuth2 协议完成的,该协议独立于您使用的供应商,例如:Keycloak、Facebook、Google、Twitter、Linkedin 等......
从 3.3.0 版本开始,您将能够使用在 OAuth2 令牌中编码的 keycloak 授权作为 Vert.x 身份验证权限,因此您不仅可以进行身份验证,还可以进行授权。
这里有一个例子:
// 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
}
});
}
});