elasticsearch Keycloak:从客户端应用程序注销不会从Kibana注销用户

xpszyzbs  于 2023-06-05  发布在  ElasticSearch
关注(0)|答案(1)|浏览(367)

我有两个应用程序是注册为客户端与Keycloak。第一个应用程序是定制开发的,并使用spring安全来处理注销。
用于注销的代码段:

@Bean(name = "logoutFilter")
public LogoutFilter logoutFilter(AdapterDeploymentContext adapterDeploymentContext, KeycloakProperties keycloakProperties) {
    KeycloakLogoutHandler firstHandler = new KeycloakLogoutHandler(adapterDeploymentContext);
    SecurityContextLogoutHandler secondHandler = new SecurityContextLogoutHandler();
    AntPathRequestMatcher matcher = new AntPathRequestMatcher("/sso/logout**", HttpMethod.POST.toString());
    LogoutFilter filter = new LogoutFilter(keycloakProperties.getDefaultTargetLogoutUrl(), firstHandler, secondHandler);
    filter.setLogoutRequestMatcher(matcher);
    return filter;
}

现在user1登录到app1, kibanakeycloak。如果在app1中单击注销,则user1将从app1keycloak应用程序中注销,但user1会话仍为kibana活动,并且可以访问它而不会出现任何问题。
我的期望是,当我在app1中单击注销时,会话应该终止,用户应该从所有会话/应用程序中注销。

50few1ms

50few1ms1#

如果您在一个域(如master)中有两个客户端(如app1和app2),且您有用户(如deepak),且可以访问这两个客户端。现在,如果您从app1注销,则app1和app2客户端都将注销,因为它基于用户会话,并且完全基于注销端点。

相关问题