From 8e3c13bd4c7cfde69110f082ce1bdbc9c1d17234 Mon Sep 17 00:00:00 2001 From: j2blake Date: Fri, 15 Apr 2011 22:01:08 +0000 Subject: [PATCH] NIHVIVO-2492 Restrict JenaIngest, JenaExport, RDFUpload and SparqlQuery pages --- .../controller/SparqlQueryBuilderServlet.java | 58 +------------------ .../webapp/controller/SparqlQueryServlet.java | 3 + .../freemarker/SiteAdminController.java | 5 +- .../controller/jena/JenaExportController.java | 3 + .../controller/jena/JenaIngestController.java | 8 +-- .../jena/RDFUploadFormController.java | 9 ++- webapp/web/admin/sparql.jsp | 3 + webapp/web/admin/sparqlquery/sparqlForm.jsp | 3 + webapp/web/jenaIngest/connectDB.jsp | 2 + webapp/web/jenaIngest/createModel.jsp | 3 + webapp/web/jenaIngest/csv2rdf.jsp | 2 + webapp/web/jenaIngest/csv2rdfSelectUri.jsp | 2 + webapp/web/jenaIngest/executeWorkflow.jsp | 2 + webapp/web/jenaIngest/exportSelection.jsp | 3 +- webapp/web/jenaIngest/generateTBox.jsp | 2 + webapp/web/jenaIngest/ingestMenu.jsp | 3 + webapp/web/jenaIngest/listModels.jsp | 2 + webapp/web/jenaIngest/loadRDFData.jsp | 3 + webapp/web/jenaIngest/mergeIndividuals.jsp | 3 + webapp/web/jenaIngest/merge_result.jsp | 4 +- webapp/web/jenaIngest/permanentURI.jsp | 3 + webapp/web/jenaIngest/processStrings.jsp | 2 + webapp/web/jenaIngest/renameBNodes.jsp | 3 + .../web/jenaIngest/renameBNodesURISelect.jsp | 2 + webapp/web/jenaIngest/renameResource.jsp | 6 +- webapp/web/jenaIngest/renameResult.jsp | 3 +- webapp/web/jenaIngest/smushSingleModel.jsp | 2 + webapp/web/jenaIngest/sparqlConstruct.jsp | 2 + webapp/web/jenaIngest/splitPropertyValues.jsp | 2 + webapp/web/jenaIngest/subtractModels.jsp | 2 + webapp/web/jenaIngest/workflowStep.jsp | 2 + webapp/web/jenaIngest/xmlFileUpload.jsp | 2 + .../web/jenaIngest/xmlFileUploadSuccess.jsp | 8 +-- .../templates/edit/specific/upload_rdf.jsp | 3 +- 34 files changed, 89 insertions(+), 76 deletions(-) diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/SparqlQueryBuilderServlet.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/SparqlQueryBuilderServlet.java index ff2672898..cd4ae8ab5 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/SparqlQueryBuilderServlet.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/SparqlQueryBuilderServlet.java @@ -1,86 +1,34 @@ /* $This file is distributed under the terms of the license in /doc/license.txt$ */ -/* -Copyright (c) 2010, Cornell University -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - * Neither the name of Cornell University nor the names of its contributors - may be used to endorse or promote products derived from this software - without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ package edu.cornell.mannlib.vitro.webapp.controller; import java.io.IOException; -import java.io.OutputStream; -import java.io.Writer; -import java.net.URLDecoder; -import java.util.ArrayList; import java.util.HashMap; -import java.util.Iterator; -import java.util.LinkedList; -import java.util.List; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import com.hp.hpl.jena.query.DataSource; -import com.hp.hpl.jena.query.DatasetFactory; -import com.hp.hpl.jena.query.Query; -import com.hp.hpl.jena.query.QueryExecution; -import com.hp.hpl.jena.query.QueryExecutionFactory; -import com.hp.hpl.jena.query.QueryFactory; -import com.hp.hpl.jena.query.QuerySolution; -import com.hp.hpl.jena.query.ResultSet; -import com.hp.hpl.jena.query.ResultSetFormatter; import com.hp.hpl.jena.query.Syntax; -import com.hp.hpl.jena.rdf.model.Literal; import com.hp.hpl.jena.rdf.model.Model; -import com.hp.hpl.jena.rdf.model.ModelMaker; -import com.hp.hpl.jena.rdf.model.Resource; import com.hp.hpl.jena.sparql.resultset.ResultSetFormat; -import com.hp.hpl.jena.vocabulary.XSD; -import edu.cornell.mannlib.vedit.beans.LoginFormBean; import edu.cornell.mannlib.vedit.controller.BaseEditController; +import edu.cornell.mannlib.vitro.webapp.auth.policy.PolicyHelper.RequiresAuthorizationFor; +import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.UseAdvancedDataToolsPages; import edu.cornell.mannlib.vitro.webapp.beans.Portal; -/* @author ass92 */ - -import edu.cornell.mannlib.vitro.webapp.beans.Ontology; -import edu.cornell.mannlib.vitro.webapp.dao.OntologyDao; - /** * This servlet works as a RequestDispatcher to direct to the sparl query builder page. * @author yuysun */ - +@RequiresAuthorizationFor(UseAdvancedDataToolsPages.class) public class SparqlQueryBuilderServlet extends BaseEditController { private static final Log log = LogFactory.getLog(SparqlQueryBuilderServlet.class.getName()); diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/SparqlQueryServlet.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/SparqlQueryServlet.java index d54c97b13..183ec7672 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/SparqlQueryServlet.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/SparqlQueryServlet.java @@ -47,6 +47,8 @@ import com.hp.hpl.jena.vocabulary.XSD; import edu.cornell.mannlib.vedit.beans.LoginStatusBean; import edu.cornell.mannlib.vedit.controller.BaseEditController; +import edu.cornell.mannlib.vitro.webapp.auth.policy.PolicyHelper.RequiresAuthorizationFor; +import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.UseAdvancedDataToolsPages; import edu.cornell.mannlib.vitro.webapp.beans.Ontology; import edu.cornell.mannlib.vitro.webapp.beans.Portal; import edu.cornell.mannlib.vitro.webapp.dao.OntologyDao; @@ -59,6 +61,7 @@ import edu.cornell.mannlib.vitro.webapp.dao.OntologyDao; * @author bdc34 * */ +@RequiresAuthorizationFor(UseAdvancedDataToolsPages.class) public class SparqlQueryServlet extends BaseEditController { private static final Log log = LogFactory.getLog(SparqlQueryServlet.class.getName()); diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/freemarker/SiteAdminController.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/freemarker/SiteAdminController.java index 68479d1e0..5924ce24f 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/freemarker/SiteAdminController.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/freemarker/SiteAdminController.java @@ -15,10 +15,11 @@ import org.apache.commons.logging.LogFactory; import edu.cornell.mannlib.vedit.beans.LoginStatusBean; import edu.cornell.mannlib.vedit.util.FormUtils; +import edu.cornell.mannlib.vitro.webapp.auth.policy.PolicyHelper; +import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.UseAdvancedDataToolsPages; import edu.cornell.mannlib.vitro.webapp.beans.VClassGroup; import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest; import edu.cornell.mannlib.vitro.webapp.controller.freemarker.UrlBuilder.ParamMap; -import edu.cornell.mannlib.vitro.webapp.controller.freemarker.UrlBuilder.Route; import edu.cornell.mannlib.vitro.webapp.controller.freemarker.responsevalues.ResponseValues; import edu.cornell.mannlib.vitro.webapp.controller.freemarker.responsevalues.TemplateResponseValues; import edu.cornell.mannlib.vitro.webapp.dao.WebappDaoFactory; @@ -70,7 +71,7 @@ public class SiteAdminController extends FreemarkerHttpServlet { body.put("siteConfig", getSiteConfigurationData(vreq, urlBuilder)); body.put("ontologyEditor", getOntologyEditorData(vreq, urlBuilder)); - if (loginBean.isLoggedInAtLeast(LoginStatusBean.DBA)) { + if (PolicyHelper.isAuthorized(vreq, UseAdvancedDataToolsPages.class)) { body.put("dataTools", getDataToolsData(vreq, urlBuilder)); // Only for DataStar. Should handle without needing a DataStar-specific version of this controller. diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/jena/JenaExportController.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/jena/JenaExportController.java index 16b295faa..e6c51a3e6 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/jena/JenaExportController.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/jena/JenaExportController.java @@ -19,12 +19,15 @@ import com.hp.hpl.jena.rdf.model.ModelFactory; import com.hp.hpl.jena.shared.Lock; import edu.cornell.mannlib.vedit.controller.BaseEditController; +import edu.cornell.mannlib.vitro.webapp.auth.policy.PolicyHelper.RequiresAuthorizationFor; +import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.UseAdvancedDataToolsPages; import edu.cornell.mannlib.vitro.webapp.controller.Controllers; import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest; import edu.cornell.mannlib.vitro.webapp.dao.jena.JenaModelUtils; import edu.cornell.mannlib.vitro.webapp.dao.jena.ModelContext; import edu.cornell.mannlib.vitro.webapp.servlet.setup.JenaDataSourceSetupBase; +@RequiresAuthorizationFor(UseAdvancedDataToolsPages.class) public class JenaExportController extends BaseEditController { public void doGet( HttpServletRequest request, HttpServletResponse response ) { diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/jena/JenaIngestController.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/jena/JenaIngestController.java index 4c012efe5..03d6d090d 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/jena/JenaIngestController.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/jena/JenaIngestController.java @@ -61,6 +61,8 @@ import com.hp.hpl.jena.util.ResourceUtils; import com.hp.hpl.jena.util.iterator.ClosableIterator; import edu.cornell.mannlib.vedit.controller.BaseEditController; +import edu.cornell.mannlib.vitro.webapp.auth.policy.PolicyHelper.RequiresAuthorizationFor; +import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.UseAdvancedDataToolsPages; import edu.cornell.mannlib.vitro.webapp.beans.Ontology; import edu.cornell.mannlib.vitro.webapp.beans.Portal; import edu.cornell.mannlib.vitro.webapp.controller.Controllers; @@ -78,6 +80,7 @@ import edu.cornell.mannlib.vitro.webapp.utils.jena.JenaIngestUtils; import edu.cornell.mannlib.vitro.webapp.utils.jena.JenaIngestWorkflowProcessor; import edu.cornell.mannlib.vitro.webapp.utils.jena.WorkflowOntology; +@RequiresAuthorizationFor(UseAdvancedDataToolsPages.class) public class JenaIngestController extends BaseEditController { private static final Log log = LogFactory.getLog(JenaIngestController.class); @@ -110,11 +113,6 @@ public class JenaIngestController extends BaseEditController { @Override public void doGet (HttpServletRequest request, HttpServletResponse response) { - - if (!checkLoginStatus(request,response)) { - return; - } - VitroRequest vreq = new VitroRequest(request); ModelMaker maker = getVitroJenaModelMaker(vreq); diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/jena/RDFUploadFormController.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/jena/RDFUploadFormController.java index ca3efbbcf..f2a501865 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/jena/RDFUploadFormController.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/jena/RDFUploadFormController.java @@ -10,15 +10,19 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import edu.cornell.mannlib.vedit.controller.BaseEditController; +import edu.cornell.mannlib.vitro.webapp.auth.policy.PolicyHelper.RequiresAuthorizationFor; +import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.usepages.UseAdvancedDataToolsPages; import edu.cornell.mannlib.vitro.webapp.beans.Portal; import edu.cornell.mannlib.vitro.webapp.controller.Controllers; import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest; +@RequiresAuthorizationFor(UseAdvancedDataToolsPages.class) public class RDFUploadFormController extends BaseEditController { private static final Log log = LogFactory.getLog(RDFUploadFormController.class.getName()); - public void doPost (HttpServletRequest request, HttpServletResponse response) { + @Override + public void doPost (HttpServletRequest request, HttpServletResponse response) { if (!checkLoginStatus(request,response)) return; @@ -49,7 +53,8 @@ public class RDFUploadFormController extends BaseEditController { } - public void doGet (HttpServletRequest request, HttpServletResponse response) { + @Override + public void doGet (HttpServletRequest request, HttpServletResponse response) { doPost(request,response); } diff --git a/webapp/web/admin/sparql.jsp b/webapp/web/admin/sparql.jsp index 77b48dadc..4b5c3066d 100644 --- a/webapp/web/admin/sparql.jsp +++ b/webapp/web/admin/sparql.jsp @@ -4,6 +4,9 @@ <%@page import="java.util.ArrayList"%> <%@page import="java.util.List"%> +<%@ taglib prefix="vitro" uri="/WEB-INF/tlds/VitroUtils.tld" %> + + @@ -21,7 +23,7 @@ to follow the established "n" + random integer naming convention.

-

Old Namespace 

-

New Namespace 

+

Old Namespaceďż˝

+

New Namespaceďż˝

\ No newline at end of file diff --git a/webapp/web/jenaIngest/renameResult.jsp b/webapp/web/jenaIngest/renameResult.jsp index d44cba16b..9ce188245 100644 --- a/webapp/web/jenaIngest/renameResult.jsp +++ b/webapp/web/jenaIngest/renameResult.jsp @@ -1,7 +1,8 @@ <%-- $This file is distributed under the terms of the license in /doc/license.txt$ --%> - <%@ taglib uri="http://java.sun.com/jstl/core" prefix="c"%> +<%@ taglib prefix="vitro" uri="/WEB-INF/tlds/VitroUtils.tld" %> +

Ingest Menu > Rename Resource

diff --git a/webapp/web/jenaIngest/smushSingleModel.jsp b/webapp/web/jenaIngest/smushSingleModel.jsp index 7bbb5bb56..42bc56ad7 100644 --- a/webapp/web/jenaIngest/smushSingleModel.jsp +++ b/webapp/web/jenaIngest/smushSingleModel.jsp @@ -7,6 +7,8 @@ <%@ page import="java.util.Iterator" %> <%@ page import="java.util.List" %> <%@ page import="java.net.URLEncoder" %> +<%@ taglib prefix="vitro" uri="/WEB-INF/tlds/VitroUtils.tld" %> + <% diff --git a/webapp/web/jenaIngest/sparqlConstruct.jsp b/webapp/web/jenaIngest/sparqlConstruct.jsp index 507fdb58b..02547d154 100644 --- a/webapp/web/jenaIngest/sparqlConstruct.jsp +++ b/webapp/web/jenaIngest/sparqlConstruct.jsp @@ -9,6 +9,8 @@ <%@ page import="java.net.URLEncoder"%> <%@ taglib uri="http://java.sun.com/jstl/core" prefix="c"%> +<%@ taglib prefix="vitro" uri="/WEB-INF/tlds/VitroUtils.tld" %> + <% diff --git a/webapp/web/jenaIngest/splitPropertyValues.jsp b/webapp/web/jenaIngest/splitPropertyValues.jsp index a600d3bbc..4e07b7c7d 100644 --- a/webapp/web/jenaIngest/splitPropertyValues.jsp +++ b/webapp/web/jenaIngest/splitPropertyValues.jsp @@ -7,6 +7,8 @@ <%@ page import="java.util.Iterator" %> <%@ page import="java.util.List" %> <%@ page import="java.net.URLEncoder" %> +<%@ taglib prefix="vitro" uri="/WEB-INF/tlds/VitroUtils.tld" %> + <% diff --git a/webapp/web/jenaIngest/subtractModels.jsp b/webapp/web/jenaIngest/subtractModels.jsp index 797d9b827..0f5b24fdc 100644 --- a/webapp/web/jenaIngest/subtractModels.jsp +++ b/webapp/web/jenaIngest/subtractModels.jsp @@ -7,6 +7,8 @@ <%@ page import="java.util.Iterator" %> <%@ page import="java.util.List" %> <%@ page import="java.net.URLEncoder" %> +<%@ taglib prefix="vitro" uri="/WEB-INF/tlds/VitroUtils.tld" %> + <% diff --git a/webapp/web/jenaIngest/workflowStep.jsp b/webapp/web/jenaIngest/workflowStep.jsp index d6bd78e96..fb591044f 100644 --- a/webapp/web/jenaIngest/workflowStep.jsp +++ b/webapp/web/jenaIngest/workflowStep.jsp @@ -7,6 +7,8 @@ <%@ page import="java.util.Iterator" %> <%@ page import="java.util.List" %> <%@ page import="java.net.URLEncoder" %> +<%@ taglib prefix="vitro" uri="/WEB-INF/tlds/VitroUtils.tld" %> + <% diff --git a/webapp/web/jenaIngest/xmlFileUpload.jsp b/webapp/web/jenaIngest/xmlFileUpload.jsp index a87143ec8..44b5ae687 100644 --- a/webapp/web/jenaIngest/xmlFileUpload.jsp +++ b/webapp/web/jenaIngest/xmlFileUpload.jsp @@ -4,6 +4,8 @@ <%@ page import="java.util.Iterator" %> <%@ page import="java.net.URLEncoder" %> <%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %> +<%@ taglib prefix="vitro" uri="/WEB-INF/tlds/VitroUtils.tld" %> + <% diff --git a/webapp/web/jenaIngest/xmlFileUploadSuccess.jsp b/webapp/web/jenaIngest/xmlFileUploadSuccess.jsp index ece11a79d..e6dcf5af6 100644 --- a/webapp/web/jenaIngest/xmlFileUploadSuccess.jsp +++ b/webapp/web/jenaIngest/xmlFileUploadSuccess.jsp @@ -4,14 +4,10 @@ <%@ page import="java.util.Iterator" %> <%@ page import="java.net.URLEncoder" %> <%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %> +<%@ taglib prefix="vitro" uri="/WEB-INF/tlds/VitroUtils.tld" %> + -<% - - -%>

Uploaded XML files and converted to RDF.

Loaded <%= request.getAttribute("statementCount") %> statements to the model <%= request.getAttribute("targetModel") %>.

Ingest Menu

- - diff --git a/webapp/web/templates/edit/specific/upload_rdf.jsp b/webapp/web/templates/edit/specific/upload_rdf.jsp index 1171ce7f1..511ae5b98 100644 --- a/webapp/web/templates/edit/specific/upload_rdf.jsp +++ b/webapp/web/templates/edit/specific/upload_rdf.jsp @@ -1,7 +1,8 @@ <%-- $This file is distributed under the terms of the license in /doc/license.txt$ --%> <%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %> - +<%@ taglib prefix="vitro" uri="/WEB-INF/tlds/VitroUtils.tld" %> +