Package org.apache.wiki.api.spi

## Class SessionDSL

- java.lang.Object
- - org.apache.wiki.api.spi.SessionDSL

    public class SessionDSL
    extends java.lang.Object

SPI used to locate and provide `Session` instances.

### Method Summary

All Methods Instance Methods Concrete Methods
`Session` `find​(Engine engine, javax.servlet.http.HttpServletRequest request)` Returns the Session object associated with the current HTTP request.
`Session` `guest​(Engine engine)` Creates a new "guest" session containing a single user Principal `org.apache.wiki.auth.WikiPrincipal#GUEST`, plus the role principals `Role#ALL` and `Role#ANONYMOUS`.
`void` `remove​(Engine engine, javax.servlet.http.HttpServletRequest request)` Removes the wiki session associated with the user's HTTP request from the cache of wiki sessions, typically as part of a logout process.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Method Detail

#### remove

    public void remove​(Engine engine,
                       javax.servlet.http.HttpServletRequest request)

Removes the wiki session associated with the user's HTTP request from the cache of wiki sessions, typically as part of a logout process.

Parameters:
  `engine` - the wiki engine
  `request` - the users's HTTP request

#### find

    public Session find​(Engine engine,
                        javax.servlet.http.HttpServletRequest request)

Returns the Session object associated with the current HTTP request. If not found, one is created. This method is guaranteed to always return a Session, although the authentication status is unpredictable until the user attempts to log in. If the servlet request parameter is `null`, a synthetic `guest(Engine)` is returned.

When a session is created, this method attaches a WikiEventListener to the GroupManager, UserManager and AuthenticationManager, so that changes to users, groups, logins, etc. are detected automatically.

Parameters:
  `engine` - the engine
  `request` - the servlet request object
Returns:
  the existing (or newly created) session

#### guest

    public Session guest​(Engine engine)

Creates a new "guest" session containing a single user Principal `org.apache.wiki.auth.WikiPrincipal#GUEST`, plus the role principals `Role#ALL` and `Role#ANONYMOUS`. This method also adds the session as a listener for GroupManager, AuthenticationManager and UserManager events.

Parameters:
  `engine` - the wiki engine
Returns:
  the guest wiki session