|
2 | 2 |
|
3 | 3 | import java.io.FileNotFoundException; |
4 | 4 | import java.io.IOException; |
| 5 | +import java.net.ConnectException; |
5 | 6 |
|
6 | 7 | import javax.servlet.ServletConfig; |
7 | 8 | import javax.servlet.ServletException; |
8 | 9 | import javax.servlet.http.HttpServlet; |
9 | 10 | import javax.servlet.http.HttpServletRequest; |
10 | 11 | import javax.servlet.http.HttpServletResponse; |
| 12 | +import javax.ws.rs.WebApplicationException; |
11 | 13 |
|
12 | 14 | import org.apache.log4j.Logger; |
13 | 15 | import org.codehaus.jackson.map.ObjectMapper; |
@@ -38,68 +40,69 @@ public class RdfStoreProxy extends HttpServlet { |
38 | 40 |
|
39 | 41 | @Override |
40 | 42 | public void init(ServletConfig config) throws ServletException { |
41 | | - super.init(config); |
42 | | - FrameworkConfiguration frameworkConf; |
43 | | - try { |
44 | | - // TODO: parameterize from client the to reset configuration |
45 | | - frameworkConf = FrameworkConfiguration |
46 | | - .getInstance(getServletContext()); |
47 | | - frameworkUserManager = frameworkConf.getFrameworkUserManager(); |
48 | | - frameworkRdfStoreManager = new SecureRdfStoreManagerImpl( |
49 | | - frameworkConf.getAuthSparqlEndpoint(), |
50 | | - frameworkConf.getAuthSparqlUser(), |
51 | | - frameworkConf.getAuthSparqlPassword()); |
52 | | - } catch (FileNotFoundException e) { |
53 | | - throw new ServletException(e.getLocalizedMessage(), e); |
54 | | - } catch (Exception e) { |
55 | | - throw new ServletException(e.getLocalizedMessage(), e); |
56 | | - } |
| 43 | + super.init(config); |
| 44 | + FrameworkConfiguration frameworkConf; |
| 45 | + try { |
| 46 | + // TODO: parameterize from client the to reset configuration |
| 47 | + frameworkConf = FrameworkConfiguration.getInstance(getServletContext()); |
| 48 | + frameworkUserManager = frameworkConf.getFrameworkUserManager(); |
| 49 | + frameworkRdfStoreManager = new SecureRdfStoreManagerImpl(frameworkConf |
| 50 | + .getAuthSparqlEndpoint(), frameworkConf.getAuthSparqlUser(), frameworkConf |
| 51 | + .getAuthSparqlPassword()); |
| 52 | + } catch (FileNotFoundException e) { |
| 53 | + throw new ServletException(e.getLocalizedMessage(), e); |
| 54 | + } catch (Exception e) { |
| 55 | + throw new ServletException(e.getLocalizedMessage(), e); |
| 56 | + } |
57 | 57 |
|
58 | 58 | } |
59 | 59 |
|
60 | 60 | @Override |
61 | 61 | protected void doPost(HttpServletRequest req, HttpServletResponse resp) |
62 | | - throws ServletException, IOException { |
63 | | - doGet(req, resp); |
| 62 | + throws ServletException, IOException { |
| 63 | + doGet(req, resp); |
64 | 64 | } |
65 | 65 |
|
66 | 66 | @Override |
67 | | - protected void doGet(HttpServletRequest req, HttpServletResponse resp) |
68 | | - throws ServletException, IOException { |
69 | | - String responseFormat = req.getParameter("format"); |
70 | | - String username = req.getParameter("username"); |
71 | | - String token = HttpUtils.getCookieValue(req, "token"); |
72 | | - String mode = req.getParameter("mode"); |
73 | | - String query = req.getParameter("query"); |
| 67 | + protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, |
| 68 | + IOException { |
| 69 | + String responseFormat = req.getParameter("format"); |
| 70 | + String username = req.getParameter("username"); |
| 71 | + String token = HttpUtils.getCookieValue(req, "token"); |
| 72 | + String mode = req.getParameter("mode"); |
| 73 | + String query = req.getParameter("query"); |
74 | 74 |
|
75 | | - log.debug("mode " + mode); |
76 | | - log.debug("username " + username); |
| 75 | + log.debug("mode " + mode); |
| 76 | + log.debug("username " + username); |
77 | 77 |
|
78 | | - try { |
79 | | - RdfStoreManager rdfStoreManager; |
80 | | - if ("settings".equals(mode)) { // framework manages settings graphs |
81 | | - // (public setting for unauthorized |
82 | | - // user) |
83 | | - rdfStoreManager = frameworkRdfStoreManager; |
84 | | - } else if (username != null && !username.isEmpty()) { |
85 | | - System.out.println("username:" + username); |
86 | | - boolean valid = frameworkUserManager |
87 | | - .checkToken(username, token); |
88 | | - if (!valid) |
89 | | - throw new ServletException("invalid token"); |
90 | | - rdfStoreManager = frameworkUserManager |
91 | | - .getRdfStoreManager(username); |
92 | | - } else { |
93 | | - System.out.println("new RdfStoreManagerImpl"); |
94 | | - rdfStoreManager = new RdfStoreManagerImpl( |
95 | | - FrameworkConfiguration.getInstance(getServletContext()) |
96 | | - .getPublicSparqlEndpoint()); |
97 | | - } |
98 | | - String result = rdfStoreManager.execute(query, responseFormat); |
99 | | - resp.setContentType(responseFormat); |
100 | | - resp.getWriter().print(result); |
101 | | - } catch (Exception e) { |
102 | | - throw new ServletException(e); |
103 | | - } |
| 78 | + try { |
| 79 | + RdfStoreManager rdfStoreManager; |
| 80 | + if ("settings".equals(mode)) { // framework manages settings graphs |
| 81 | + // (public setting for unauthorized |
| 82 | + // user) |
| 83 | + rdfStoreManager = frameworkRdfStoreManager; |
| 84 | + } else if (username != null && !username.isEmpty()) { |
| 85 | + System.out.println("username:" + username); |
| 86 | + boolean valid = frameworkUserManager.checkToken(username, token); |
| 87 | + if (!valid) |
| 88 | + throw new ServletException("invalid token"); |
| 89 | + rdfStoreManager = frameworkUserManager.getRdfStoreManager(username); |
| 90 | + } else { |
| 91 | + System.out.println("new RdfStoreManagerImpl"); |
| 92 | + rdfStoreManager = new RdfStoreManagerImpl(FrameworkConfiguration.getInstance( |
| 93 | + getServletContext()).getPublicSparqlEndpoint()); |
| 94 | + } |
| 95 | + String result = rdfStoreManager.execute(query, responseFormat); |
| 96 | + resp.setContentType(responseFormat); |
| 97 | + resp.getWriter().print(result); |
| 98 | + } catch (ConnectException e) { |
| 99 | + // 503 Service Unavailable |
| 100 | + log.error(e); |
| 101 | + throw new WebApplicationException(503); |
| 102 | + } catch (Exception e) { |
| 103 | + log.error(e); |
| 104 | + e.printStackTrace(); |
| 105 | + throw new WebApplicationException(500); |
| 106 | + } |
104 | 107 | } |
105 | 108 | } |
0 commit comments