Package org.apache.wiki.api.spi

# Class SessionDSL

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

public class SessionDSL extends Object
SPI used to locate and provide `Session` instances.

## Method Summary

Modifier and Type
Method
Description
`Session`
`find(Engine engine, jakarta.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, jakarta.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 Details

### remove

public void remove(Engine engine, jakarta.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, jakarta.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