public class CompositeSessionAuthenticationStrategy extends java.lang.Object implements SessionAuthenticationStrategy
SessionAuthenticationStrategy
that accepts multiple
SessionAuthenticationStrategy
implementations to delegate to. Each
SessionAuthenticationStrategy
is invoked in turn. The invocations are short
circuited if any exception, (i.e. SessionAuthenticationException) is thrown.
Typical usage would include having the following delegates (in this order)
ConcurrentSessionControlAuthenticationStrategy
- verifies that a user is
allowed to authenticate (i.e. they have not already logged into the application.SessionFixationProtectionStrategy
- If session fixation is desired,
SessionFixationProtectionStrategy
should be after
ConcurrentSessionControlAuthenticationStrategy
to prevent unnecessary
HttpSession
creation if the
ConcurrentSessionControlAuthenticationStrategy
rejects authentication.RegisterSessionAuthenticationStrategy
- It is important this is after
SessionFixationProtectionStrategy
so that the correct session is registered.
Constructor and Description |
---|
CompositeSessionAuthenticationStrategy(java.util.List<SessionAuthenticationStrategy> delegateStrategies) |
Modifier and Type | Method and Description |
---|---|
void |
onAuthentication(Authentication authentication,
javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response)
Performs Http session-related functionality when a new authentication occurs.
|
java.lang.String |
toString() |
public CompositeSessionAuthenticationStrategy(java.util.List<SessionAuthenticationStrategy> delegateStrategies)
public void onAuthentication(Authentication authentication, javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws SessionAuthenticationException
SessionAuthenticationStrategy
onAuthentication
in interface SessionAuthenticationStrategy
SessionAuthenticationException
- if it is decided that the authentication is
not allowed for the session. This will typically be because the user has too many
sessions open at once.public java.lang.String toString()
toString
in class java.lang.Object