Projekt

Obecné

Profil

« Předchozí | Další » 

Revize 05381d82

Přidáno uživatelem Pavel Fidranský před více než 6 roky(ů)

minor servlet improvements

Zobrazit rozdíly:

sources/src/main/java/cz/zcu/kiv/offscreen/servlets/UploadFiles.java
24 24

  
25 25
    @Override
26 26
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
27
        doPost(request, response);
28
    }
29

  
30
    @Override
31
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
32

  
33
        if (ServletFileUpload.isMultipartContent(request)) {
34
            String jsonGraph = new FileManager("","").loadFile(request);
35

  
36
            if(Strings.isNullOrEmpty(jsonGraph)){
37
                request.setAttribute("errorMessage", "<strong>Unsupported file</strong><br/>");
38
            } else {
39
                request.getSession().setAttribute("json_graph", jsonGraph);
40
                response.sendRedirect(getServletContext().getInitParameter("HOME_URL") + "graph");
41
                return;
42
            }
43
        }
44

  
45 27
        DB db = new DB(getServletContext());
46 28
        Diagram diagram = new Diagram(db);
47 29

  
......
60 42
        RequestDispatcher rd = getServletContext().getRequestDispatcher("/uploadFiles.jsp");
61 43
        rd.forward(request, response);
62 44
    }
45

  
46
    @Override
47
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
48
        String jsonGraph = new FileManager("","").loadFile(request);
49

  
50
        if (Strings.isNullOrEmpty(jsonGraph)) {
51
            request.setAttribute("errorMessage", "<strong>Unsupported file</strong><br/>");
52
            doGet(request, response);
53
        } else {
54
            request.getSession().setAttribute("json_graph", jsonGraph);
55
            response.sendRedirect(getServletContext().getInitParameter("HOME_URL") + "graph");
56
        }
57
    }
63 58
}
sources/src/main/java/cz/zcu/kiv/offscreen/servlets/api/LoadGraphData.java
13 13
import cz.zcu.kiv.offscreen.user.Diagram;
14 14
import net.sf.json.JSONObject;
15 15

  
16
import javax.servlet.ServletException;
17 16
import javax.servlet.http.HttpServletRequest;
18 17
import javax.servlet.http.HttpServletResponse;
19 18
import java.io.File;
......
30 29
     * graph is returned as JSON in response body.
31 30
     */
32 31
    @Override
33
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
34

  
32
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
35 33
        response.setContentType("application/json");
36 34
        response.setCharacterEncoding("UTF-8");
37 35

  
38 36
        if (request.getSession().getAttribute("demo_id") == null) {
39

  
40 37
            String diagram_id = request.getParameter("diagramId");
41 38

  
42 39
            if (diagram_id == null) {
......
66 63

  
67 64
            return json.toString();
68 65
        }
69
        return "";
66

  
67
        return "";  // TODO: ugly fallback
70 68
    }
71 69

  
72 70
    /**
73 71
     * Return json of diagram which is taken from database. Permissions of user to this diagram is checked.
74 72
     */
75 73
    private String getDiagramById(HttpServletRequest request, int diagramId){
76

  
77 74
        DB db = new DB(getServletContext());
78 75
        Diagram diagram = new Diagram(db, diagramId);
79 76

  
80
        if(!diagram.isPublic()){
81
            // Diagram is not public
77
        if (diagram.isPublic()) {
78
            return diagram.getJsonDiagram();
79
        }
80

  
81
        // diagram is not public
82
        if (isLoggedIn(request)) {
83
            int loggedUserId = getUserId(request);
82 84

  
83
            if (!isLoggedIn(request) || diagram.getUserId() != getUserId(request)) {
84
                return ""; // User is not logged in or is not owner of diagram
85
            if (diagram.getUserId() == loggedUserId) {
86
                return diagram.getJsonDiagram();
85 87
            }
86 88
        }
87 89

  
88
        return diagram.getJsonDiagram();
90
        // User is not logged in or is not owner of diagram
91
        return "";  // TODO: ugly fallback
89 92
    }
90 93

  
91 94
    /**
sources/src/main/java/cz/zcu/kiv/offscreen/servlets/api/Register.java
59 59
    		errors.put("user_password", "Passwords must be at least 5 characters long.");
60 60
    	}
61 61

  
62
    	JSONObject json = new JSONObject();
63
    	
64 62
    	if (errors.isEmpty()) {
65 63
    		Map<String, String> userMap = new HashMap<>();
66 64
    		userMap.put("name", name);
......
74 72
			response.setStatus(HttpServletResponse.SC_CREATED);
75 73

  
76 74
    	} else {
77
    		json.put("error", errors);
78
			response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
79
    	}
75
			JSONObject json = new JSONObject();
76
			json.put("error", new JSONObject(errors));
80 77

  
81
		response.setContentType("application/json");
82
		response.getWriter().write(json.toString());
83
		response.getWriter().flush();
78
			response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
79
			response.setContentType("application/json");
80
			response.getWriter().write(json.toString());
81
			response.getWriter().flush();
82
		}
84 83
    }
85 84
    
86 85
    /**
sources/src/main/java/cz/zcu/kiv/offscreen/servlets/api/RemoveDiagram.java
12 12

  
13 13
    @Override
14 14
    protected void doDelete(HttpServletRequest request, HttpServletResponse response) throws IOException {
15

  
16 15
        if (!isLoggedIn(request)) {
17
            response.sendError(response.SC_UNAUTHORIZED);
16
            response.sendError(HttpServletResponse.SC_UNAUTHORIZED);
18 17
            return;
19 18
        }
20 19

  
21
        if(request.getParameter("diagram_id") == null){
22
            response.sendError(response.SC_BAD_REQUEST);
20
        if (request.getParameter("diagram_id") == null) {
21
            response.sendError(HttpServletResponse.SC_BAD_REQUEST);
23 22
            return;
24 23
        }
25 24

  
......
29 28
        DB db = new DB(getServletContext());
30 29
        Diagram diagram = new Diagram(db, diagramId);
31 30

  
32
        if(diagram.getUserId() != loggedUserId){
33
            response.sendError(response.SC_UNAUTHORIZED);
31
        if (diagram.getUserId() != loggedUserId) {
32
            response.sendError(HttpServletResponse.SC_UNAUTHORIZED);
34 33
            return;
35 34
        }
36 35

  
37 36
        diagram.delete();
38
        response.sendRedirect("/");
37

  
38
        response.setStatus(HttpServletResponse.SC_NO_CONTENT);
39 39
    }
40 40
}
sources/src/main/java/cz/zcu/kiv/offscreen/servlets/api/SaveDiagram.java
16 16

  
17 17
    @Override
18 18
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException {
19

  
20
        // user is not logged in
21 19
        if (!isLoggedIn(request)) {
22
            response.sendError(response.SC_UNAUTHORIZED);
20
            response.sendError(HttpServletResponse.SC_UNAUTHORIZED);
23 21
            return;
24 22
        }
25 23

  
......
32 30

  
33 31
        // input parameters are invalid
34 32
        if (Strings.isNullOrEmpty(name) || Strings.isNullOrEmpty(graphJson)) {
35
            response.sendError(response.SC_BAD_REQUEST);
33
            response.sendError(HttpServletResponse.SC_BAD_REQUEST);
36 34
            return;
37 35
        }
38 36

  
......
50 48

  
51 49
            // user is not owner of the diagram
52 50
            if (loggedUserId != diagram.getUserId()) {
53
                response.sendError(response.SC_UNAUTHORIZED);
51
                response.sendError(HttpServletResponse.SC_UNAUTHORIZED);
54 52
                return;
55 53
            }
56 54
        }
57 55

  
58

  
59 56
        Map<String, String> diagramParams = new HashMap<>();
60 57
        diagramParams.put("name", name);
61 58
        diagramParams.put("public", isPublic);

Také k dispozici: Unified diff