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

公開メンバ関数

Response saveResponseAndRedirect (KeycloakSession session, AuthenticationSessionModel authSession, Response response, boolean actionRequest, HttpRequest httpRequest)
 
Response loadSavedResponse (KeycloakSession session, AuthenticationSessionModel authSession)
 

静的公開メンバ関数

static BrowserHistoryHelper getInstance ()
 

静的公開変数類

static final String SHOULD_UPDATE_BROWSER_HISTORY = "SHOULD_UPDATE_BROWSER_HISTORY"
 

限定公開メンバ関数

boolean shouldReplaceBrowserHistory (boolean actionRequest, HttpRequest httpRequest)
 

静的限定公開変数類

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

静的非公開変数類

static final String CACHED_RESPONSE = "cached.response"
 

詳解

関数詳解

◆ getInstance()

static BrowserHistoryHelper org.keycloak.services.util.BrowserHistoryHelper.getInstance ( )
inlinestaticinherited
70  {
71  return new JavascriptHistoryReplace();
72  //return new RedirectAfterPostHelper();
73  //return new NoOpHelper();
74  }

◆ loadSavedResponse()

Response org.keycloak.services.util.BrowserHistoryHelper.RedirectAfterPostHelper.loadSavedResponse ( KeycloakSession  session,
AuthenticationSessionModel  authSession 
)
inline
174  {
175  String savedResponse = authSession.getAuthNote(CACHED_RESPONSE);
176  if (savedResponse != null) {
177  authSession.removeAuthNote(CACHED_RESPONSE);
178 
179  if (logger.isTraceEnabled()) {
180  logger.tracef("Restored previously saved request");
181  }
182 
183  Response.ResponseBuilder builder = Response.status(200).type(MediaType.TEXT_HTML_UTF_8).entity(savedResponse);
184  BrowserSecurityHeaderSetup.headers(builder, session.getContext().getRealm()); // TODO rather all the headers from the saved response should be added here.
185  return builder.build();
186  }
187 
188  return null;
189  }
static final Logger logger
Definition: BrowserHistoryHelper.java:51
static final String CACHED_RESPONSE
Definition: BrowserHistoryHelper.java:144

◆ saveResponseAndRedirect()

Response org.keycloak.services.util.BrowserHistoryHelper.RedirectAfterPostHelper.saveResponseAndRedirect ( KeycloakSession  session,
AuthenticationSessionModel  authSession,
Response  response,
boolean  actionRequest,
HttpRequest  httpRequest 
)
inline
147  {
148  if (!shouldReplaceBrowserHistory(actionRequest, httpRequest)) {
149  return response;
150  }
151 
152  // For now, handle just status 200 with String body. See if more is needed...
153  if (response.getStatus() == 200) {
154  Object entity = response.getEntity();
155  if (entity instanceof String) {
156  String responseString = (String) entity;
157  authSession.setAuthNote(CACHED_RESPONSE, responseString);
158 
159  URI lastExecutionURL = new AuthenticationFlowURLHelper(session, session.getContext().getRealm(), session.getContext().getUri()).getLastExecutionUrl(authSession);
160 
161  if (logger.isTraceEnabled()) {
162  logger.tracef("Saved response challenge and redirect to %s", lastExecutionURL);
163  }
164 
165  return Response.status(302).location(lastExecutionURL).build();
166  }
167  }
168 
169  return response;
170  }
static final Logger logger
Definition: BrowserHistoryHelper.java:51
boolean shouldReplaceBrowserHistory(boolean actionRequest, HttpRequest httpRequest)
Definition: BrowserHistoryHelper.java:58
static final String CACHED_RESPONSE
Definition: BrowserHistoryHelper.java:144

◆ shouldReplaceBrowserHistory()

boolean org.keycloak.services.util.BrowserHistoryHelper.shouldReplaceBrowserHistory ( boolean  actionRequest,
HttpRequest  httpRequest 
)
inlineprotectedinherited
58  {
59  if (actionRequest) {
60  return true;
61  }
62 
63  Boolean flowChanged = (Boolean) httpRequest.getAttribute(SHOULD_UPDATE_BROWSER_HISTORY);
64  return (flowChanged != null && flowChanged);
65  }
static final String SHOULD_UPDATE_BROWSER_HISTORY
Definition: BrowserHistoryHelper.java:49

メンバ詳解

◆ CACHED_RESPONSE

final String org.keycloak.services.util.BrowserHistoryHelper.RedirectAfterPostHelper.CACHED_RESPONSE = "cached.response"
staticprivate

◆ logger

final Logger org.keycloak.services.util.BrowserHistoryHelper.logger = Logger.getLogger(BrowserHistoryHelper.class)
staticprotectedinherited

◆ SHOULD_UPDATE_BROWSER_HISTORY

final String org.keycloak.services.util.BrowserHistoryHelper.SHOULD_UPDATE_BROWSER_HISTORY = "SHOULD_UPDATE_BROWSER_HISTORY"
staticinherited

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