+ @Override
+ public boolean isPrefixPage() {
+ return false;
+ }
+
+ @Override
+ public Response handleRequest(FreenetRequest request, Response response) throws IOException {
+ if (webInterface.getCore().getPreferences().isRequireFullAccess() && !request.getToadletContext().isAllowedFullAccess()) {
+ return response.setStatusCode(403).setStatusText("Forbidden").setContentType("application/json").write(objectMapper.writeValueAsString(new JsonErrorReturnObject("auth-required")));
+ }
+ if (needsFormPassword()) {
+ String formPassword = request.getHttpRequest().getParam("formPassword");
+ if (!webInterface.getFormPassword().equals(formPassword)) {
+ return response.setStatusCode(403).setStatusText("Forbidden").setContentType("application/json").write(objectMapper.writeValueAsString(new JsonErrorReturnObject("auth-required")));
+ }
+ }
+ if (requiresLogin()) {
+ if (getCurrentSone(request.getToadletContext(), false) == null) {
+ return response.setStatusCode(403).setStatusText("Forbidden").setContentType("application/json").write(objectMapper.writeValueAsString(new JsonErrorReturnObject("auth-required")));
+ }
+ }
+ try {
+ JsonReturnObject jsonObject = createJsonObject(request);
+ return response.setStatusCode(200).setStatusText("OK").setContentType("application/json").write(objectMapper.writeValueAsString(jsonObject));
+ } catch (Exception e1) {
+ logger.log(Level.WARNING, "Error executing JSON page!", e1);
+ return response.setStatusCode(500).setStatusText(e1.getMessage()).setContentType("text/plain").write(dumpStackTrace(e1));
+ }
+ }
+
+ @Override
+ public boolean isLinkExcepted(URI link) {
+ return false;
+ }
+
+ //
+ // PRIVATE METHODS
+ //
+