You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by bu...@apache.org on 2015/02/15 16:52:47 UTC
svn commit: r940251 - in /websites/staging/jena/trunk/content: ./
documentation/security/example.html
Author: buildbot
Date: Sun Feb 15 15:52:47 2015
New Revision: 940251
Log:
Staging update by buildbot for jena
Added:
websites/staging/jena/trunk/content/documentation/security/example.html
Modified:
websites/staging/jena/trunk/content/ (props changed)
Propchange: websites/staging/jena/trunk/content/
------------------------------------------------------------------------------
--- cms:source-revision (original)
+++ cms:source-revision Sun Feb 15 15:52:47 2015
@@ -1 +1 @@
-1659916
+1659931
Added: websites/staging/jena/trunk/content/documentation/security/example.html
==============================================================================
--- websites/staging/jena/trunk/content/documentation/security/example.html (added)
+++ websites/staging/jena/trunk/content/documentation/security/example.html Sun Feb 15 15:52:47 2015
@@ -0,0 +1,313 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<!--
+
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE- 2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+ <title>Apache Jena - Adding Jena-Security to Fuseki.</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+ <link href="/css/bootstrap.min.css" rel="stylesheet" media="screen">
+ <link href="/css/bootstrap-extension.css" rel="stylesheet" type="text/css">
+ <link href="/css/jena.css" rel="stylesheet" type="text/css">
+ <link rel="shortcut icon" href="/images/favicon.ico" />
+
+ <script src="https://code.jquery.com/jquery-2.0.3.min.js"></script>
+ <script src="/js/jena-navigation.js" type="text/javascript"></script>
+ <script src="/js/bootstrap.min.js" type="text/javascript"></script>
+ <script src="/js/breadcrumbs.js" type="text/javascript"></script>
+
+ <script src="/js/improve.js" type="text/javascript"></script>
+
+
+ <!-- Uncomment to enable code coloring <link href="/css/codehilite.css" rel="stylesheet" type="text/css"> -->
+
+</head>
+
+<body>
+
+
+
+<nav class="navbar navbar-default" role="navigation">
+<div class="container">
+ <div class="navbar-header">
+
+ <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-ex1-collapse">
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ </button>
+ <a class="navbar-brand" href="/index.html">
+ <img class="logo-menu" src="/images/jena-logo/jena-logo-notext-small.png" alt="jena logo">Apache Jena</a>
+ </div>
+
+ <div class="collapse navbar-collapse navbar-ex1-collapse">
+ <ul class="nav navbar-nav">
+ <li id="homepage"><a href="/index.html"><span class="glyphicon glyphicon-home"></span> Home</a></li>
+ <li id="download"><a href="/download/index.cgi"><span class="glyphicon glyphicon-download-alt"></span> Download</a></li>
+ <li class="dropdown">
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown"><span class="glyphicon glyphicon-book"></span> Learn <b class="caret"></b></a>
+ <ul class="dropdown-menu">
+ <li class="dropdown-header">Tutorials</li>
+ <li><a href="/tutorials/index.html">Overview</a></li>
+ <li><a href="/tutorials/rdf_api.html">RDF core API tutorial</a></li>
+ <li><a href="/tutorials/sparql.html">SPARQL tutorial</a></li>
+ <li><a href="/documentation/query/manipulating_sparql_using_arq.html">Manipulating SPARQL using ARQ</a></li>
+ <li><a href="/tutorials/using_jena_with_eclipse.html">Using Jena with Eclipse</a></li>
+ <li><a href="/documentation/notes/index.html">How-To's</a></li>
+ <li class="divider"></li>
+ <li class="dropdown-header">References</li>
+ <li><a href="/documentation/index.html">Overview</a></li>
+ <li><a href="/documentation/javadoc/">Javadoc</a></li>
+ <li><a href="/documentation/rdf/index.html">RDF API</a></li>
+ <li><a href="/documentation/io/">RDF I/O</a></li>
+ <li><a href="/documentation/query/index.html">ARQ (SPARQL)</a></li>
+ <li><a href="/documentation/query/text-query.html">Text Search</a></li>
+ <li><a href="/documentation/tdb/index.html">TDB</a></li>
+ <li><a href="/documentation/sdb/index.html">SDB</a></li>
+ <li><a href="/documentation/jdbc/index.html">SPARQL over JDBC</a></li>
+ <li><a href="/documentation/security/index.html">Security</a></li>
+ <li><a href="/documentation/serving_data/index.html">Fuseki</a></li>
+ <li><a href="/documentation/assembler/index.html">Assembler</a></li>
+ <li><a href="/documentation/ontology/">Ontology API</a></li>
+ <li><a href="/documentation/inference/index.html">Inference API</a></li>
+ <li><a href="/documentation/tools/index.html">Command-line tools</a></li>
+ <li><a href="/documentation/extras/index.html">Extras</a></li>
+ </ul>
+ </li>
+
+ <li class="drop down">
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown"><span class="glyphicon glyphicon-book"></span> Javadoc <b class="caret"></b></a>
+ <ul class="dropdown-menu">
+ <li><a href="/documentation/javadoc/jena/">Jena Core</a></li>
+ <li><a href="/documentation/javadoc/arq/">ARQ</a></li>
+ <li><a href="/documentation/javadoc/tdb/">TDB</a></li>
+ <li><a href="/documentation/javadoc/text/">Text Search</a></li>
+ <li><a href="/documentation/javadoc/spatial/">Spatial Search</a></li>
+ <li><a href="/documentation/javadoc/security/">Security</a></li>
+ <li><a href="/documentation/javadoc/jdbc/">JDBC</a></li>
+ <li><a href="/documentation/javadoc/fuseki/">Fuseki</a></li>
+ </ul>
+ </li>
+
+ <li id="ask"><a href="/help_and_support/index.html"><span class="glyphicon glyphicon-question-sign"></span> Ask</a></li>
+
+ <li class="dropdown">
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown"><span class="glyphicon glyphicon-bullhorn"></span> Get involved <b class="caret"></b></a>
+ <ul class="dropdown-menu">
+ <li><a href="/getting_involved/index.html">Contribute</a></li>
+ <li><a href="/help_and_support/bugs_and_suggestions.html">Report a bug</a></li>
+ <li class="divider"></li>
+ <li class="dropdown-header">Project</li>
+ <li><a href="/about_jena/about.html">About Jena</a></li>
+ <li><a href="/about_jena/roadmap.html">Roadmap</a></li>
+ <li><a href="/about_jena/architecture.html">Architecture</a></li>
+ <li><a href="/about_jena/team.html">Project team</a></li>
+ <li><a href="/about_jena/contributions.html">Related projects</a></li>
+ <li class="divider"></li>
+ <li class="dropdown-header">ASF</li>
+ <li><a href="http://www.apache.org/">Apache Software Foundation</a></li>
+ <li><a href="http://www.apache.org/licenses/LICENSE-2.0">License</a></li>
+ <li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
+ <li><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a></li>
+ <li><a href="http://www.apache.org/security/">Security</a></li>
+ </ul>
+ </li>
+
+ <li id="edit"><a href="javascript:improveThisPage(location.href);" title="Improve this Page (Use username anonymous and empty password)"><span class="glyphicon glyphicon-pencil"></span> Improve this Page</a></li>
+ </ul>
+ </div>
+</div>
+</nav>
+
+
+<div class="container">
+ <div class="row">
+ <div class="col-md-12">
+ <div id="breadcrumbs"></div>
+ <h1 class="title">Adding Jena-Security to Fuseki.</h1>
+ <h2 id="overview">Overview</h2>
+<p>The goal of this document is to add jena-security to a fuseki deployment to restrict access to graph data. This example will take the jena-security example application, deploy the data to a fuseki instance and add the jena-security to achieve the same access restrictions that the example application has.</p>
+<p>To do this you will need a Fuseki installation, the Security Packages and a SecurityEvaluator implementation. For this example we will use the SecurityEvaluator from the Security-Examples.</p>
+<h2 id="set-up">Set up</h2>
+<p>This example uses Fuseki 2.0.0-SNAPSHOT, and Security 2.12.2-SNAPSHOT and Apache Commons Collections v4. If you are using an earlier Security version you will need to download the source code to compile the example.</p>
+<p>Fuseki can be downloaded from:
+[https://repository.apache.org/content/repositories/snapshots/org/apache/jena/apache-jena-fuseki/]</p>
+<p>Jena Security jars can be downloaded from:
+[https://repository.apache.org/content/repositories/snapshots/org/apache/jena/jena-security/]</p>
+<ol>
+<li>
+<p>Download and unpack Fuseki. The directory that you unpack Fuseki into will be referred to as the <code>Fuseki Home</code> directory for the remainder of this document.</p>
+</li>
+<li>
+<p>Download Security 2.12.2 jar and 2.12.2 security-example jar.</p>
+</li>
+<li>
+<p>Copy the Security jar and the Security example jar into the Fuseki Home directory. For the rest of this document the security jar will be referred to as <code>security.jar</code> and the security-example.jar as <code>example.jar</code></p>
+</li>
+<li>
+<p>Download the Apache Commons Collections v4
+[http://commons.apache.org/proper/commons-collections/download_collections.cgi]
+Uncompress the <code>commons-collections*.jar</code> into the <code>Fuseki Home</code> directory.</p>
+</li>
+<li>
+<p>Add security jars to the startup script/batch file.</p>
+</li>
+<li>
+<p>On *NIX edit fuseki-server script </p>
+</li>
+</ol>
+<p>comment out the line that reads <code>exec java $JVM_ARGS -jar "$JAR" "$@"</code>
+uncomment the last two lines that read:</p>
+<div class="codehilite"><pre><span class="cp"> ## APPJAR=MyCode.jar</span>
+<span class="cp"> ## java $JVM_ARGS -cp "$JAR:$APPJAR" org.apache.jena.fuseki.cmd.FusekiCmd "$@"</span>
+</pre></div>
+
+
+<p>change <code>MyCode.jar</code> to <code>security.jar:example.jar:commons-collections*.jar</code></p>
+<ul>
+<li>On Windows edit fuseki-server.bat file </li>
+</ul>
+<p>comment out the line that reads <code>java -Xmx1200M -jar fuseki-server.jar %*</code>
+uncomment the line that reads
+<code>@REM java ... -cp fuseki-server.jar;MyCustomCode.jar org.apache.jena.fuseki.cmd.FusekiCmd %*</code></p>
+<p>change <code>MyCustomCode.jar</code> to <code>security.jar;example.jar;commons-collections*.jar</code></p>
+<ol>
+<li>
+<p>run the fuseki-server script or batch file.</p>
+</li>
+<li>
+<p>Stop the server. </p>
+</li>
+<li>
+<p>Extract teh example configuration into the newly created <code>Fuseki Home/run</code> directory.
+From the example.jar archive extract </p>
+</li>
+<li><code>/org/apache/jena/security/example/example.ttl</code> into the <code>Fuseki Home/run</code> directory</li>
+<li><code>/org/apache/jena/security/example/fuseki/config.ttl</code> into the <code>Fuseki Home/run</code> directory</li>
+<li>
+<p><code>/org/apache/jena/security/example/fuseki/shiro.ini</code> into the <code>Fuseki Home/run</code> directory</p>
+</li>
+<li>
+<p>run <code>fuseki-server âconfig=run/config.ttl</code> or <code>fuseki-server.bat âconfig=run/config.ttl</code></p>
+</li>
+</ol>
+<h2 id="review-of-configuration">Review of configuration</h2>
+<p>At this point the system is configured with the following logins:</p>
+<table>
+<tr><th>Login</th><th>password</th><th>Access to</th></tr>
+<tr><td>admin</td><td>admin</td></td>Everything</td></tr>
+<tr><td>alice</td><td>alice</td></td>Only messages to or from alice</td></tr>
+<tr><td>bob</td><td>bob</td></td>Only messages to or from bob</td></tr>
+<tr><td>chuck</td><td>chuck</td></td>Only messages to or from chuck</td></tr>
+<tr><td>darla</td><td>darla</td></td>Only messages to or from darla</td></tr>
+</table>
+
+<p>The messages graph is defined in the run/example.ttl file.</p>
+<p>The run/shiro.ini file lists the users and their passwords and restricts access to the graphs.</p>
+<p>The run.config.ttl file adds the security to the graph as follows:</p>
+<p>Define all the prefixes </p>
+<div class="codehilite"><pre><span class="p">@</span><span class="n">prefix</span> <span class="n">fuseki</span><span class="p">:</span> <span class="o"><</span><span class="n">http</span><span class="p">:</span><span class="o">//</span><span class="n">jena</span><span class="p">.</span><span class="n">apache</span><span class="p">.</span><span class="n">org</span><span class="o">/</span><span class="n">fuseki</span>#<span class="o">></span> <span class="p">.</span>
+<span class="p">@</span><span class="n">prefix</span> <span class="n">tdb</span><span class="p">:</span> <span class="o"><</span><span class="n">http</span><span class="p">:</span><span class="o">//</span><span class="n">jena</span><span class="p">.</span><span class="n">hpl</span><span class="p">.</span><span class="n">hp</span><span class="p">.</span><span class="n">com</span><span class="o">/</span>2008<span class="o">/</span><span class="n">tdb</span>#<span class="o">></span> <span class="p">.</span>
+<span class="p">@</span><span class="n">prefix</span> <span class="n">rdf</span><span class="p">:</span> <span class="o"><</span><span class="n">http</span><span class="p">:</span><span class="o">//</span><span class="n">www</span><span class="p">.</span><span class="n">w3</span><span class="p">.</span><span class="n">org</span><span class="o">/</span>1999<span class="o">/</span>02<span class="o">/</span>22<span class="o">-</span><span class="n">rdf</span><span class="o">-</span><span class="n">syntax</span><span class="o">-</span><span class="n">ns</span>#<span class="o">></span> <span class="p">.</span>
+<span class="p">@</span><span class="n">prefix</span> <span class="n">rdfs</span><span class="p">:</span> <span class="o"><</span><span class="n">http</span><span class="p">:</span><span class="o">//</span><span class="n">www</span><span class="p">.</span><span class="n">w3</span><span class="p">.</span><span class="n">org</span><span class="o">/</span>2000<span class="o">/</span>01<span class="o">/</span><span class="n">rdf</span><span class="o">-</span><span class="n">schema</span>#<span class="o">></span> <span class="p">.</span>
+<span class="p">@</span><span class="n">prefix</span> <span class="n">ja</span><span class="p">:</span> <span class="o"><</span><span class="n">http</span><span class="p">:</span><span class="o">//</span><span class="n">jena</span><span class="p">.</span><span class="n">hpl</span><span class="p">.</span><span class="n">hp</span><span class="p">.</span><span class="n">com</span><span class="o">/</span>2005<span class="o">/</span>11<span class="o">/</span><span class="n">Assembler</span>#<span class="o">></span> <span class="p">.</span>
+<span class="p">@</span><span class="n">prefix</span> <span class="nb">sec</span><span class="p">:</span> <span class="o"><</span><span class="n">http</span><span class="p">:</span><span class="o">//</span><span class="n">apache</span><span class="p">.</span><span class="n">org</span><span class="o">/</span><span class="n">jena</span><span class="o">/</span><span class="n">security</span><span class="o">/</span><span class="n">Assembler</span>#<span class="o">></span> <span class="p">.</span>
+<span class="p">@</span><span class="n">prefix</span> <span class="n">my</span><span class="p">:</span> <span class="o"><</span><span class="n">http</span><span class="p">:</span><span class="o">//</span><span class="n">example</span><span class="p">.</span><span class="n">org</span><span class="o">/</span>#<span class="o">></span> <span class="p">.</span>
+</pre></div>
+
+
+<p>Load the SecuredAssembler class from the security library and define the sec:Model as a subclass of ja:NamedModel.</p>
+<div class="codehilite"><pre><span class="p">[]</span> <span class="n">ja</span><span class="p">:</span><span class="n">loadClass</span> "<span class="n">org</span><span class="p">.</span><span class="n">apache</span><span class="p">.</span><span class="n">jena</span><span class="p">.</span><span class="n">security</span><span class="p">.</span><span class="n">SecuredAssembler</span>" <span class="p">.</span>
+<span class="nb">sec</span><span class="p">:</span><span class="n">Model</span> <span class="n">rdfs</span><span class="p">:</span><span class="n">subClassOf</span> <span class="n">ja</span><span class="p">:</span><span class="n">NamedModel</span> <span class="p">.</span>
+</pre></div>
+
+
+<p>Define the base model that contains the unsecured data.</p>
+<div class="codehilite"><pre><span class="n">my</span><span class="o">:</span><span class="n">baseModel</span> <span class="n">rdf</span><span class="o">:</span><span class="n">type</span> <span class="n">ja</span><span class="o">:</span><span class="n">MemoryModel</span><span class="o">;</span>
+ <span class="n">ja</span><span class="o">:</span><span class="n">content</span> <span class="o">[</span><span class="n">ja</span><span class="o">:</span><span class="n">externalContent</span> <span class="o"><</span><span class="n">file</span><span class="o">:./</span><span class="n">example</span><span class="o">.</span><span class="na">ttl</span><span class="o">>]</span>
+ <span class="o">.</span>
+</pre></div>
+
+
+<p>Define the secured model. This is where permissions is applied to the my:baseModel to create a model that has permission restrictions. Note that it is using the security evaluator implementation (sec:evaluatorImpl) called my:secEvaluator which we will define next.</p>
+<div class="codehilite"><pre><span class="n">my</span><span class="o">:</span><span class="n">securedModel</span> <span class="n">rdf</span><span class="o">:</span><span class="n">type</span> <span class="n">sec</span><span class="o">:</span><span class="n">Model</span> <span class="o">;</span>
+ <span class="n">sec</span><span class="o">:</span><span class="n">baseModel</span> <span class="n">my</span><span class="o">:</span><span class="n">baseModel</span> <span class="o">;</span>
+ <span class="n">ja</span><span class="o">:</span><span class="n">modelName</span> <span class="s2">"https://example.org/securedModel"</span> <span class="o">;</span>
+ <span class="n">sec</span><span class="o">:</span><span class="n">evaluatorImpl</span> <span class="n">my</span><span class="o">:</span><span class="n">secEvaluator</span> <span class="o">.</span>
+</pre></div>
+
+
+<p>Define the security evaluator. This is where we use the example ShiroExampleEvaluator. For your production environment you will replace "org.apache.jena.security.example.ShiroExampleEvaluator" with your SecurityEvaluator implementation. Note that ShiroExampleEvaluator constructor takes a Model argument. We pass in the unsecured baseModel so that the evaluator can read it unencumbered. Your implementation of SecurityEvaluator may have different parameters to meet your specific needs.</p>
+<div class="codehilite"><pre><span class="n">my</span><span class="o">:</span><span class="n">secEvaluator</span> <span class="n">rdf</span><span class="o">:</span><span class="n">type</span> <span class="n">sec</span><span class="o">:</span><span class="n">Evaluator</span> <span class="o">;</span>
+ <span class="n">sec</span><span class="o">:</span><span class="n">args</span> <span class="o">[</span>
+ <span class="n">rdf</span><span class="o">:</span><span class="n">_1</span> <span class="n">my</span><span class="o">:</span><span class="n">baseModel</span> <span class="o">;</span>
+ <span class="o">]</span> <span class="o">;</span>
+ <span class="n">sec</span><span class="o">:</span><span class="n">evaluatorClass</span> <span class="s2">"org.apache.jena.security.example.ShiroExampleEvaluator"</span> <span class="o">.</span>
+</pre></div>
+
+
+<p>Define the dataset that we will use for in the server.</p>
+<div class="codehilite"><pre><span class="n">my</span><span class="o">:</span><span class="n">securedDataset</span> <span class="n">rdf</span><span class="o">:</span><span class="n">type</span> <span class="n">ja</span><span class="o">:</span><span class="n">RDFDataset</span> <span class="o">;</span>
+ <span class="n">ja</span><span class="o">:</span><span class="n">defaultGraph</span> <span class="n">my</span><span class="o">:</span><span class="n">securedModel</span> <span class="o">.</span>
+</pre></div>
+
+
+<p>Define the fuseki:Server.</p>
+<div class="codehilite"><pre><span class="n">my</span><span class="o">:</span><span class="n">fuskei</span> <span class="n">rdf</span><span class="o">:</span><span class="n">type</span> <span class="n">fuseki</span><span class="o">:</span><span class="n">Server</span> <span class="o">;</span>
+ <span class="n">fuseki</span><span class="o">:</span><span class="n">services</span> <span class="o">(</span>
+ <span class="n">my</span><span class="o">:</span><span class="n">service1</span>
+ <span class="o">)</span> <span class="o">.</span>
+</pre></div>
+
+
+<p>Define the service for the fuseki:Service. Note that the fuseki:dataset served by this server is the secured dataset defined above.</p>
+<div class="codehilite"><pre><span class="n">my</span><span class="o">:</span><span class="n">service1</span> <span class="n">rdf</span><span class="o">:</span><span class="n">type</span> <span class="n">fuseki</span><span class="o">:</span><span class="n">Service</span> <span class="o">;</span>
+ <span class="n">rdfs</span><span class="o">:</span><span class="n">label</span> <span class="s2">"My Secured Data Service"</span> <span class="o">;</span>
+ <span class="n">fuseki</span><span class="o">:</span><span class="n">name</span> <span class="s2">"myAppFuseki"</span> <span class="o">;</span> <span class="err">#</span> <span class="n">http</span><span class="o">://</span><span class="n">host</span><span class="o">:</span><span class="n">port</span><span class="o">/</span><span class="n">myAppFuseki</span>
+ <span class="n">fuseki</span><span class="o">:</span><span class="n">serviceQuery</span> <span class="s2">"query"</span> <span class="o">;</span> <span class="err">#</span> <span class="n">SPARQL</span> <span class="n">query</span> <span class="n">service</span>
+ <span class="n">fuseki</span><span class="o">:</span><span class="n">serviceQuery</span> <span class="s2">"sparql"</span> <span class="o">;</span> <span class="err">#</span> <span class="n">SPARQL</span> <span class="n">query</span> <span class="n">service</span>
+ <span class="n">fuseki</span><span class="o">:</span><span class="n">serviceUpdate</span> <span class="s2">"update"</span> <span class="o">;</span> <span class="err">#</span> <span class="n">SPARQL</span> <span class="n">query</span> <span class="n">service</span>
+ <span class="n">fuseki</span><span class="o">:</span><span class="n">serviceUpload</span> <span class="s2">"upload"</span> <span class="o">;</span> <span class="err">#</span> <span class="n">Non</span><span class="o">-</span><span class="n">SPARQL</span> <span class="n">upload</span> <span class="n">service</span>
+ <span class="n">fuseki</span><span class="o">:</span><span class="n">serviceReadWriteGraphStore</span> <span class="s2">"data"</span> <span class="o">;</span> <span class="err">#</span> <span class="n">SPARQL</span> <span class="n">Graph</span> <span class="n">store</span> <span class="n">protocol</span> <span class="o">(</span><span class="n">read</span> <span class="n">and</span> <span class="n">write</span><span class="o">)</span>
+ <span class="err">#</span> <span class="n">A</span> <span class="n">separate</span> <span class="n">ead</span><span class="o">-</span><span class="n">only</span> <span class="n">graph</span> <span class="n">store</span> <span class="n">endpoint</span><span class="o">:</span>
+ <span class="n">fuseki</span><span class="o">:</span><span class="n">serviceReadGraphStore</span> <span class="s2">"get"</span> <span class="o">;</span> <span class="err">#</span> <span class="n">SPARQL</span> <span class="n">Graph</span> <span class="n">store</span> <span class="n">protocol</span> <span class="o">(</span><span class="n">read</span> <span class="n">only</span><span class="o">)</span>
+ <span class="n">fuseki</span><span class="o">:</span><span class="n">dataset</span> <span class="n">my</span><span class="o">:</span><span class="n">securedDataset</span> <span class="o">;</span>
+<span class="o">.</span>
+</pre></div>
+ </div>
+</div>
+
+</div><!--/.container -->
+
+ <footer class="footer">
+ <div class="container">
+ <p>Copyright © 2011–2014 The Apache Software Foundation, Licensed under
+ the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
+ </p>
+ <p>
+ Apache Jena, Jena, the Apache Jena project logo,
+ Apache and the Apache feather logos are trademarks of The Apache Software Foundation.
+ </p>
+ </div>
+ </footer>
+
+
+</body>
+</html>