package security; import java.io.IOException; import javax.servlet.FilterChain; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletRequest; import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.web.filter.GenericFilterBean; import entities.security.UserInfo; import exceptions.NonValidTokenException; public class TokenAuthenticationFilter extends GenericFilterBean { private static final String HEADER_TOKEN_FIELD = "oauth2-token"; @Override public void doFilter(final ServletRequest request, final ServletResponse response, final FilterChain chain) throws IOException, ServletException { final HttpServletRequest httpRequest = (HttpServletRequest) request; final String accessToken = httpRequest.getHeader(HEADER_TOKEN_FIELD); //just pass the token into the credentials object of the UsernamePasswordAuthenticationToken class final UsernamePasswordAuthenticationToken authentication = new UsernamePasswordAuthenticationToken("google-user", accessToken); SecurityContextHolder.getContext().setAuthentication(authentication); chain.doFilter(request, response); } }