Package org.keycloak.services.util
Class BrowserHistoryHelper
- java.lang.Object
- 
- org.keycloak.services.util.BrowserHistoryHelper
 
- 
 public abstract class BrowserHistoryHelper extends Object The point of this is to improve experience of browser history (back/forward/refresh buttons), but ensure there is no more redirects then necessary. Ideally we want to: - Remove all POST requests from browser history, because browsers don't automatically re-send them when click "back" button. POSTS in history causes unfriendly dialogs and browser "Page is expired" pages. - Keep the browser URL to match the flow and execution from authentication session. This means that browser refresh works fine and show us the correct form. - Avoid redirects. This is possible with javascript based approach (JavascriptHistoryReplace). The RedirectAfterPostHelper requires one redirect after POST, but works even on browser without javascript and on old browsers where "history.replaceState" is unsupported.- Author:
- Marek Posolda
 
- 
- 
Field SummaryFields Modifier and Type Field Description protected static org.jboss.logging.Loggerloggerstatic StringSHOULD_UPDATE_BROWSER_HISTORY
 - 
Constructor SummaryConstructors Constructor Description BrowserHistoryHelper()
 - 
Method SummaryAll Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description static BrowserHistoryHelpergetInstance()abstract javax.ws.rs.core.ResponseloadSavedResponse(KeycloakSession session, AuthenticationSessionModel authSession)abstract javax.ws.rs.core.ResponsesaveResponseAndRedirect(KeycloakSession session, AuthenticationSessionModel authSession, javax.ws.rs.core.Response response, boolean actionRequest, HttpRequest httpRequest)protected booleanshouldReplaceBrowserHistory(boolean actionRequest, KeycloakSession session)
 
- 
- 
- 
Field Detail- 
SHOULD_UPDATE_BROWSER_HISTORYpublic static final String SHOULD_UPDATE_BROWSER_HISTORY - See Also:
- Constant Field Values
 
 - 
loggerprotected static final org.jboss.logging.Logger logger 
 
- 
 - 
Method Detail- 
saveResponseAndRedirectpublic abstract javax.ws.rs.core.Response saveResponseAndRedirect(KeycloakSession session, AuthenticationSessionModel authSession, javax.ws.rs.core.Response response, boolean actionRequest, HttpRequest httpRequest) 
 - 
loadSavedResponsepublic abstract javax.ws.rs.core.Response loadSavedResponse(KeycloakSession session, AuthenticationSessionModel authSession) 
 - 
shouldReplaceBrowserHistoryprotected boolean shouldReplaceBrowserHistory(boolean actionRequest, KeycloakSession session)
 - 
getInstancepublic static BrowserHistoryHelper getInstance() 
 
- 
 
-