AttsResourceHandler.java 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. package uk.ac.ic.wlgitbridge.application;
  2. import org.eclipse.jetty.http.HttpURI;
  3. import org.eclipse.jetty.server.Request;
  4. import org.eclipse.jetty.server.handler.ResourceHandler;
  5. import org.eclipse.jetty.util.MultiMap;
  6. import uk.ac.ic.wlgitbridge.writelatex.WriteLatexAPI;
  7. import uk.ac.ic.wlgitbridge.writelatex.api.request.push.exception.InvalidPostbackKeyException;
  8. import javax.servlet.ServletException;
  9. import javax.servlet.http.HttpServletRequest;
  10. import javax.servlet.http.HttpServletResponse;
  11. import java.io.IOException;
  12. /**
  13. * Created by Winston on 04/12/14.
  14. */
  15. public class AttsResourceHandler extends ResourceHandler {
  16. private final WriteLatexAPI writeLatexDataSource;
  17. public AttsResourceHandler(WriteLatexAPI writeLatexDataSource) {
  18. this.writeLatexDataSource = writeLatexDataSource;
  19. }
  20. @Override
  21. public void handle(String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
  22. HttpURI uri = baseRequest.getUri();
  23. System.out.println(baseRequest.getMethod() + " " + uri);
  24. MultiMap<String> multimap = new MultiMap<String>();
  25. uri.decodeQueryTo(multimap);
  26. String[] pathSections = uri.getPath().split("/");
  27. String key = multimap.getString("key");
  28. if (key == null || pathSections.length < 2) {
  29. throw new ServletException();
  30. }
  31. try {
  32. writeLatexDataSource.checkPostbackKey(pathSections[1], key);
  33. } catch (InvalidPostbackKeyException e) {
  34. throw new ServletException();
  35. }
  36. System.out.println(multimap);
  37. if (false) {
  38. throw new ServletException();
  39. }
  40. super.handle(target, baseRequest, request, response);
  41. }
  42. }