<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      keycloak~自定義登出接口

      keycloak提供了登出的接口,不過它是一個(gè)post方法,需要你根據(jù)client_id,client_secret及refresh_token進(jìn)行登出操作的,有時(shí)不太靈活,所以我又自己封裝了一下,通過客戶端瀏覽器上存儲(chǔ)的session_id進(jìn)行會(huì)話登出。

      kc提供的logout

      • api:{{host}}/auth/realms/fabao/protocol/openid-connect/logout
      • 請(qǐng)求方法:POST
      • 請(qǐng)求類型:x-www-form-urlencoded
      • 參數(shù):
      refresh_token:xxx
      client_id:xxx
      client_secret:xxx
      

      對(duì)remove-sessions登出的封裝

        // keycloak會(huì)話登出邏輯
        @GET
        @NoCache
        @Path("remove-sessions")
        public Response deleteSession(@Context HttpRequest request,
                                      @QueryParam("redirect_uri") String redirectUri) {
          return removeSession(TokenUtils.getKeycloakSessionIdFromCookies(request), redirectUri);
        }
      private Response removeSession(String sessionId, String redirectUri) {
          if (redirectUri == null || redirectUri.trim().length() == 0) {
            log.info("redirect_uri不正確");
            return Response.status(400).entity("redirect_uri不正確").type(MediaType.TEXT_HTML).build();
          }
      
          TokenUtils.removeSession(session, sessionId);//清除會(huì)話
          return Response.status(302)
              .location(HttpUtils.formatUrl(HttpUtils.removeUrlSpaceParams(redirectUri)))
              .cookie(CookieUtils.addCookie(TokenUtils.KC_EXIT_LEGACY, "1"))
              .header(HttpHeaders.SET_COOKIE,
                  CookieUtils.cookieString(TokenUtils.KC_EXIT, "1", "/", null, null, -1, true, true,
                      ServerCookie.SameSiteAttributeValue.NONE))
              .build();
      }
      public static void removeSession(KeycloakSession session, String sessionId) {
          try {
            if (sessionId != null) {
              RealmModel realmModel = session.getContext().getRealm();
              log.debugf("will remove sessionId:%s", sessionId);
              UserSessionModel userSession = session.sessions().getUserSession(session.getContext().getRealm(), sessionId);
              if (userSession != null) {
                String path = String.format("/auth/realms/%s/", session.getContext().getRealm().getId());
                CookieUtils.expireCookie(session.getContext().getRealm(), TokenUtils.KEYCLOAK_SESSION,
                    path, null, false,
                    session.getContext().getConnection(), ServerCookie.SameSiteAttributeValue.NONE);
                CookieUtils.expireCookie(session.getContext().getRealm(), TokenUtils.KEYCLOAK_SESSION_LEGACY, path, null,
                    false,
                    session.getContext().getConnection(), null);
                CookieUtils.expireCookie(session.getContext().getRealm(), TokenUtils.AUTH_SESSION_ID,
                    path, null, false,
                    session.getContext().getConnection(), ServerCookie.SameSiteAttributeValue.NONE);
                CookieUtils.expireCookie(session.getContext().getRealm(), TokenUtils.AUTH_SESSION_ID_LEGACY, path, null,
                    false,
                    session.getContext().getConnection(), null);
      
                AuthenticationManager.backchannelLogout(session,
                    realmModel,
                    userSession,
                    session.getContext().getUri(),
                    session.getContext().getConnection(),
                    session.getContext().getRequestHeaders(),
                    true);
      
              }
            }
          } catch (Exception ex) {
            log.error(ex);
          }
      
        }
      

      通過上面的封裝,我們?cè)谄渌鼘?duì)應(yīng)到keycloak的客戶端,直接在瀏覽器上輸入/auth/realms/fabao/sms/remove-sessions?redirect_uri=your-site,就可以把keycloak在當(dāng)前瀏覽器里的會(huì)話登出了,并重定向到自己的you-site網(wǎng)站。

      posted @ 2023-05-31 08:35  張占嶺  閱讀(1004)  評(píng)論(1)    收藏  舉報(bào)
      主站蜘蛛池模板: 国产成人综合久久亚洲精品| 福利一区二区在线播放 | 亚洲蜜臀av乱码久久| 国产精品人成视频免费国产| 五月综合网亚洲乱妇久久| 亚洲av色香蕉一区二区| 精品在线观看视频二区| 青青草原国产精品啪啪视频| 色综合天天综合网中文伊| 亚洲码和欧洲码一二三四| 国产不卡一区二区四区| 亚洲 另类 小说 国产精品无码| 国产av国片精品一区二区| 尤物yw193无码点击进入| 尤物yw193无码点击进入| 国产馆在线精品极品粉嫩| 国产片AV国语在线观看手机版| 最新国产精品中文字幕| 亚洲一区二区av观看| 曰批免费视频播放免费| 国产日韩乱码精品一区二区| 欧美另类精品xxxx人妖| 国产麻豆剧传媒精品国产av| 国产口爆吞精在线视频2020版| 国产资源精品中文字幕| 精品视频福利| 国产精品亚洲综合网一区| 久久天天躁夜夜躁狠狠820175| 亚洲男人第一无码av网站| 国产精品七七在线播放| 韩国一级毛片中文字幕| 久久国产精品不只是精品| 国产网友愉拍精品视频手机 | 深夜视频国产在线观看| 亚洲五月天综合| 日韩精品一区二区蜜臀av| 亚洲AV成人无码久久精品| 日本熟妇XXXX潮喷视频| 欧美乱码卡一卡二卡四卡免费| 国产在线观看免费观看| 在线观看特色大片免费网站|