Oauth 在注销API的情况下,KeyClope刷新令牌将为空?

Oauth 在注销API的情况下,KeyClope刷新令牌将为空?,oauth,wildfly,access-token,servlet-filters,keycloak,Oauth,Wildfly,Access Token,Servlet Filters,Keycloak,我在我的Java应用程序中使用的是KeyClope 4.8.3和wildfly-14.0.1。从Servlet筛选器中删除会话时遇到问题。下面是我尝试过的方法 方法1: 我正在使用HttpServletRequest.logout()从keydove中删除会话。这种方法对我不起作用,我得到的刷新令牌等于NULL 方法2: 但当我使用提供了访问令牌的curl命令触发rest调用时 curl -X POST -k -H 'Content-Type: application/x-www-form-ur

我在我的Java应用程序中使用的是KeyClope 4.8.3和wildfly-14.0.1。从Servlet筛选器中删除会话时遇到问题。下面是我尝试过的方法

方法1: 我正在使用
HttpServletRequest.logout()
从keydove中删除会话。这种方法对我不起作用,我得到的
刷新令牌
等于
NULL

方法2: 但当我使用提供了访问令牌的curl命令触发rest调用时

curl -X POST -k -H 'Content-Type: application/x-www-form-urlencoded' \
-i 'https://authserver/auth/realms/{realm}/protocol/openid-connect/logout' \
--data 'username=abc&password=def&client_id=client-id&grant_type=refresh_token&client_secret=a682049d-587c-4c38-a594-814f08b0ca7&refresh_token=<refresh_token>'

keydeposecurityContext keydeposecurityContext=(keydeposecurityContext)httpRequest.getAttribute(keydeposecurityContext.class.getName())的可能重复项;如果(RefreshAbleKeyDoppeSecurityContext的KeyDoppeSecurityContext实例){RefreshAbleKeyDoppeSecurityContext ksc=(RefreshAbleKeyDoppeSecurityContext)KeyDoppeSecurityContext;RefreshToken RefreshToken=ksc.getRefreshToken();RefreshToken refreshTokenDecoded=TokenUtil.getRefreshToken(RefreshToken);//获取为空值。}这就是我试图检索刷新令牌的方式..httpRequest.logout();将从当前登录会话注销,为什么要获取刷新令牌?对于我来说,httpRequest.logout()并没有删除KeyClope会话。
    KeycloakSecurityContext keycloakSecurityContext = (KeycloakSecurityContext)httpRequest.getAttribute( KeycloakSecurityContext.class.getName() ); 
    if(keycloakSecurityContext instanceof RefreshableKeycloakSecurityContext) { 
    RefreshableKeycloakSecurityContext ksc = (RefreshableKeycloakSecurityContext)keycloakSecurityContext; 
    RefreshToken refreshToken = ksc.getRefreshToken(); 
    RefreshToken refreshTokenDecoded = TokenUtil.getRefreshToken(refreshToken);