Author: buildbot
Date: Wed Jul  3 00:01:50 2013
New Revision: 868200

Log:
Staging update by buildbot for jena

Modified:
    websites/staging/jena/trunk/content/   (props changed)
    websites/staging/jena/trunk/content/documentation/query/http-auth.html

Propchange: websites/staging/jena/trunk/content/
------------------------------------------------------------------------------
--- cms:source-revision (original)
+++ cms:source-revision Wed Jul  3 00:01:50 2013
@@ -1 +1 @@
-1499150
+1499155

Modified: websites/staging/jena/trunk/content/documentation/query/http-auth.html
==============================================================================
--- websites/staging/jena/trunk/content/documentation/query/http-auth.html 
(original)
+++ websites/staging/jena/trunk/content/documentation/query/http-auth.html Wed 
Jul  3 00:01:50 2013
@@ -162,17 +162,38 @@ HTTP authentication that also allows ARQ
 <p>Authentication mechanisms are provided by <a 
href="http://jena.apache.org/documentation/javadoc/arq/org/apache/jena/atlas/web/auth/HttpAuthenticator.html";>HttpAuthenticator</a>
 implementations of which a number are provided built into ARQ.</p>
 <p>This API provides the authenticator with access to the 
<code>HttpClient</code>, <code>HttpContext</code> and target <code>URI</code> 
of the request that is about to be carried out.  This allows for authenticators
 to add credentials to requests on a pre-request basis and to use different 
mechanisms and credentials for different services.</p>
-<p>The following details the available implementations:</p>
 <h4 id="simpleauthenticator">SimpleAuthenticator</h4>
 <p>The <a 
href="http://jena.apache.org/documentation/javadoc/arq/org/apache/jena/atlas/web/auth/SimpleAuthenticator.html";>simple
 authenticator</a> is as the name suggests the simplest implementation.  It 
takes a single set of credentials which is applied to
 any service.</p>
 <p>Authentication however is not preemptive so unless the remote service sends 
a HTTP challenge (401 Unauthorized or 407 Proxy Authorization Required) then
 credentials will not actually be submitted.</p>
 <h4 id="scopedauthenticator">ScopedAuthenticator</h4>
-<p>The [scoped authenticator][3] is an authenticator which maps credentials to 
different service URIs.  This allows you to specify different credentials for 
different services 
+<p>The <a 
href="http://jena.apache.org/documentation/javadoc/arq/org/apache/jena/atlas/web/auth/ScopedAuthenticator.html";>scoped
 authenticator</a> is an authenticator which maps credentials to different 
service URIs.  This allows you to specify different credentials for different 
services 
 as appropriate.  Similarly to the simple authenticator this is not preemptive 
authentication so credentials are not set unless the service requests them.</p>
 <p>Scoping of credentials is not based on exact mapping of the request URI to 
credentials but rather on a longest match approach.  For example if you define 
credentials
-for <code>http://example.org</code> then these are used for any request that 
requires authentication under that URI e.g. 
<code>http://example.org/some/path</code></p>
+for <code>http://example.org</code> then these are used for any request that 
requires authentication under that URI e.g. 
<code>http://example.org/some/path</code>.  However if you
+had defined credentials for <code>http://example.org/some/path</code> then 
these would be used in favor of those for <code>http://example.org</code></p>
+<h4 id="serviceauthenticator">ServiceAuthenticator</h4>
+<p>The <a 
href="http://jena.apache.org/documentation/javadoc/arq/org/apache/jena/atlas/web/auth/ServiceAuthenticator.html";>service
 authenticator</a> is an authenticator which uses information encoded in the 
ARQ context and basically provides access to the existing credential provision
+mechanisms provided for the <code>SERVICE</code> clause, see <a 
href="service.html">Basic Federated Query</a> for more information on this.</p>
+<h4 id="formsauthenticator">FormsAuthenticator</h4>
+<p>The <a 
href="http://jena.apache.org/documentation/javadoc/arq/org/apache/jena/atlas/web/auth/FormsAuthenticator.html";>forms
 authenticator</a> is an authenticator usable with services that require form 
based logins and use cookies to verify login state.  This is intended for use 
with
+services that don't support HTTP's built-in authentication mechanisms for 
whatever reason.  One example of this are servers secured using Apache HTTP 
Server <a 
href="https://httpd.apache.org/docs/2.4/mod/mod_auth_form.html";>mod_auth_form</a>.</p>
+<h4 id="preemptivebasicauthenticator">PreemptiveBasicAuthenticator</h4>
+<p>This <a 
href="http://jena.apache.org/documentation/javadoc/arq/org/apache/jena/atlas/web/auth/PreemptiveBasicAuthenticator.html";>authenticator</a>
 is a decorator over another authenticator that enables preemptive basic 
authentication.  This is not enabled by default because it reduces security as 
it can
+ result in sending credentials to servers that don't actually require them.</p>
+<h2 id="applying-authentication">Applying Authentication</h2>
+<p>APIs that support authentication typically provide two methods for 
providing authenticators, a <code>setAuthentication(String username, char[] 
password)</code> method
+which merely configures a <code>SimpleAuthenticator</code>.  There will also 
be a <code>setAuthenticator(HttpAuthenticator authenticator)</code> method
+that allows you to configure an arbitrary authenticator.</p>
+<p>Authenticators applied this way will only be used for requests by that 
specific API.  APIs that currently support this are as follows:</p>
+<ul>
+<li>[QueryEngineHTTP][9] - This is the <code>QueryExecution</code> 
implementation returned by <code>QueryExecutionFactory.sparqlService()</code> 
calls</li>
+<li>[UpdateProcessRemoteBase][10] - This is the base class of 
<code>UpdateProcessor</code> implementations returned by 
<code>UpdateExecutionFactory.createRemote()</code> and 
<code>UpdateExecutionFactory.createRemoteForm()</code> calls</li>
+<li>[DatasetGraphAccessorHTTP][11] - This is the 
<code>DatasetGraphAccessor</code> implementation underlying remote dataset 
accessors.</li>
+</ul>
+<p>From 2.10.2 onwards the relevant factory methods include overloads that 
allow providing a <code>HttpAuthenticator</code> at creation time which
+avoids the needs to cast and manually set the authenticator afterwards.</p>
   </div>
 
   <div id="footer">


Reply via email to