Class WebAuthRequestCollection
- java.lang.Object
 - 
- com.inductiveautomation.ignition.common.lifecycle.AbstractLifecycle
 - 
- com.inductiveautomation.ignition.gateway.auth.web.WebAuthRequestCollection
 
 
 
- 
- All Implemented Interfaces:
 java.util.EventListener,javax.servlet.http.HttpSessionBindingListener
public class WebAuthRequestCollection extends AbstractLifecycle implements javax.servlet.http.HttpSessionBindingListener
A collection of web auth requests represented as relay state ->
WebAuthRequestCollection.WebAuthCallbackpairs.Each
HttpSessionmay have at most one collection.The internal collection supports high-concurrency and is thread-safe.
When a collection is bound to an
HttpSession, it is started up, which schedules the first reaper.A reaper is scheduled every 2 minutes to clear out any expired web auth requests.
When a collection is unbound from an
HttpSession, it is shut down, which clears the internal collection . 
- 
- 
Nested Class Summary
Nested Classes Modifier and Type Class Description static interfaceWebAuthRequestCollection.BaseWebAuthResponseHandlerclassWebAuthRequestCollection.LoginRequestBuilderstatic interfaceWebAuthRequestCollection.LoginResponseHandlerclassWebAuthRequestCollection.LogoutRequestBuilderstatic interfaceWebAuthRequestCollection.LogoutResponseHandlerstatic classWebAuthRequestCollection.WebAuthCallbackWraps a web auth request's creation timestamp, state to be carried from request to response, and a web auth response handler for handling the web auth response associated with the request.classWebAuthRequestCollection.WebAuthRequestBuilder<T extends WebAuthRequestCollection.WebAuthRequestBuilder<T>>static interfaceWebAuthRequestCollection.WebAuthResponseHandlerHandler for web auth responses 
- 
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description WebAuthRequestCollection.LoginRequestBuildercreateLoginRequest()WebAuthRequestCollection.LogoutRequestBuildercreateLogoutRequest()java.util.Optional<WebAuthRequestCollection.WebAuthCallback>get(java.lang.String state)Fetch theWebAuthRequestCollection.WebAuthCallbackassociated with the given relay state valuestatic WebAuthRequestCollectiongetOrCreate(RequestContext req)static WebAuthRequestCollectiongetOrCreate(GatewayContext gatewayContext, javax.servlet.http.HttpServletRequest httpServletRequest)static WebAuthRequestCollectiongetOrCreate(GatewayContext gatewayContext, javax.servlet.http.HttpSession httpSession)Gets theWebAuthRequestCollectionassociated with the givenHttpSession.protected voidonShutdown()protected voidonStartup()voidregisterHandler(java.lang.String state, java.lang.String app, WebAuthRequestCollection.WebAuthResponseHandler handler)Allows you to manually register a state key to a given handler.java.util.Optional<WebAuthRequestCollection.WebAuthCallback>remove(java.lang.String state)Remove theWebAuthRequestCollection.WebAuthCallbackassociated with the given relay state valuevoidvalueBound(javax.servlet.http.HttpSessionBindingEvent event)voidvalueUnbound(javax.servlet.http.HttpSessionBindingEvent event)- 
Methods inherited from class com.inductiveautomation.ignition.common.lifecycle.AbstractLifecycle
isRunning, shutdown, startup 
 - 
 
 - 
 
- 
- 
Method Detail
- 
getOrCreate
@Nonnull public static WebAuthRequestCollection getOrCreate(@Nonnull GatewayContext gatewayContext, @Nonnull javax.servlet.http.HttpSession httpSession)
Gets theWebAuthRequestCollectionassociated with the givenHttpSession. If aWebAuthRequestCollectiondoes not exist on the session, a new instance is created, set on the session, and returned.- Parameters:
 gatewayContext- the currently executingGatewayContexthttpSession- theHttpSessionholding theWebAuthRequestCollection- Returns:
 - the 
WebAuthRequestCollectionassociated with the givenHttpSession 
 
- 
getOrCreate
@Nonnull public static WebAuthRequestCollection getOrCreate(@Nonnull GatewayContext gatewayContext, @Nonnull javax.servlet.http.HttpServletRequest httpServletRequest)
Gets theWebAuthRequestCollectionassociated with theHttpSessionon the givenHttpServletRequest. If aWebAuthRequestCollectiondoes not exist on the session, a new instance is created, set on the session, and returned.- Parameters:
 gatewayContext- the currently executingGatewayContexthttpServletRequest- theHttpServletRequestwhich contains theHttpSessionholding theWebAuthRequestCollection- Returns:
 - the 
WebAuthRequestCollectionassociated with the givenHttpServletRequest'sHttpSession - See Also:
 getOrCreate(GatewayContext, HttpSession)
 
- 
getOrCreate
@Nonnull public static WebAuthRequestCollection getOrCreate(@Nonnull RequestContext req)
Gets theWebAuthRequestCollectionassociated with theHttpSessionon the givenRequestContext. If aWebAuthRequestCollectiondoes not exist on the session, a new instance is created, set on the session, and returned.- Parameters:
 req- theRequestContextwhich contains theHttpSessionholding theWebAuthRequestCollection- Returns:
 - the 
WebAuthRequestCollectionassociated with the givenRequestContext'sHttpSession - See Also:
 getOrCreate(GatewayContext, HttpServletRequest)
 
- 
get
@Nonnull public java.util.Optional<WebAuthRequestCollection.WebAuthCallback> get(@Nonnull java.lang.String state)
Fetch theWebAuthRequestCollection.WebAuthCallbackassociated with the given relay state value- Parameters:
 state- the relay state value- Returns:
 - an 
Optionalcontaining theWebAuthRequestCollection.WebAuthCallbackassociated with the given relay state or an emptyOptionalif there is noWebAuthRequestCollection.WebAuthCallbackassociated with the given relay state 
 
- 
remove
@Nonnull public java.util.Optional<WebAuthRequestCollection.WebAuthCallback> remove(@Nonnull java.lang.String state)
Remove theWebAuthRequestCollection.WebAuthCallbackassociated with the given relay state value- Parameters:
 state- the relay state value- Returns:
 - an 
Optionalcontaining theWebAuthRequestCollection.WebAuthCallbackassociated with the given relay state or an emptyOptionalif there is noWebAuthRequestCollection.WebAuthCallbackassociated with the given relay state 
 
- 
valueBound
public void valueBound(javax.servlet.http.HttpSessionBindingEvent event)
- Specified by:
 valueBoundin interfacejavax.servlet.http.HttpSessionBindingListener
 
- 
valueUnbound
public void valueUnbound(javax.servlet.http.HttpSessionBindingEvent event)
- Specified by:
 valueUnboundin interfacejavax.servlet.http.HttpSessionBindingListener
 
- 
onStartup
protected void onStartup()
- Specified by:
 onStartupin classAbstractLifecycle
 
- 
onShutdown
protected void onShutdown()
- Specified by:
 onShutdownin classAbstractLifecycle
 
- 
registerHandler
public void registerHandler(java.lang.String state, java.lang.String app, WebAuthRequestCollection.WebAuthResponseHandler handler)Allows you to manually register a state key to a given handler.- Parameters:
 state- the state key used to retrieveWebAuthRequestCollection.WebAuthCallbackinstead of using the state key generated from theWebAuthStateapp- the app's namehandler- theWebAuthRequestCollection.WebAuthResponseHandlerto handle the web auth response for this request
 
- 
createLoginRequest
@Nonnull public WebAuthRequestCollection.LoginRequestBuilder createLoginRequest()
- Returns:
 - a new 
WebAuthRequestCollection.LoginRequestBuilderinstance 
 
- 
createLogoutRequest
@Nonnull public WebAuthRequestCollection.LogoutRequestBuilder createLogoutRequest()
- Returns:
 - a new 
WebAuthRequestCollection.LogoutRequestBuilderinstance 
 
 - 
 
 -