|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
public interface SessionManager
Responsible for holding onto Session
instances for optimized login.
Receives notifications as an ApplicationListener
, which should be
used to keep the Session
instances up-to-date.
SessionManager
implementations should strive to be only in-memory
representations of the database used as a performance optimization. When
possible, all changes should be made to the database as quickly and as
synchronously as possible.
Method Summary | |
---|---|
int |
close(String uuid)
If reference count for the session is less than 1, close the session. |
int |
closeAll()
Close all sessions with checking for the necessary reference counts. |
ome.model.meta.Share |
createShare(Principal principal,
boolean enabled,
long timeToLive,
String eventType,
String description,
long groupId)
|
ome.model.meta.Session |
createWithAgent(Principal principal,
String agent)
|
ome.model.meta.Session |
createWithAgent(Principal principal,
String credentials,
String agent)
|
int |
detach(String uuid)
Allows decrementing the reference count for a session without calling the actual close(String) logic. |
boolean |
executePasswordCheck(String name,
String credentials)
Executes a password check using the Executor framework. |
ome.model.meta.Session |
find(String uuid)
|
List<ome.model.meta.Session> |
findByUser(String user)
|
List<ome.model.meta.Session> |
findByUserAndAgent(String user,
String... agent)
Returns a non-null, possibly empty list of session instances belonging to the given user and with one of the given agents. |
EventContext |
getEventContext(Principal principal)
Provides a partial EventContext for the current Session . |
Object |
getInput(String session,
String key)
Returns the input environment Object stored under the given key
or null if none present. |
Object |
getOutput(String session,
String key)
Returns the output environment Object stored under the given key
or null if none present. |
int |
getReferenceCount(String uuid)
Return the number of client which are presumed to be attached to this session or throw an exception if there's no such session. |
SessionStats |
getSessionStats(String uuid)
Return the SessionStats which are being counted for the given
session or throw an exception if it has been removed. |
List<String> |
getUserRoles(String uuid)
|
net.sf.ehcache.Ehcache |
inMemoryCache(String uuid)
Returns after possibly creating an in-memory cache which
can be used throughout the session. |
Map<String,Object> |
inputEnvironment(String session)
Returns a copy of the input environment. |
void |
onApplicationEvent(org.springframework.context.ApplicationEvent event)
|
net.sf.ehcache.Ehcache |
onDiskCache(String uuid)
Returns after possibly creating an on-disk cache which
can be used throughout the session. |
Map<String,Object> |
outputEnvironment(String session)
Returns a copy of the output environment. |
void |
setInput(String session,
String key,
Object object)
Places the argument in the input environment under the
given key, possibly initializing the Map Throws an exception if
there is no Session with the given identifier. |
void |
setOutput(String session,
String key,
Object object)
Places the argument in the output environment under the
given key, possibly initializing the Map Throws an exception if
there is no Session with the given identifier. |
ome.model.IObject |
setSecurityContext(Principal principal,
ome.model.IObject obj)
Sets the context for the current session to the given value. |
ome.model.meta.Session |
update(ome.model.meta.Session session)
See ISession#updateSession(Session) for the logic that's
implemented here. |
ome.model.meta.Session |
update(ome.model.meta.Session session,
boolean trust)
Same as update(Session) but some security checks can be
overriden. |
Method Detail |
---|
ome.model.meta.Session createWithAgent(Principal principal, String credentials, String agent)
principal
- credentials
-
ome.model.meta.Session createWithAgent(Principal principal, String agent)
principal
-
ome.model.meta.Share createShare(Principal principal, boolean enabled, long timeToLive, String eventType, String description, long groupId)
principal
- enabled
-
ome.model.IObject setSecurityContext(Principal principal, ome.model.IObject obj)
ExperimenterGroup
then the active group is
changed, and any active shares are deactivated. If it is an
Share
then the share is activate (the group is
left alone). Unless otherwise specified, the user's default group is used
as the initial context. Passing any other object will result in an
ApiUsageException
.
principal
- Principal
for which the context should be set.obj
- IObject
which represents the new context.ome.model.meta.Session update(ome.model.meta.Session session)
ISession#updateSession(Session)
for the logic that's
implemented here. Certain fields from the Session
instance will
be copied and then saved to the db, as well as a new
SessionContext
created. This method assumes that the user is NOT
an admin.
ome.model.meta.Session update(ome.model.meta.Session session, boolean trust)
update(Session)
but some security checks can be
overriden. This is usually done by checking with the
SecuritySystem
but here the server is in a critical
state, and instead will trust the method invoker.
int detach(String uuid)
close(String)
logic. This is useful when it is assumed
that another user will re-attach to the same session. A timeout can still
cause the session to be removed.
uuid
-
int getReferenceCount(String uuid)
SessionStats getSessionStats(String uuid)
SessionStats
which are being counted for the given
session or throw an exception if it has been removed.
ome.model.meta.Session find(String uuid)
sessionId
-
ome.conditions.SessionTimeoutException
- if the session has timed out during this call. It will then
be removed and subsequent calls will throw a
RemovedSessionException
ome.conditions.RemovedSessionException
- if a previous call already excised this sessionList<ome.model.meta.Session> findByUser(String user)
user
-
List<ome.model.meta.Session> findByUserAndAgent(String user, String... agent)
int close(String uuid)
int closeAll()
EventContext getEventContext(Principal principal) throws ome.conditions.RemovedSessionException
EventContext
for the current Session
.
uuid
- Non null.
ome.conditions.RemovedSessionException
- if no session with the given Principal.getName()
List<String> getUserRoles(String uuid)
void onApplicationEvent(org.springframework.context.ApplicationEvent event)
onApplicationEvent
in interface org.springframework.context.ApplicationListener
boolean executePasswordCheck(String name, String credentials)
Executor
framework. Also
checks the credentials against current session uuids.
name
- credentials
- net.sf.ehcache.Ehcache inMemoryCache(String uuid)
cache
which
can be used throughout the session. On close, the cache will be disposed.
net.sf.ehcache.Ehcache onDiskCache(String uuid)
cache
which
can be used throughout the session. On close, the cache will be disposed.
Object getInput(String session, String key) throws ome.conditions.RemovedSessionException
Object
stored under the given key
or null if none present. Throws an exception if there is no
Session
with the given identifier.
session
- Not null.key
- Not null.
ome.conditions.RemovedSessionException
Object getOutput(String session, String key) throws ome.conditions.RemovedSessionException
Object
stored under the given key
or null if none present. Throws an exception if there is no
Session
with the given identifier.
session
- Not null.key
- Not null.
ome.conditions.RemovedSessionException
void setInput(String session, String key, Object object) throws ome.conditions.RemovedSessionException
argument
in the input environment under the
given key, possibly initializing the Map
Throws an exception if
there is no Session
with the given identifier.
session
- Not null.key
- Not null.object
- If null, key will be removed.
ome.conditions.RemovedSessionException
void setOutput(String session, String key, Object object) throws ome.conditions.RemovedSessionException
argument
in the output environment under the
given key, possibly initializing the Map
Throws an exception if
there is no Session
with the given identifier.
session
- Not null.key
- Not null.object
- If null, key will be removed.
ome.conditions.RemovedSessionException
Map<String,Object> inputEnvironment(String session)
Map<String,Object> outputEnvironment(String session)
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
Version: Beta4.2.1-r8614-Beta4.2-b41
Copyright © 2009 The University of Dundee. All Rights Reserved.