中文字幕精品亚洲无线码二区,国产黄a三级三级三级看三级,亚洲七七久久桃花影院,丰满少妇被猛烈进入,国产小视频在线观看网站

keycloak~登出的回調接口

對于用戶的登出/注銷操作,都可以設置一個回調接口,這個接口是作用到client上(shang)面(mian)的,并且必須是(shi)POST接口,相關回調方法(fa)(fa)的調用(yong),可以參(can)考keycloak14.0.0的這個方法(fa)(fa):

  • org.keycloak.services.managers.sendBackChannelLogoutRequestToClientUri
  • 核心代碼段
LogoutToken logoutToken = session.tokens().initLogoutToken(resource, user, clientSessionModel);
String token = session.tokens().encode(logoutToken);
if (logger.isDebugEnabled())
    logger.debugv("logout resource {0} url: {1} sessionIds: ", resource.getClientId(), managementUrl);
HttpPost post = null;
try {
    post = new HttpPost(managementUrl);
    List<NameValuePair> parameters = new LinkedList<>();
    if (logoutToken != null) {
        parameters.add(new BasicNameValuePair(OAuth2Constants.LOGOUT_TOKEN, token));
    }
    CloseableHttpClient httpClient = session.getProvider(HttpClientProvider.class).getHttpClient();
    UrlEncodedFormEntity formEntity;
    formEntity = new UrlEncodedFormEntity(parameters, "UTF-8");
    post.setEntity(formEntity);
    try (CloseableHttpResponse response = httpClient.execute(post)) {
        try {
            int status = response.getStatusLine().getStatusCode();
            EntityUtils.consumeQuietly(response.getEntity());
            boolean success = status == 204 || status == 200;
            logger.debugf("logout success for %s: %s", managementUrl, success);
            return Response.status(status).build();
        } finally {
            EntityUtils.consumeQuietly(response.getEntity());
        }
    }
} catch (IOException e) {
    ServicesLogger.LOGGER.logoutFailed(e, resource.getClientId());
    return Response.serverError().build();
} finally {
    if (post != null) {
        post.reset();
    }
}

登出回調的配置

1 keycloak對client的配置

2 回調方法配置

3 回調接口日志輸出

posted @ 2024-05-24 17:39  張占嶺  閱讀(420)  評論(0)    收藏  舉報