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

公開メンバ関数

 UndertowSessionTokenStore (HttpServerExchange exchange, KeycloakDeployment deployment, UndertowUserSessionManagement sessionManagement, SecurityContext securityContext)
 
void checkCurrentToken ()
 
boolean isCached (RequestAuthenticator authenticator)
 
void saveRequest ()
 
boolean restoreRequest ()
 
void saveAccountInfo (OidcKeycloakAccount account)
 
void logout ()
 
void refreshCallback (RefreshableKeycloakSecurityContext securityContext)
 

静的限定公開変数類

static Logger log = Logger.getLogger(UndertowSessionTokenStore.class)
 

非公開変数類

final HttpServerExchange exchange
 
final KeycloakDeployment deployment
 
final UndertowUserSessionManagement sessionManagement
 
final SecurityContext securityContext
 

詳解

Per-request object. Storage of tokens in undertow session.

著者
Marek Posolda

構築子と解体子

◆ UndertowSessionTokenStore()

org.keycloak.adapters.undertow.UndertowSessionTokenStore.UndertowSessionTokenStore ( HttpServerExchange  exchange,
KeycloakDeployment  deployment,
UndertowUserSessionManagement  sessionManagement,
SecurityContext  securityContext 
)
inline
47  {
48  this.exchange = exchange;
49  this.deployment = deployment;
52  }
final SecurityContext securityContext
Definition: UndertowSessionTokenStore.java:44
final KeycloakDeployment deployment
Definition: UndertowSessionTokenStore.java:42
final HttpServerExchange exchange
Definition: UndertowSessionTokenStore.java:41
final UndertowUserSessionManagement sessionManagement
Definition: UndertowSessionTokenStore.java:43

関数詳解

◆ checkCurrentToken()

void org.keycloak.adapters.undertow.UndertowSessionTokenStore.checkCurrentToken ( )
inline

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

55  {
56  // no-op on undertow
57  }

◆ isCached()

boolean org.keycloak.adapters.undertow.UndertowSessionTokenStore.isCached ( RequestAuthenticator  authenticator)
inline

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

60  {
61  Session session = Sessions.getSession(exchange);
62  if (session == null) {
63  log.debug("session was null, returning null");
64  return false;
65  }
66  KeycloakUndertowAccount account = (KeycloakUndertowAccount)session.getAttribute(KeycloakUndertowAccount.class.getName());
67  if (account == null) {
68  log.debug("Account was not in session, returning null");
69  return false;
70  }
71 
72  if (!deployment.getRealm().equals(account.getKeycloakSecurityContext().getRealm())) {
73  log.debug("Account in session belongs to a different realm than for this request.");
74  return false;
75  }
76 
77  account.setCurrentRequestInfo(deployment, this);
78  if (account.checkActive()) {
79  log.debug("Cached account found");
80  securityContext.authenticationComplete(account, "KEYCLOAK", false);
81  ((AbstractUndertowRequestAuthenticator)authenticator).propagateKeycloakContext(account);
82  return true;
83  } else {
84  log.debug("Account was not active, returning false");
85  session.removeAttribute(KeycloakUndertowAccount.class.getName());
86  session.removeAttribute(KeycloakSecurityContext.class.getName());
87  session.invalidate(exchange);
88  return false;
89  }
90  }
String getRealm()
Definition: KeycloakDeployment.java:111
final SecurityContext securityContext
Definition: UndertowSessionTokenStore.java:44
final KeycloakDeployment deployment
Definition: UndertowSessionTokenStore.java:42
static Logger log
Definition: UndertowSessionTokenStore.java:39
final HttpServerExchange exchange
Definition: UndertowSessionTokenStore.java:41

◆ logout()

void org.keycloak.adapters.undertow.UndertowSessionTokenStore.logout ( )
inline

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

111  {
112  Session session = Sessions.getSession(exchange);
113  if (session == null) return;
114  KeycloakUndertowAccount account = (KeycloakUndertowAccount)session.getAttribute(KeycloakUndertowAccount.class.getName());
115  if (account == null) return;
116  session.removeAttribute(KeycloakUndertowAccount.class.getName());
117  session.removeAttribute(KeycloakSecurityContext.class.getName());
118  }
final HttpServerExchange exchange
Definition: UndertowSessionTokenStore.java:41

◆ refreshCallback()

void org.keycloak.adapters.undertow.UndertowSessionTokenStore.refreshCallback ( RefreshableKeycloakSecurityContext  securityContext)
inline

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

121  {
122  // no-op
123  }

◆ restoreRequest()

boolean org.keycloak.adapters.undertow.UndertowSessionTokenStore.restoreRequest ( )
inline
98  {
99  return false;
100  }

◆ saveAccountInfo()

void org.keycloak.adapters.undertow.UndertowSessionTokenStore.saveAccountInfo ( OidcKeycloakAccount  account)
inline

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

103  {
104  Session session = Sessions.getOrCreateSession(exchange);
105  session.setAttribute(KeycloakUndertowAccount.class.getName(), account);
106  session.setAttribute(KeycloakSecurityContext.class.getName(), account.getKeycloakSecurityContext());
107  sessionManagement.login(session.getSessionManager());
108  }
final HttpServerExchange exchange
Definition: UndertowSessionTokenStore.java:41
final UndertowUserSessionManagement sessionManagement
Definition: UndertowSessionTokenStore.java:43

◆ saveRequest()

void org.keycloak.adapters.undertow.UndertowSessionTokenStore.saveRequest ( )
inline
93  {
94 
95  }

メンバ詳解

◆ deployment

final KeycloakDeployment org.keycloak.adapters.undertow.UndertowSessionTokenStore.deployment
private

◆ exchange

final HttpServerExchange org.keycloak.adapters.undertow.UndertowSessionTokenStore.exchange
private

◆ log

Logger org.keycloak.adapters.undertow.UndertowSessionTokenStore.log = Logger.getLogger(UndertowSessionTokenStore.class)
staticprotected

◆ securityContext

final SecurityContext org.keycloak.adapters.undertow.UndertowSessionTokenStore.securityContext
private

◆ sessionManagement

final UndertowUserSessionManagement org.keycloak.adapters.undertow.UndertowSessionTokenStore.sessionManagement
private

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