Class WebAuthRequestCollection
java.lang.Object
com.inductiveautomation.ignition.common.lifecycle.AbstractLifecycle
com.inductiveautomation.ignition.gateway.auth.web.WebAuthRequestCollection
- All Implemented Interfaces:
- 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.WebAuthCallback pairs.
Each HttpSession may 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 SummaryNested ClassesModifier and TypeClassDescriptionstatic interfaceBaseWebAuthRequestCollection.WebAuthResponseHandlerinterface which provides some default method implementations common to many types of handlersclassProvides a fluent-API (builder-style) pattern for creating new login requests encoded as aURIstatic interfaceWebAuthRequestCollection.BaseWebAuthResponseHandlerwhich handles login responsesclassProvides a fluent-API (builder-style) pattern for creating new logout requests encoded as aURIstatic interfaceWebAuthRequestCollection.BaseWebAuthResponseHandlerwhich handles logout responsesstatic classWraps 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>>Provides a fluent-API (builder-style) pattern for creating new web auth requests encoded as aURIstatic interfaceHandler for web auth responsesstatic interfaceProvides context forWebAuthRequestCollection.WebAuthResponseHandlers to handle timeouts
- 
Method SummaryModifier and TypeMethodDescriptionFetch theWebAuthRequestCollection.WebAuthCallbackassociated with the given relay state valuestatic WebAuthRequestCollectionstatic WebAuthRequestCollectiongetOrCreate(GatewayContext gatewayContext, javax.servlet.http.HttpServletRequest httpServletRequest) static WebAuthRequestCollectiongetOrCreate(GatewayContext gatewayContext, javax.servlet.http.HttpSession httpSession) Gets theWebAuthRequestCollectionassociated with the givenHttpSession.protected voidprotected voidvoidregisterHandler(String state, String app, WebAuthRequestCollection.WebAuthResponseHandler handler) Allows you to manually register a state key to a given handler.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.AbstractLifecycleisRunning, shutdown, startup
- 
Method Details- 
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 executing- GatewayContext
- httpSession- the- HttpSessionholding the- WebAuthRequestCollection
- 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 executing- GatewayContext
- httpServletRequest- the- HttpServletRequestwhich contains the- HttpSessionholding the- WebAuthRequestCollection
- Returns:
- the WebAuthRequestCollectionassociated with the givenHttpServletRequest'sHttpSession
- See Also:
 
- 
getOrCreateGets 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- the- RequestContextwhich contains the- HttpSessionholding the- WebAuthRequestCollection
- Returns:
- the WebAuthRequestCollectionassociated with the givenRequestContext'sHttpSession
- See Also:
 
- 
getFetch 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
 
- 
removeRemove 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
 
- 
valueBoundpublic void valueBound(javax.servlet.http.HttpSessionBindingEvent event) - Specified by:
- valueBoundin interface- javax.servlet.http.HttpSessionBindingListener
 
- 
valueUnboundpublic void valueUnbound(javax.servlet.http.HttpSessionBindingEvent event) - Specified by:
- valueUnboundin interface- javax.servlet.http.HttpSessionBindingListener
 
- 
onStartupprotected void onStartup()- Specified by:
- onStartupin class- AbstractLifecycle
 
- 
onShutdownprotected void onShutdown()- Specified by:
- onShutdownin class- AbstractLifecycle
 
- 
registerHandlerpublic void registerHandler(String state, String app, WebAuthRequestCollection.WebAuthResponseHandler handler) Allows you to manually register a state key to a given handler.- Parameters:
- state- the state key used to retrieve- WebAuthRequestCollection.WebAuthCallbackinstead of using the state key generated from the- WebAuthState
- app- the app's name
- handler- the- WebAuthRequestCollection.WebAuthResponseHandlerto handle the web auth response for this request
 
- 
createLoginRequest- Returns:
- a new WebAuthRequestCollection.LoginRequestBuilderinstance
 
- 
createLogoutRequest- Returns:
- a new WebAuthRequestCollection.LogoutRequestBuilderinstance
 
 
-