keycloak
公開メンバ関数 | 限定公開変数類 | 非公開変数類 | 静的非公開変数類 | 全メンバ一覧
org.keycloak.adapters.jetty.core.JettySessionTokenStore クラス
org.keycloak.adapters.jetty.core.JettySessionTokenStore の継承関係図
Inheritance graph
org.keycloak.adapters.jetty.core.JettySessionTokenStore 連携図
Collaboration graph

公開メンバ関数

 JettySessionTokenStore (Request request, KeycloakDeployment deployment, AdapterSessionStore sessionStore)
 
void checkCurrentToken ()
 
boolean isCached (RequestAuthenticator authenticator)
 
void saveAccountInfo (OidcKeycloakAccount account)
 
void logout ()
 
void refreshCallback (RefreshableKeycloakSecurityContext securityContext)
 
void saveRequest ()
 
boolean restoreRequest ()
 

限定公開変数類

KeycloakDeployment deployment
 
AdapterSessionStore sessionStore
 

非公開変数類

Request request
 

静的非公開変数類

static final Logger log = Logger.getLogger(JettySessionTokenStore.class)
 

詳解

Handle storage of token info in HTTP Session. Per-request object

著者
Marek Posolda

構築子と解体子

◆ JettySessionTokenStore()

org.keycloak.adapters.jetty.core.JettySessionTokenStore.JettySessionTokenStore ( Request  request,
KeycloakDeployment  deployment,
AdapterSessionStore  sessionStore 
)
inline
47  {
48  this.request = request;
49  this.deployment = deployment;
51  }
KeycloakDeployment deployment
Definition: JettySessionTokenStore.java:44
Request request
Definition: JettySessionTokenStore.java:43
AdapterSessionStore sessionStore
Definition: JettySessionTokenStore.java:45

関数詳解

◆ checkCurrentToken()

void org.keycloak.adapters.jetty.core.JettySessionTokenStore.checkCurrentToken ( )
inline

org.keycloak.adapters.AdapterTokenStoreを実装しています。

54  {
55  if (request.getSession(false) == null) return;
56  RefreshableKeycloakSecurityContext session = (RefreshableKeycloakSecurityContext) request.getSession().getAttribute(KeycloakSecurityContext.class.getName());
57  if (session == null) return;
58 
59  // just in case session got serialized
60  if (session.getDeployment() == null) session.setCurrentRequestInfo(deployment, this);
61 
62  if (session.isActive() && !session.getDeployment().isAlwaysRefreshToken()) return;
63 
64  // FYI: A refresh requires same scope, so same roles will be set. Otherwise, refresh will fail and token will
65  // not be updated
66  boolean success = session.refreshExpiredToken(false);
67  if (success && session.isActive()) return;
68 
69  // Refresh failed, so user is already logged out from keycloak. Cleanup and expire our session
70  request.getSession().removeAttribute(KeycloakSecurityContext.class.getName());
71  request.getSession().invalidate();
72  }
KeycloakDeployment deployment
Definition: JettySessionTokenStore.java:44
Request request
Definition: JettySessionTokenStore.java:43

◆ isCached()

boolean org.keycloak.adapters.jetty.core.JettySessionTokenStore.isCached ( RequestAuthenticator  authenticator)
inline

org.keycloak.adapters.AdapterTokenStoreを実装しています。

75  {
76  if (request.getSession(false) == null || request.getSession().getAttribute(KeycloakSecurityContext.class.getName()) == null)
77  return false;
78  log.debug("remote logged in already. Establish state from session");
79 
80  RefreshableKeycloakSecurityContext securityContext = (RefreshableKeycloakSecurityContext) request.getSession().getAttribute(KeycloakSecurityContext.class.getName());
81  if (!deployment.getRealm().equals(securityContext.getRealm())) {
82  log.debug("Account from cookie is from a different realm than for the request.");
83  return false;
84  }
85 
86  securityContext.setCurrentRequestInfo(deployment, this);
87  request.setAttribute(KeycloakSecurityContext.class.getName(), securityContext);
88 
89  JettyRequestAuthenticator jettyAuthenticator = (JettyRequestAuthenticator) authenticator;
90  KeycloakPrincipal<RefreshableKeycloakSecurityContext> principal = AdapterUtils.createPrincipal(deployment, securityContext);
91  jettyAuthenticator.principal = principal;
93  return true;
94  }
KeycloakDeployment deployment
Definition: JettySessionTokenStore.java:44
String getRealm()
Definition: KeycloakDeployment.java:111
static final Logger log
Definition: JettySessionTokenStore.java:41
Request request
Definition: JettySessionTokenStore.java:43
boolean restoreRequest()
Definition: JettySessionTokenStore.java:122

◆ logout()

void org.keycloak.adapters.jetty.core.JettySessionTokenStore.logout ( )
inline

org.keycloak.adapters.AdapterTokenStoreを実装しています。

103  {
104  HttpSession session = request.getSession(false);
105  if (session != null) {
106  session.removeAttribute(KeycloakSecurityContext.class.getName());
107  }
108  }
Request request
Definition: JettySessionTokenStore.java:43

◆ refreshCallback()

void org.keycloak.adapters.jetty.core.JettySessionTokenStore.refreshCallback ( RefreshableKeycloakSecurityContext  securityContext)
inline

org.keycloak.adapters.AdapterTokenStoreを実装しています。

111  {
112  // no-op
113  }

◆ restoreRequest()

boolean org.keycloak.adapters.jetty.core.JettySessionTokenStore.restoreRequest ( )
inline
122  {
123  return sessionStore.restoreRequest();
124  }
AdapterSessionStore sessionStore
Definition: JettySessionTokenStore.java:45

◆ saveAccountInfo()

void org.keycloak.adapters.jetty.core.JettySessionTokenStore.saveAccountInfo ( OidcKeycloakAccount  account)
inline

org.keycloak.adapters.AdapterTokenStoreを実装しています。

97  {
98  RefreshableKeycloakSecurityContext securityContext = (RefreshableKeycloakSecurityContext) account.getKeycloakSecurityContext();
99  request.getSession().setAttribute(KeycloakSecurityContext.class.getName(), securityContext);
100  }
Request request
Definition: JettySessionTokenStore.java:43

◆ saveRequest()

void org.keycloak.adapters.jetty.core.JettySessionTokenStore.saveRequest ( )
inline
116  {
117  sessionStore.saveRequest();
118 
119  }
AdapterSessionStore sessionStore
Definition: JettySessionTokenStore.java:45

メンバ詳解

◆ deployment

KeycloakDeployment org.keycloak.adapters.jetty.core.JettySessionTokenStore.deployment
protected

◆ log

final Logger org.keycloak.adapters.jetty.core.JettySessionTokenStore.log = Logger.getLogger(JettySessionTokenStore.class)
staticprivate

◆ request

Request org.keycloak.adapters.jetty.core.JettySessionTokenStore.request
private

◆ sessionStore

AdapterSessionStore org.keycloak.adapters.jetty.core.JettySessionTokenStore.sessionStore
protected

このクラス詳解は次のファイルから抽出されました: