gpt4 book ai didi

java - 来自 vertx RoutingContext 的 KeycloakSecurityContext

转载 作者:行者123 更新时间:2023-12-01 10:03:24 25 4
gpt4 key购买 nike

实际上我正在使用 Vertx Routher,并且我有一个 header 中包含 Authorization 的请求,并且想要查找有关 token 的更多信息,因此我尝试创建 KeycloakSecurityContext> 使用如下代码形成 Vert.x RoutingContext:

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

但是失败了。 (NPE,空 seesion.data)

任何人都可以提示我,如何从 Vertx 路由创建 Keycloak 上下文?将来我想终止该 token ,因此欢迎提供额外的提示。

谢谢

最佳答案

Vert.x Web 中没有 Keycloak 安全上下文。 Vert.x 和 Keycloak 之间的所有交互都是通过 OAuth2 协议(protocol)完成的,该协议(protocol)独立于您使用的供应商,例如:Keycloak、Facebook、Google、Twitter、Linkedin 等...

从版本 3.3.0 开始,您将能够使用 OAuth2 token 中编码的 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
}
});
}
});

关于java - 来自 vertx RoutingContext 的 KeycloakSecurityContext,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36634785/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com