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 Summary
Nested 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 Summary
Modifier 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.AbstractLifecycle
isRunning, 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 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
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:
-
get
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
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(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 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
- Returns:
- a new
WebAuthRequestCollection.LoginRequestBuilderinstance
-
createLogoutRequest
- Returns:
- a new
WebAuthRequestCollection.LogoutRequestBuilderinstance
-