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
-
-