A {@link SessionAuthenticationStrategy} that accepts multiple{@link SessionAuthenticationStrategy} implementations to delegate to. Each{@link SessionAuthenticationStrategy} is invoked in turn. The invocations areshort circuited if any exception, (i.e. SessionAuthenticationException) is thrown.
Typical usage would include having the following delegates (in this order)
- {@link ConcurrentSessionControlAuthenticationStrategy} - verifies that auser is allowed to authenticate (i.e. they have not already logged into the application.
- {@link SessionFixationProtectionStrategy} - If session fixation isdesired, {@link SessionFixationProtectionStrategy} should be after{@link ConcurrentSessionControlAuthenticationStrategy} to prevent unnecessary{@link HttpSession} creation if the{@link ConcurrentSessionControlAuthenticationStrategy} rejectsauthentication.
- {@link RegisterSessionAuthenticationStrategy} - It is important this isafter {@link SessionFixationProtectionStrategy} so that the correct sessionis registered.
@author Rob Winch
@since 3.2