Class PerspectiveSessionCollection
- java.lang.Object
-
- com.inductiveautomation.ignition.common.lifecycle.AbstractLifecycle
-
- com.inductiveautomation.perspective.gateway.session.PerspectiveSessionCollection
-
- All Implemented Interfaces:
java.util.EventListener,javax.servlet.http.HttpSessionBindingListener
public class PerspectiveSessionCollection extends AbstractLifecycle implements javax.servlet.http.HttpSessionBindingListener
This is the top level of session object for a collection of "project" sessions. A given "auth session" (which correlates to a browser instance) can run multiple projects simultaneously because of tabbed browsing.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classPerspectiveSessionCollection.Builder
-
Field Summary
Fields Modifier and Type Field Description PerspectiveContextcontextjava.lang.Stringidid of the parent HttpSession that owns usSessionScopescope"scope" of this session - Client or Designerstatic java.lang.StringSESSION_KEYThis is the name ( "perspective-session" ) used to store this object on an HttpSessionjava.lang.StringuuidUUID to help keep track of sessions by session monitor.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static PerspectiveSessionCollection.Builderbuilder()java.util.Optional<InternalSession>findProjectSession(java.lang.String project)PerspectiveContextgetContext()NativeDevicegetDevice()com.inductiveautomation.ignition.common.gson.GsongetGson()java.util.LocalegetLocale()Returns the preferredLocalethat the client will accept content in, based on the Accept-Language header.java.util.List<java.util.Locale>getLocales()Returns aListofLocaleobjects indicating, in decreasing order starting with the preferred locale, the locales that are acceptable to the client based on the Accept-Language header in the request which created this session.InternalSessiongetOrCreateSession(java.lang.String projectName)Fetch theInternalSessionassociated with the given project name and version or create one if it does not exist in this session collection.InternalSessiongetOrCreateSession(java.lang.String projectName, java.util.UUID sessionId)java.lang.LonggetRecentBytesSent()SessionScopegetScope()com.google.common.collect.ImmutableCollection<java.lang.String>getSecurityZones()java.math.BigIntegergetTotalBytesSent()voidhandleLogs(LogMessage log)Called when the client has POSTed log messages back to the server.booleanisBrokeredAuth()booleanisValidMobile()booleanisValidWorkstation()voidnotifyConnected(MessageChannel channel)voidnotifyDisconnected(MessageChannel channel)voidonShutdown()Stops any ongoing processes running as part of the project running in this session.protected voidonStartup()voidreceive(MessageChannel channel, java.lang.String protocol, java.io.Reader payload)voidsetRecentBytesSent(java.lang.Long recentBytesSent)voidvalidate(java.lang.String challengeResponse)Received challenge response from mobile devicevoidvalueBound(javax.servlet.http.HttpSessionBindingEvent event)voidvalueUnbound(javax.servlet.http.HttpSessionBindingEvent event)-
Methods inherited from class com.inductiveautomation.ignition.common.lifecycle.AbstractLifecycle
isRunning, shutdown, startup
-
-
-
-
Field Detail
-
SESSION_KEY
public static final java.lang.String SESSION_KEY
This is the name ( "perspective-session" ) used to store this object on an HttpSession- See Also:
- Constant Field Values
-
context
public final PerspectiveContext context
-
id
public final java.lang.String id
id of the parent HttpSession that owns us
-
uuid
public final java.lang.String uuid
UUID to help keep track of sessions by session monitor.
-
scope
public final SessionScope scope
"scope" of this session - Client or Designer
-
-
Method Detail
-
getGson
public com.inductiveautomation.ignition.common.gson.Gson getGson()
-
getLocale
public java.util.Locale getLocale()
Returns the preferredLocalethat the client will accept content in, based on the Accept-Language header. If the client request doesn't provide an Accept-Language header, this method returns the default locale for the server.- Returns:
- the preferred
Localefor the client
-
isValidMobile
public boolean isValidMobile()
-
isValidWorkstation
public boolean isValidWorkstation()
-
isBrokeredAuth
public boolean isBrokeredAuth()
-
getDevice
public NativeDevice getDevice()
-
validate
public void validate(@Nullable java.lang.String challengeResponse)Received challenge response from mobile device
-
getLocales
public java.util.List<java.util.Locale> getLocales()
Returns aListofLocaleobjects indicating, in decreasing order starting with the preferred locale, the locales that are acceptable to the client based on the Accept-Language header in the request which created this session. If the client request doesn't provide an Accept-Language header, this method returns aListcontaining oneLocale, the default locale for the server.- Returns:
- a
Listof preferredLocaleobjects for the client
-
getOrCreateSession
@Nonnull public InternalSession getOrCreateSession(@Nonnull java.lang.String projectName)
Fetch theInternalSessionassociated with the given project name and version or create one if it does not exist in this session collection.- Parameters:
projectName- the project name- Returns:
- the
InternalSessionassociated with the given project name and version in a running state
-
getOrCreateSession
@Nonnull public InternalSession getOrCreateSession(@Nonnull java.lang.String projectName, java.util.UUID sessionId)
-
findProjectSession
@Nonnull public java.util.Optional<InternalSession> findProjectSession(@Nonnull java.lang.String project)
-
getScope
public SessionScope getScope()
-
getContext
public PerspectiveContext getContext()
-
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
public void onShutdown()
Stops any ongoing processes running as part of the project running in this session.- Specified by:
onShutdownin classAbstractLifecycle
-
notifyConnected
public void notifyConnected(MessageChannel channel)
-
notifyDisconnected
public void notifyDisconnected(MessageChannel channel)
-
receive
public void receive(MessageChannel channel, java.lang.String protocol, java.io.Reader payload)
-
handleLogs
public void handleLogs(LogMessage log)
Called when the client has POSTed log messages back to the server.
-
builder
@Nonnull public static PerspectiveSessionCollection.Builder builder()
-
getSecurityZones
@Nonnull public com.google.common.collect.ImmutableCollection<java.lang.String> getSecurityZones()
-
getTotalBytesSent
public java.math.BigInteger getTotalBytesSent()
-
getRecentBytesSent
public java.lang.Long getRecentBytesSent()
-
setRecentBytesSent
public void setRecentBytesSent(java.lang.Long recentBytesSent)
-
-