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

公開メンバ関数

Map< String, String > getNotes ()
 
void setNotes (Map< String, String > notes)
 
String getClientId ()
 
void setClientId (String clientId)
 
String getAuthMethod ()
 
void setAuthMethod (String authMethod)
 
String getRedirectUri ()
 
void setRedirectUri (String redirectUri)
 
String getAction ()
 
void setAction (String action)
 
 RestartLoginCookie ()
 
 RestartLoginCookie (AuthenticationSessionModel authSession)
 
TokenCategory getCategory ()
 

静的公開メンバ関数

static void setRestartCookie (KeycloakSession session, RealmModel realm, ClientConnection connection, UriInfo uriInfo, AuthenticationSessionModel authSession)
 
static void expireRestartCookie (RealmModel realm, ClientConnection connection, UriInfo uriInfo)
 
static AuthenticationSessionModel restartSession (KeycloakSession session, RealmModel realm, RootAuthenticationSessionModel rootSession, String expectedClientId) throws Exception
 

静的公開変数類

static final String KC_RESTART = "KC_RESTART"
 

限定公開変数類

String clientId
 
String authMethod
 
String redirectUri
 
String action
 
Map< String, String > notes = new HashMap<>()
 
String cs
 

静的非公開変数類

static final Logger logger = Logger.getLogger(RestartLoginCookie.class)
 

詳解

This is an an encoded token that is stored as a cookie so that if there is a client timeout, then the authentication session can be restarted.

著者
Bill Burke
バージョン
Revision
1

構築子と解体子

◆ RestartLoginCookie() [1/2]

org.keycloak.protocol.RestartLoginCookie.RestartLoginCookie ( )
inline
109  {
110  }

◆ RestartLoginCookie() [2/2]

org.keycloak.protocol.RestartLoginCookie.RestartLoginCookie ( AuthenticationSessionModel  authSession)
inline
112  {
113  this.action = authSession.getAction();
114  this.clientId = authSession.getClient().getClientId();
115  this.authMethod = authSession.getProtocol();
116  this.redirectUri = authSession.getRedirectUri();
117  for (Map.Entry<String, String> entry : authSession.getClientNotes().entrySet()) {
118  notes.put(entry.getKey(), entry.getValue());
119  }
120  }
String redirectUri
Definition: RestartLoginCookie.java:57
String clientId
Definition: RestartLoginCookie.java:51
Map< String, String > notes
Definition: RestartLoginCookie.java:63
String action
Definition: RestartLoginCookie.java:60
String authMethod
Definition: RestartLoginCookie.java:54

関数詳解

◆ expireRestartCookie()

static void org.keycloak.protocol.RestartLoginCookie.expireRestartCookie ( RealmModel  realm,
ClientConnection  connection,
UriInfo  uriInfo 
)
inlinestatic
130  {
131  String path = AuthenticationManager.getRealmCookiePath(realm, uriInfo);
132  boolean secureOnly = realm.getSslRequired().isRequired(connection);
133  CookieHelper.addCookie(KC_RESTART, "", path, null, null, 0, secureOnly, true);
134  }
static final String KC_RESTART
Definition: RestartLoginCookie.java:48

◆ getAction()

String org.keycloak.protocol.RestartLoginCookie.getAction ( )
inline
101  {
102  return action;
103  }
String action
Definition: RestartLoginCookie.java:60

◆ getAuthMethod()

String org.keycloak.protocol.RestartLoginCookie.getAuthMethod ( )
inline
85  {
86  return authMethod;
87  }
String authMethod
Definition: RestartLoginCookie.java:54

◆ getCategory()

TokenCategory org.keycloak.protocol.RestartLoginCookie.getCategory ( )
inline
178  {
179  return TokenCategory.INTERNAL;
180  }

◆ getClientId()

String org.keycloak.protocol.RestartLoginCookie.getClientId ( )
inline
77  {
78  return clientId;
79  }
String clientId
Definition: RestartLoginCookie.java:51

◆ getNotes()

Map<String, String> org.keycloak.protocol.RestartLoginCookie.getNotes ( )
inline
69  {
70  return notes;
71  }
Map< String, String > notes
Definition: RestartLoginCookie.java:63

◆ getRedirectUri()

String org.keycloak.protocol.RestartLoginCookie.getRedirectUri ( )
inline
93  {
94  return redirectUri;
95  }
String redirectUri
Definition: RestartLoginCookie.java:57

◆ restartSession()

static AuthenticationSessionModel org.keycloak.protocol.RestartLoginCookie.restartSession ( KeycloakSession  session,
RealmModel  realm,
RootAuthenticationSessionModel  rootSession,
String  expectedClientId 
) throws Exception
inlinestatic
138  {
139  Cookie cook = session.getContext().getRequestHeaders().getCookies().get(KC_RESTART);
140  if (cook == null) {
141  logger.debug("KC_RESTART cookie doesn't exist");
142  return null;
143  }
144  String encodedCookie = cook.getValue();
145 
146  RestartLoginCookie cookie = session.tokens().decode(encodedCookie, RestartLoginCookie.class);
147  if (cookie == null) {
148  logger.debug("Failed to verify encoded RestartLoginCookie");
149  return null;
150  }
151 
152  ClientModel client = realm.getClientByClientId(cookie.getClientId());
153  if (client == null) return null;
154 
155  // Restart just if client from cookie matches client from the URL.
156  if (!client.getClientId().equals(expectedClientId)) {
157  logger.debugf("Skip restarting from the KC_RESTART. Clients doesn't match: Cookie client: %s, Requested client: %s", client.getClientId(), expectedClientId);
158  return null;
159  }
160 
161  // Need to create brand new session and setup cookie
162  if (rootSession == null) {
163  rootSession = new AuthenticationSessionManager(session).createAuthenticationSession(realm, true);
164  }
165 
166  AuthenticationSessionModel authSession = rootSession.createAuthenticationSession(client);
167  authSession.setProtocol(cookie.getAuthMethod());
168  authSession.setRedirectUri(cookie.getRedirectUri());
169  authSession.setAction(cookie.getAction());
170  for (Map.Entry<String, String> entry : cookie.getNotes().entrySet()) {
171  authSession.setClientNote(entry.getKey(), entry.getValue());
172  }
173 
174  return authSession;
175  }
static final Logger logger
Definition: RestartLoginCookie.java:47
RestartLoginCookie()
Definition: RestartLoginCookie.java:109
static final String KC_RESTART
Definition: RestartLoginCookie.java:48

◆ setAction()

void org.keycloak.protocol.RestartLoginCookie.setAction ( String  action)
inline
105  {
106  this.action = action;
107  }
String action
Definition: RestartLoginCookie.java:60

◆ setAuthMethod()

void org.keycloak.protocol.RestartLoginCookie.setAuthMethod ( String  authMethod)
inline
89  {
90  this.authMethod = authMethod;
91  }
String authMethod
Definition: RestartLoginCookie.java:54

◆ setClientId()

void org.keycloak.protocol.RestartLoginCookie.setClientId ( String  clientId)
inline
81  {
82  this.clientId = clientId;
83  }
String clientId
Definition: RestartLoginCookie.java:51

◆ setNotes()

void org.keycloak.protocol.RestartLoginCookie.setNotes ( Map< String, String >  notes)
inline
73  {
74  this.notes = notes;
75  }
Map< String, String > notes
Definition: RestartLoginCookie.java:63

◆ setRedirectUri()

void org.keycloak.protocol.RestartLoginCookie.setRedirectUri ( String  redirectUri)
inline
97  {
98  this.redirectUri = redirectUri;
99  }
String redirectUri
Definition: RestartLoginCookie.java:57

◆ setRestartCookie()

static void org.keycloak.protocol.RestartLoginCookie.setRestartCookie ( KeycloakSession  session,
RealmModel  realm,
ClientConnection  connection,
UriInfo  uriInfo,
AuthenticationSessionModel  authSession 
)
inlinestatic
122  {
123  RestartLoginCookie restart = new RestartLoginCookie(authSession);
124  String encoded = session.tokens().encode(restart);
125  String path = AuthenticationManager.getRealmCookiePath(realm, uriInfo);
126  boolean secureOnly = realm.getSslRequired().isRequired(connection);
127  CookieHelper.addCookie(KC_RESTART, encoded, path, null, null, -1, secureOnly, true);
128  }
RestartLoginCookie()
Definition: RestartLoginCookie.java:109
static final String KC_RESTART
Definition: RestartLoginCookie.java:48

メンバ詳解

◆ action

String org.keycloak.protocol.RestartLoginCookie.action
protected

◆ authMethod

String org.keycloak.protocol.RestartLoginCookie.authMethod
protected

◆ clientId

String org.keycloak.protocol.RestartLoginCookie.clientId
protected

◆ cs

String org.keycloak.protocol.RestartLoginCookie.cs
protected

◆ KC_RESTART

final String org.keycloak.protocol.RestartLoginCookie.KC_RESTART = "KC_RESTART"
static

◆ logger

final Logger org.keycloak.protocol.RestartLoginCookie.logger = Logger.getLogger(RestartLoginCookie.class)
staticprivate

◆ notes

Map<String, String> org.keycloak.protocol.RestartLoginCookie.notes = new HashMap<>()
protected

◆ redirectUri

String org.keycloak.protocol.RestartLoginCookie.redirectUri
protected

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