Detects if there is no {@code Authentication} object in the {@code SecurityContext}, and populates the context with a remember-me authentication token if a {@link RememberMeServices} implementation so requests.
Concrete {@code RememberMeServices} implementations will have their{@link RememberMeServices#autoLogin(HttpServletRequest,HttpServletResponse)}method called by this filter. If this method returns a non-null {@code Authentication} object, it will be passedto the {@code AuthenticationManager}, so that any authentication-specific behaviour can be achieved. The resulting {@code Authentication} (if successful) will be placed into the {@code SecurityContext}.
If authentication is successful, an {@link InteractiveAuthenticationSuccessEvent} will be publishedto the application context. No events will be published if authentication was unsuccessful, because this would generally be recorded via an {@code AuthenticationManager}-specific application event.
Normally the request will be allowed to proceed regardless of whether authentication succeeds or fails. If some control over the destination for authenticated users is required, an {@link AuthenticationSuccessHandler}can be injected
@author Ben Alex
@author Luke Taylor