public class ReconnectFilter extends GenericFilterBean
Servlet filter that intercepts Spring Social ApiExceptions thrown in the course of a request and attempts to reconcile any connection-related
problems by deleting the stale/revoked connection and walking the user through the connection process to obtain a new connection.
This filter handles the exceptions via the following flow:
ConnectController to kick of the authorization flow.| Constructor and Description |
|---|
ReconnectFilter(UsersConnectionRepository usersConnectionRepository,
UserIdSource userIdSource)
Creates an instance of
ReconnectFilter. |
| Modifier and Type | Method and Description |
|---|---|
void |
doFilter(javax.servlet.ServletRequest request,
javax.servlet.ServletResponse response,
javax.servlet.FilterChain chain) |
protected String |
getRefreshUrl(javax.servlet.http.HttpServletRequest request,
ApiException apiException)
Returns the URL to redirect to if it is determined that a connection needs to be renewed.
|
protected boolean |
shouldPerformRefreshPostRequest(javax.servlet.http.HttpServletRequest request)
Determines whether or not the handled request should be converted to a POST request to
ConnectController for authorization. |
addRequiredProperty, afterPropertiesSet, destroy, getFilterConfig, getFilterName, getServletContext, init, initBeanWrapper, initFilterBean, setBeanName, setEnvironment, setServletContextpublic ReconnectFilter(UsersConnectionRepository usersConnectionRepository, UserIdSource userIdSource)
ReconnectFilter.usersConnectionRepository - a UsersConnectionRepository used to create a ConnectionRepository for the current user.userIdSource - an instance of UserIdSource to obtain the current user's ID used to create a ConnectionFactory.public void doFilter(javax.servlet.ServletRequest request,
javax.servlet.ServletResponse response,
javax.servlet.FilterChain chain)
throws IOException,
javax.servlet.ServletException
IOExceptionjavax.servlet.ServletExceptionprotected String getRefreshUrl(javax.servlet.http.HttpServletRequest request, ApiException apiException)
ConnectController for authorization.
May be overridden by a subclass to handle other flows, such as redirecting to a page that informs the user that a new connection is needed.request - The HTTP request that triggered the exception.apiException - The ApiException.protected boolean shouldPerformRefreshPostRequest(javax.servlet.http.HttpServletRequest request)
ConnectController for authorization.
By default, will return true if the request is a GET request for /connect/{provider ID} and there is a "reconnect" query parameter.
May be overridden by a subclass to consider other criteria in deciding whether or not to convert the request.request - the handled request.ConnectController.