http://git-wip-us.apache.org/repos/asf/jena/blob/2c0454c6/jena-permissions/src/main/java/org/apache/jena/permissions/model/SecuredProperty.java
----------------------------------------------------------------------
diff --git 
a/jena-permissions/src/main/java/org/apache/jena/permissions/model/SecuredProperty.java
 
b/jena-permissions/src/main/java/org/apache/jena/permissions/model/SecuredProperty.java
index 20e8951..f066ca4 100644
--- 
a/jena-permissions/src/main/java/org/apache/jena/permissions/model/SecuredProperty.java
+++ 
b/jena-permissions/src/main/java/org/apache/jena/permissions/model/SecuredProperty.java
@@ -17,7 +17,8 @@
  */
 package org.apache.jena.permissions.model;
 
-import org.apache.jena.rdf.model.Property ;
+import org.apache.jena.rdf.model.Property;
+import org.apache.jena.shared.AuthenticationRequiredException;
 import org.apache.jena.shared.ReadDeniedException;
 
 /**
@@ -25,14 +26,16 @@ import org.apache.jena.shared.ReadDeniedException;
  * 
  * Use the SecuredProperty.Factory to create instances
  */
-public interface SecuredProperty extends SecuredResource, Property
-{
+public interface SecuredProperty extends SecuredResource, Property {
 
        /**
         * @sec.graph Read
         * @throws ReadDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public int getOrdinal() throws ReadDeniedException;
+       public int getOrdinal() throws ReadDeniedException,
+                       AuthenticationRequiredException;
 
 }

http://git-wip-us.apache.org/repos/asf/jena/blob/2c0454c6/jena-permissions/src/main/java/org/apache/jena/permissions/model/SecuredRDFList.java
----------------------------------------------------------------------
diff --git 
a/jena-permissions/src/main/java/org/apache/jena/permissions/model/SecuredRDFList.java
 
b/jena-permissions/src/main/java/org/apache/jena/permissions/model/SecuredRDFList.java
index 07e2464..0f07a13 100644
--- 
a/jena-permissions/src/main/java/org/apache/jena/permissions/model/SecuredRDFList.java
+++ 
b/jena-permissions/src/main/java/org/apache/jena/permissions/model/SecuredRDFList.java
@@ -22,15 +22,15 @@ import java.util.List;
 import java.util.Set;
 
 import org.apache.jena.permissions.SecurityEvaluator.Action;
-import org.apache.jena.rdf.model.* ;
+import org.apache.jena.rdf.model.*;
 import org.apache.jena.shared.AddDeniedException;
+import org.apache.jena.shared.AuthenticationRequiredException;
 import org.apache.jena.shared.DeleteDeniedException;
 import org.apache.jena.shared.ReadDeniedException;
 import org.apache.jena.shared.UpdateDeniedException;
-import org.apache.jena.util.iterator.ExtendedIterator ;
+import org.apache.jena.util.iterator.ExtendedIterator;
 
-public interface SecuredRDFList extends RDFList, SecuredResource
-{
+public interface SecuredRDFList extends RDFList, SecuredResource {
 
        /**
         * @sec.graph Update
@@ -38,35 +38,45 @@ public interface SecuredRDFList extends RDFList, 
SecuredResource
         * @sec.triple Create SecTriple(SecNode.FUTURE, listFirst(), listNil())
         * @throws UpdateDeniedException
         * @throws AddDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public void add( final RDFNode value ) throws UpdateDeniedException, 
AddDeniedException;
+       public void add(final RDFNode value) throws UpdateDeniedException,
+                       AddDeniedException, AuthenticationRequiredException;
 
        /**
         * Resulting list will contain the readable nodes from this list
         * concatenated with nodes
+        * 
         * @sec.graph Update
         * @sec.triple Create SecTriple( SecNode.FUTURE, RDF.first, value )
         * @sec.triple Create SecTriple( SecNode.FUTURE, RDF.rest, this )
         * @throws UpdateDeniedException
         * @throws AddDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public RDFList append( final Iterator<? extends RDFNode> nodes )
-                       throws UpdateDeniedException, AddDeniedException;
+       public RDFList append(final Iterator<? extends RDFNode> nodes)
+                       throws UpdateDeniedException, AddDeniedException,
+                       AuthenticationRequiredException;
 
        /**
         * Resulting list will contain the readable nodes from this list
-        * concatenated
-        * with the list argument
+        * concatenated with the list argument
+        * 
         * @sec.graph Update
         * @sec.triple Create SecTriple( SecNode.FUTURE, RDF.first, value )
         * @sec.triple Create SecTriple( SecNode.FUTURE, RDF.rest, this )
         * @throws UpdateDeniedException
         * @throws AddDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public RDFList append( final RDFList list ) throws 
UpdateDeniedException, AddDeniedException;
+       public RDFList append(final RDFList list) throws UpdateDeniedException,
+                       AddDeniedException, AuthenticationRequiredException;
 
        /**
         * Uses the security settings for the application of the function calls.
@@ -77,18 +87,19 @@ public interface SecuredRDFList extends RDFList, 
SecuredResource
         * @sec.triple other permissions required by the function.
         * @throws ReadDeniedException
         *             graph Read or other permissions are not met
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public void apply( final ApplyFn fn ) throws ReadDeniedException;
+       public void apply(final ApplyFn fn) throws ReadDeniedException,
+                       AuthenticationRequiredException;
 
        /**
         * This method is intended to provide the capabilities to apply 
functions
-        * that
-        * need to do more than read the graph.
+        * that need to do more than read the graph.
         * 
         * If the user does not have constraints access to the item in the list 
the
-        * item
-        * is not included in the function.
+        * item is not included in the function.
         * 
         * @param constraints
         *            The permissions the user must have on the items in the 
list.
@@ -98,39 +109,47 @@ public interface SecuredRDFList extends RDFList, 
SecuredResource
         * @sec.graph Read
         * @sec.triple Read and constraints
         * @throws ReadDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
-       public void apply( Set<Action> constraints, final ApplyFn fn )
-                       throws ReadDeniedException;
+       public void apply(Set<Action> constraints, final ApplyFn fn)
+                       throws ReadDeniedException, 
AuthenticationRequiredException;
 
        /**
         * @sec.triple Read for triples containing the returned RDFNodes.
         * @return List<SecuredRDFNode>
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public List<RDFNode> asJavaList();
+       public List<RDFNode> asJavaList() throws 
AuthenticationRequiredException;
 
        /**
         * @sec.graph Update
         * @sec.triple Create SecTriple( SecNode.FUTURE, RDF.first, node ) for 
each
-        *            node in
-        *            nodes.
+        *             node in nodes.
         * @throws UpdateDeniedException
         * @throws AddDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public void concatenate( final Iterator<? extends RDFNode> nodes )
-                       throws UpdateDeniedException, AddDeniedException;
+       public void concatenate(final Iterator<? extends RDFNode> nodes)
+                       throws UpdateDeniedException, AddDeniedException,
+                       AuthenticationRequiredException;
 
        /**
         * @sec.graph Update
         * @sec.triple Create SecTriple( SecNode.FUTURE, RDF.first, node ) for 
each
-        *            node in
-        *            list.
+        *             node in list.
         * @throws UpdateDeniedException
         * @throws AddDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public void concatenate( final RDFList list ) throws 
UpdateDeniedException, AddDeniedException;
+       public void concatenate(final RDFList list) throws 
UpdateDeniedException,
+                       AddDeniedException, AuthenticationRequiredException;
 
        /**
         * @sec.graph Update
@@ -138,36 +157,46 @@ public interface SecuredRDFList extends RDFList, 
SecuredResource
         * @sec.triple Create SecTriple( SecNode.FUTURE, RDF.rest, this )
         * @throws UpdateDeniedException
         * @throws AddDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public SecuredRDFList cons( final RDFNode value )
-                       throws UpdateDeniedException, AddDeniedException;
+       public SecuredRDFList cons(final RDFNode value)
+                       throws UpdateDeniedException, AddDeniedException,
+                       AuthenticationRequiredException;
 
        /**
         * @sec.graph Read
         * @sec.triple Read for triple containing value.
         * @throws ReadDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public boolean contains( final RDFNode value ) throws 
ReadDeniedException;
+       public boolean contains(final RDFNode value) throws ReadDeniedException,
+                       AuthenticationRequiredException;
 
        /**
         * Creates a copy of this list comprising the readable elements of this
         * list.
+        * 
         * @sec.graph Read to read the items to copy
         * @sec.triple Read on each triple to be read.
         * @sec.triple Create SecTriple( SecNode.FUTURE, RDF.first, value )
         * @sec.triple Create SecTriple( SecNode.FUTURE, RDF.rest, this )
         * @throws ReadDeniedException
         * @throws AddDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public SecuredRDFList copy() throws ReadDeniedException, 
AddDeniedException;
+       public SecuredRDFList copy() throws ReadDeniedException,
+                       AddDeniedException, AuthenticationRequiredException;
 
        /**
         * Answer the node that is the i'th element of the list, assuming that 
the
-        * head is item zero. If the list is too
-        * short to have an i'th element, throws a ListIndexException.
+        * head is item zero. If the list is too short to have an i'th element,
+        * throws a ListIndexException.
         * 
         * List may be shortened by security constraints.
         * 
@@ -176,10 +205,13 @@ public interface SecuredRDFList extends RDFList, 
SecuredResource
         * @throws EmptyListException
         * @throws ListIndexException
         * @throws InvalidListException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public SecuredRDFNode get( final int i ) throws ReadDeniedException,
-                       EmptyListException, ListIndexException, 
InvalidListException;
+       public SecuredRDFNode get(final int i) throws ReadDeniedException,
+                       EmptyListException, ListIndexException, 
InvalidListException,
+                       AuthenticationRequiredException;
 
        /**
         * The value that is at the head of the list.
@@ -190,9 +222,12 @@ public interface SecuredRDFList extends RDFList, 
SecuredResource
         * @sec.triple Read for triple containing value.
         * @throws ReadDeniedException
         * @throws EmptyListException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public RDFNode getHead() throws ReadDeniedException, EmptyListException;
+       public RDFNode getHead() throws ReadDeniedException, EmptyListException,
+                       AuthenticationRequiredException;
 
        /**
         * The value that is at the tail of the list.
@@ -205,17 +240,23 @@ public interface SecuredRDFList extends RDFList, 
SecuredResource
         * @throws EmptyListException
         * @throws ListIndexException
         * @throws InvalidListException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
        public SecuredRDFList getTail() throws ReadDeniedException,
-                       EmptyListException, ListIndexException, 
InvalidListException;
+                       EmptyListException, ListIndexException, 
InvalidListException,
+                       AuthenticationRequiredException;
 
        /**
         * @sec.graph Read
         * @throws ReadDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public String getValidityErrorMessage() throws ReadDeniedException;
+       public String getValidityErrorMessage() throws ReadDeniedException,
+                       AuthenticationRequiredException;
 
        /**
         * @sec.graph Read
@@ -224,10 +265,13 @@ public interface SecuredRDFList extends RDFList, 
SecuredResource
         * @throws EmptyListException
         * @throws ListIndexException
         * @throws InvalidListException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public int indexOf( final RDFNode value ) throws ReadDeniedException,
-                       EmptyListException, ListIndexException, 
InvalidListException;
+       public int indexOf(final RDFNode value) throws ReadDeniedException,
+                       EmptyListException, ListIndexException, 
InvalidListException,
+                       AuthenticationRequiredException;
 
        /**
         * @sec.graph Read
@@ -236,49 +280,62 @@ public interface SecuredRDFList extends RDFList, 
SecuredResource
         * @throws EmptyListException
         * @throws ListIndexException
         * @throws InvalidListException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public int indexOf( final RDFNode value, final int start )
-                       throws ReadDeniedException, EmptyListException,
-                       ListIndexException, InvalidListException;
+       public int indexOf(final RDFNode value, final int start)
+                       throws ReadDeniedException, EmptyListException, 
ListIndexException,
+                       InvalidListException, AuthenticationRequiredException;
 
        /**
         * @sec.graph Read
         * @throws ReadDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public boolean isEmpty() throws ReadDeniedException;
+       public boolean isEmpty() throws ReadDeniedException,
+                       AuthenticationRequiredException;
 
        /**
         * @sec.graph Read
         * @throws ReadDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
        public boolean isValid() throws ReadDeniedException, EmptyListException,
-                       ListIndexException, InvalidListException;
+                       ListIndexException, InvalidListException,
+                       AuthenticationRequiredException;
 
        /**
         * @sec.graph Read
-        * @sec.triple Read for triple containing value to be included in the 
result.
+        * @sec.triple Read for triple containing value to be included in the
+        *             result.
         * @throws ReadDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public ExtendedIterator<RDFNode> iterator() throws ReadDeniedException;
+       public ExtendedIterator<RDFNode> iterator() throws ReadDeniedException,
+                       AuthenticationRequiredException;
 
        /**
         * @sec.graph Read
         * @sec.triple Read + requiredPerms for triple containing value to be
-        *            included in the result.
+        *             included in the result.
         * @throws ReadDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
-       public ExtendedIterator<RDFNode> iterator( Set<Action> requiredPerms )
-                       throws ReadDeniedException, EmptyListException,
-                       ListIndexException, InvalidListException;
+       public ExtendedIterator<RDFNode> iterator(Set<Action> requiredPerms)
+                       throws ReadDeniedException, EmptyListException, 
ListIndexException,
+                       InvalidListException, AuthenticationRequiredException;
 
        /**
         * Only readable triples will be passed to the function. If the function
-        * does
-        * any action other than read those permissions must also be granted.
+        * does any action other than read those permissions must also be 
granted.
         * 
         * @sec.graph Read
         * @sec.triple Read for triple containing value.
@@ -286,15 +343,17 @@ public interface SecuredRDFList extends RDFList, 
SecuredResource
         * @throws EmptyListException
         * @throws ListIndexException
         * @throws InvalidListException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public Object reduce( final ReduceFn fn, final Object initial )
-                       throws ReadDeniedException, EmptyListException,
-                       ListIndexException, InvalidListException;
+       public Object reduce(final ReduceFn fn, final Object initial)
+                       throws ReadDeniedException, EmptyListException, 
ListIndexException,
+                       InvalidListException, AuthenticationRequiredException;
 
        /**
-        * Only readable triples will be passed to the function. In addition,
-        * only triples that pass the requiredActions tests will be passed to 
the
+        * Only readable triples will be passed to the function. In addition, 
only
+        * triples that pass the requiredActions tests will be passed to the
         * function.
         * 
         * @sec.graph Read
@@ -310,10 +369,13 @@ public interface SecuredRDFList extends RDFList, 
SecuredResource
         * @throws EmptyListException
         * @throws ListIndexException
         * @throws InvalidListException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
-       public Object reduce( Set<Action> requiredActions, final ReduceFn fn,
-                       final Object initial ) throws ReadDeniedException,
-                       EmptyListException, ListIndexException, 
InvalidListException;
+       public Object reduce(Set<Action> requiredActions, final ReduceFn fn,
+                       final Object initial) throws ReadDeniedException,
+                       EmptyListException, ListIndexException, 
InvalidListException,
+                       AuthenticationRequiredException;
 
        /**
         * @sec.graph Update
@@ -323,9 +385,12 @@ public interface SecuredRDFList extends RDFList, 
SecuredResource
         * @throws EmptyListException
         * @throws ListIndexException
         * @throws InvalidListException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public RDFList remove( final RDFNode val ) throws 
UpdateDeniedException, DeleteDeniedException;
+       public RDFList remove(final RDFNode val) throws UpdateDeniedException,
+                       DeleteDeniedException, AuthenticationRequiredException;
 
        /**
         * @sec.graph Update
@@ -335,10 +400,13 @@ public interface SecuredRDFList extends RDFList, 
SecuredResource
         * @throws EmptyListException
         * @throws ListIndexException
         * @throws InvalidListException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
        @Deprecated
-       public void removeAll() throws UpdateDeniedException, 
DeleteDeniedException;
+       public void removeAll() throws UpdateDeniedException,
+                       DeleteDeniedException, AuthenticationRequiredException;
 
        /**
         * @sec.graph Update
@@ -348,9 +416,12 @@ public interface SecuredRDFList extends RDFList, 
SecuredResource
         * @throws EmptyListException
         * @throws ListIndexException
         * @throws InvalidListException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public RDFList removeHead() throws UpdateDeniedException, 
DeleteDeniedException;
+       public RDFList removeHead() throws UpdateDeniedException,
+                       DeleteDeniedException, AuthenticationRequiredException;
 
        /**
         * @sec.graph Update
@@ -360,9 +431,12 @@ public interface SecuredRDFList extends RDFList, 
SecuredResource
         * @throws EmptyListException
         * @throws ListIndexException
         * @throws InvalidListException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public void removeList() throws UpdateDeniedException, 
DeleteDeniedException;
+       public void removeList() throws UpdateDeniedException,
+                       DeleteDeniedException, AuthenticationRequiredException;
 
        /**
         * @sec.graph Update
@@ -371,10 +445,12 @@ public interface SecuredRDFList extends RDFList, 
SecuredResource
         * @throws EmptyListException
         * @throws ListIndexException
         * @throws InvalidListException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public SecuredRDFNode replace( final int i, final RDFNode value )
-                       throws UpdateDeniedException;
+       public SecuredRDFNode replace(final int i, final RDFNode value)
+                       throws UpdateDeniedException, 
AuthenticationRequiredException;
 
        /**
         * @sec.graph Read
@@ -383,10 +459,12 @@ public interface SecuredRDFList extends RDFList, 
SecuredResource
         * @throws EmptyListException
         * @throws ListIndexException
         * @throws InvalidListException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public boolean sameListAs( final RDFList list )
-                       throws ReadDeniedException;
+       public boolean sameListAs(final RDFList list) throws 
ReadDeniedException,
+                       AuthenticationRequiredException;
 
        /**
         * @sec.graph Update
@@ -396,17 +474,23 @@ public interface SecuredRDFList extends RDFList, 
SecuredResource
         * @throws EmptyListException
         * @throws ListIndexException
         * @throws InvalidListException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public SecuredRDFNode setHead( final RDFNode value )
-                       throws UpdateDeniedException, DeleteDeniedException;
+       public SecuredRDFNode setHead(final RDFNode value)
+                       throws UpdateDeniedException, DeleteDeniedException,
+                       AuthenticationRequiredException;
 
        /**
         * @sec.graph Update
         * @throws UpdateDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public void setStrict( final boolean strict ) throws 
UpdateDeniedException;
+       public void setStrict(final boolean strict) throws 
UpdateDeniedException,
+                       AuthenticationRequiredException;
 
        /**
         * Size may be modified by security constraionts.
@@ -417,18 +501,24 @@ public interface SecuredRDFList extends RDFList, 
SecuredResource
         * @throws EmptyListException
         * @throws ListIndexException
         * @throws InvalidListException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public int size() throws ReadDeniedException;
+       public int size() throws ReadDeniedException,
+                       AuthenticationRequiredException;
 
        /**
         * @sec.graph Update
         * @sec.triple Create for triple containing value.
         * @throws UpdateDeniedException
         * @throws DeleteDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public SecuredRDFList with( final RDFNode value )
-                       throws UpdateDeniedException, DeleteDeniedException;
+       public SecuredRDFList with(final RDFNode value)
+                       throws UpdateDeniedException, DeleteDeniedException,
+                       AuthenticationRequiredException;
 
 }

http://git-wip-us.apache.org/repos/asf/jena/blob/2c0454c6/jena-permissions/src/main/java/org/apache/jena/permissions/model/SecuredRDFNode.java
----------------------------------------------------------------------
diff --git 
a/jena-permissions/src/main/java/org/apache/jena/permissions/model/SecuredRDFNode.java
 
b/jena-permissions/src/main/java/org/apache/jena/permissions/model/SecuredRDFNode.java
index c67cdb4..d650ec0 100644
--- 
a/jena-permissions/src/main/java/org/apache/jena/permissions/model/SecuredRDFNode.java
+++ 
b/jena-permissions/src/main/java/org/apache/jena/permissions/model/SecuredRDFNode.java
@@ -17,10 +17,11 @@
  */
 package org.apache.jena.permissions.model;
 
-import org.apache.jena.graph.Node ;
+import org.apache.jena.graph.Node;
 import org.apache.jena.permissions.SecuredItem;
-import org.apache.jena.rdf.model.Model ;
-import org.apache.jena.rdf.model.RDFNode ;
+import org.apache.jena.rdf.model.Model;
+import org.apache.jena.rdf.model.RDFNode;
+import org.apache.jena.shared.AuthenticationRequiredException;
 import org.apache.jena.shared.ReadDeniedException;
 
 /**
@@ -28,23 +29,27 @@ import org.apache.jena.shared.ReadDeniedException;
  * 
  * Use one the SecuredRDFNode derived class Factories to create instances
  */
-public interface SecuredRDFNode extends RDFNode, SecuredItem
-{
+public interface SecuredRDFNode extends RDFNode, SecuredItem {
 
        /**
         * @sec.graph Read
         * @throws ReadDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public Node asNode() throws ReadDeniedException;
+       public Node asNode() throws ReadDeniedException,
+                       AuthenticationRequiredException;
 
        /**
         * @sec.graph Read
         * @throws ReadDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public <T extends RDFNode> boolean canAs( final Class<T> view )
-                       throws ReadDeniedException;
+       public <T extends RDFNode> boolean canAs(final Class<T> view)
+                       throws ReadDeniedException, 
AuthenticationRequiredException;
 
        @Override
        public SecuredModel getModel();
@@ -52,8 +57,11 @@ public interface SecuredRDFNode extends RDFNode, SecuredItem
        /**
         * @sec.graph Read
         * @throws ReadDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public RDFNode inModel( final Model m ) throws ReadDeniedException;
+       public RDFNode inModel(final Model m) throws ReadDeniedException,
+                       AuthenticationRequiredException;
 
 }

http://git-wip-us.apache.org/repos/asf/jena/blob/2c0454c6/jena-permissions/src/main/java/org/apache/jena/permissions/model/SecuredReifiedStatement.java
----------------------------------------------------------------------
diff --git 
a/jena-permissions/src/main/java/org/apache/jena/permissions/model/SecuredReifiedStatement.java
 
b/jena-permissions/src/main/java/org/apache/jena/permissions/model/SecuredReifiedStatement.java
index 5661ec9..ada6886 100644
--- 
a/jena-permissions/src/main/java/org/apache/jena/permissions/model/SecuredReifiedStatement.java
+++ 
b/jena-permissions/src/main/java/org/apache/jena/permissions/model/SecuredReifiedStatement.java
@@ -17,8 +17,8 @@
  */
 package org.apache.jena.permissions.model;
 
-
-import org.apache.jena.rdf.model.ReifiedStatement ;
+import org.apache.jena.rdf.model.ReifiedStatement;
+import org.apache.jena.shared.AuthenticationRequiredException;
 import org.apache.jena.shared.ReadDeniedException;
 
 /**
@@ -27,13 +27,15 @@ import org.apache.jena.shared.ReadDeniedException;
  * Use the SecuredReifiedStatement.Factory to create instances
  */
 public interface SecuredReifiedStatement extends ReifiedStatement,
-               SecuredResource
-{
+               SecuredResource {
        /**
         * @sec.graph Read
         * @throws ReadDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public SecuredStatement getStatement() throws ReadDeniedException;
+       public SecuredStatement getStatement() throws ReadDeniedException,
+                       AuthenticationRequiredException;
 
 }

http://git-wip-us.apache.org/repos/asf/jena/blob/2c0454c6/jena-permissions/src/main/java/org/apache/jena/permissions/model/SecuredResource.java
----------------------------------------------------------------------
diff --git 
a/jena-permissions/src/main/java/org/apache/jena/permissions/model/SecuredResource.java
 
b/jena-permissions/src/main/java/org/apache/jena/permissions/model/SecuredResource.java
index c549685..361cf18 100644
--- 
a/jena-permissions/src/main/java/org/apache/jena/permissions/model/SecuredResource.java
+++ 
b/jena-permissions/src/main/java/org/apache/jena/permissions/model/SecuredResource.java
@@ -17,10 +17,11 @@
  */
 package org.apache.jena.permissions.model;
 
-import org.apache.jena.datatypes.RDFDatatype ;
+import org.apache.jena.datatypes.RDFDatatype;
 import org.apache.jena.permissions.model.impl.SecuredStatementIterator;
-import org.apache.jena.rdf.model.* ;
+import org.apache.jena.rdf.model.*;
 import org.apache.jena.shared.AddDeniedException;
+import org.apache.jena.shared.AuthenticationRequiredException;
 import org.apache.jena.shared.DeleteDeniedException;
 import org.apache.jena.shared.ReadDeniedException;
 import org.apache.jena.shared.UpdateDeniedException;
@@ -30,8 +31,7 @@ import org.apache.jena.shared.UpdateDeniedException;
  * 
  * Use the SecuredResource.Factory to create instances
  */
-public interface SecuredResource extends Resource, SecuredRDFNode
-{
+public interface SecuredResource extends Resource, SecuredRDFNode {
 
        @Override
        public SecuredResource abort();
@@ -41,110 +41,143 @@ public interface SecuredResource extends Resource, 
SecuredRDFNode
         * @sec.triple Create (this, p, o )
         * @throws UpdateDeniedException
         * @throws AddDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public SecuredResource addLiteral( final Property p, final boolean o )
-                       throws UpdateDeniedException, AddDeniedException;
+       public SecuredResource addLiteral(final Property p, final boolean o)
+                       throws UpdateDeniedException, AddDeniedException,
+                       AuthenticationRequiredException;
 
        /**
         * @sec.graph Update
         * @sec.triple Create (this, p, o )
         * @throws UpdateDeniedException
         * @throws AddDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public Resource addLiteral( final Property p, final char o )
-                       throws UpdateDeniedException, AddDeniedException;
+       public Resource addLiteral(final Property p, final char o)
+                       throws UpdateDeniedException, AddDeniedException,
+                       AuthenticationRequiredException;
 
        /**
         * @sec.graph Update
         * @sec.triple Create (this, value, d )
         * @throws UpdateDeniedException
         * @throws AddDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public Resource addLiteral( final Property value, final double d )
-                       throws UpdateDeniedException, AddDeniedException;
+       public Resource addLiteral(final Property value, final double d)
+                       throws UpdateDeniedException, AddDeniedException,
+                       AuthenticationRequiredException;
 
        /**
         * @sec.graph Update
         * @sec.triple Create (this, value, d )
         * @throws UpdateDeniedException
         * @throws AddDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public Resource addLiteral( final Property value, final float d )
-                       throws UpdateDeniedException, AddDeniedException;
+       public Resource addLiteral(final Property value, final float d)
+                       throws UpdateDeniedException, AddDeniedException,
+                       AuthenticationRequiredException;
 
        /**
         * @sec.graph Update
         * @sec.triple Create (this, p, o )
         * @throws UpdateDeniedException
         * @throws AddDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public Resource addLiteral( final Property p, final Literal o )
-                       throws UpdateDeniedException, AddDeniedException;
+       public Resource addLiteral(final Property p, final Literal o)
+                       throws UpdateDeniedException, AddDeniedException,
+                       AuthenticationRequiredException;
 
        /**
         * @sec.graph Update
         * @sec.triple Create (this, p, o )
         * @throws UpdateDeniedException
         * @throws AddDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public Resource addLiteral( final Property p, final long o )
-                       throws UpdateDeniedException, AddDeniedException;
+       public Resource addLiteral(final Property p, final long o)
+                       throws UpdateDeniedException, AddDeniedException,
+                       AuthenticationRequiredException;
 
        /**
         * @sec.graph Update
         * @sec.triple Create (this, p, o )
         * @throws UpdateDeniedException
         * @throws AddDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public Resource addLiteral( final Property p, final Object o )
-                       throws UpdateDeniedException, AddDeniedException;
+       public Resource addLiteral(final Property p, final Object o)
+                       throws UpdateDeniedException, AddDeniedException,
+                       AuthenticationRequiredException;
 
        /**
         * @sec.graph Update
         * @sec.triple Create (this, p, o )
         * @throws UpdateDeniedException
         * @throws AddDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public Resource addProperty( final Property p, final RDFNode o )
-                       throws UpdateDeniedException, AddDeniedException;
+       public Resource addProperty(final Property p, final RDFNode o)
+                       throws UpdateDeniedException, AddDeniedException,
+                       AuthenticationRequiredException;
 
        /**
         * @sec.graph Update
         * @sec.triple Create (this, p, o )
         * @throws UpdateDeniedException
         * @throws AddDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public Resource addProperty( final Property p, final String o )
-                       throws UpdateDeniedException, AddDeniedException;
+       public Resource addProperty(final Property p, final String o)
+                       throws UpdateDeniedException, AddDeniedException,
+                       AuthenticationRequiredException;
 
        /**
         * @sec.graph Update
         * @sec.triple Create (this, p, literal(lexicalForm,datatype) )
         * @throws UpdateDeniedException
         * @throws AddDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public Resource addProperty( final Property p, final String lexicalForm,
-                       final RDFDatatype datatype ) throws 
UpdateDeniedException, AddDeniedException;
+       public Resource addProperty(final Property p, final String lexicalForm,
+                       final RDFDatatype datatype) throws 
UpdateDeniedException,
+                       AddDeniedException, AuthenticationRequiredException;
 
        /**
         * @sec.graph Update
         * @sec.triple Create (this, p, o )
         * @throws UpdateDeniedException
         * @throws AddDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public Resource addProperty( final Property p, final String o,
-                       final String l ) throws UpdateDeniedException, 
AddDeniedException;
+       public Resource addProperty(final Property p, final String o, final 
String l)
+                       throws UpdateDeniedException, AddDeniedException,
+                       AuthenticationRequiredException;
 
        @Override
        public SecuredResource asResource();
@@ -158,192 +191,247 @@ public interface SecuredResource extends Resource, 
SecuredRDFNode
        /**
         * @sec.graph Read
         * @throws ReadDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public boolean equals( final Object o ) throws ReadDeniedException;
+       public boolean equals(final Object o) throws ReadDeniedException,
+                       AuthenticationRequiredException;
 
        /**
         * @sec.graph Read
         * @throws ReadDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public AnonId getId() throws ReadDeniedException;
+       public AnonId getId() throws ReadDeniedException,
+                       AuthenticationRequiredException;
 
        /**
         * @sec.graph Read
         * @throws ReadDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public String getLocalName() throws ReadDeniedException;
+       public String getLocalName() throws ReadDeniedException,
+                       AuthenticationRequiredException;
 
        /**
         * @sec.graph Read
         * @throws ReadDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public String getNameSpace() throws ReadDeniedException;
+       public String getNameSpace() throws ReadDeniedException,
+                       AuthenticationRequiredException;
 
        /**
         * @sec.graph Read
         * @throws ReadDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public SecuredStatement getProperty( final Property p )
-                       throws ReadDeniedException;
+       public SecuredStatement getProperty(final Property p)
+                       throws ReadDeniedException, 
AuthenticationRequiredException;
 
        /**
         * @sec.graph Read
         * @throws ReadDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public SecuredResource getPropertyResourceValue( final Property p )
-                       throws ReadDeniedException;
+       public SecuredResource getPropertyResourceValue(final Property p)
+                       throws ReadDeniedException, 
AuthenticationRequiredException;
 
        /**
         * @sec.graph Read
         * @throws ReadDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public SecuredStatement getRequiredProperty( final Property p )
-                       throws ReadDeniedException;
+       public SecuredStatement getRequiredProperty(final Property p)
+                       throws ReadDeniedException, 
AuthenticationRequiredException;
 
        /**
         * @sec.graph Read
         * @throws ReadDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public String getURI() throws ReadDeniedException;
+       public String getURI() throws ReadDeniedException,
+                       AuthenticationRequiredException;
 
        /**
         * @sec.graph Read
         * @sec.triple Read SecTriple(this,p,o)
         * @throws ReadDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public boolean hasLiteral( final Property p, final boolean o )
-                       throws ReadDeniedException;
+       public boolean hasLiteral(final Property p, final boolean o)
+                       throws ReadDeniedException, 
AuthenticationRequiredException;
 
        /**
         * @sec.graph Read
         * @sec.triple Read SecTriple(this,p,o)
         * @throws ReadDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public boolean hasLiteral( final Property p, final char o )
-                       throws ReadDeniedException;
+       public boolean hasLiteral(final Property p, final char o)
+                       throws ReadDeniedException, 
AuthenticationRequiredException;
 
        /**
         * @sec.graph Read
         * @sec.triple Read SecTriple(this,p,o)
         * @throws ReadDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public boolean hasLiteral( final Property p, final double o )
-                       throws ReadDeniedException;
+       public boolean hasLiteral(final Property p, final double o)
+                       throws ReadDeniedException, 
AuthenticationRequiredException;
 
        /**
         * @sec.graph Read
         * @sec.triple Read SecTriple(this,p,o)
         * @throws ReadDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public boolean hasLiteral( final Property p, final float o )
-                       throws ReadDeniedException;
+       public boolean hasLiteral(final Property p, final float o)
+                       throws ReadDeniedException, 
AuthenticationRequiredException;
 
        /**
         * @sec.graph Read
         * @sec.triple Read SecTriple(this,p,o)
         * @throws ReadDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public boolean hasLiteral( final Property p, final long o )
-                       throws ReadDeniedException;
+       public boolean hasLiteral(final Property p, final long o)
+                       throws ReadDeniedException, 
AuthenticationRequiredException;
 
        /**
         * @sec.graph Read
         * @sec.triple Read SecTriple(this,p,o)
         * @throws ReadDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public boolean hasLiteral( final Property p, final Object o )
-                       throws ReadDeniedException;
+       public boolean hasLiteral(final Property p, final Object o)
+                       throws ReadDeniedException, 
AuthenticationRequiredException;
 
        /**
         * @sec.graph Read
         * @sec.triple Read SecTriple(this,p,o)
         * @throws ReadDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public boolean hasProperty( final Property p ) throws 
ReadDeniedException;
+       public boolean hasProperty(final Property p) throws ReadDeniedException,
+                       AuthenticationRequiredException;
 
        /**
         * @sec.graph Read
         * @sec.triple Read SecTriple(this,p,o)
         * @throws ReadDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public boolean hasProperty( final Property p, final RDFNode o )
-                       throws ReadDeniedException;
+       public boolean hasProperty(final Property p, final RDFNode o)
+                       throws ReadDeniedException, 
AuthenticationRequiredException;
 
        /**
         * @sec.graph Read
         * @sec.triple Read SecTriple(this,p,o)
         * @throws ReadDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public boolean hasProperty( final Property p, final String o )
-                       throws ReadDeniedException;
+       public boolean hasProperty(final Property p, final String o)
+                       throws ReadDeniedException, 
AuthenticationRequiredException;
 
        /**
         * @sec.graph Read
         * @sec.triple Read SecTriple(this,p,literal(o,l))
         * @throws ReadDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public boolean hasProperty( final Property p, final String o, final 
String l )
-                       throws ReadDeniedException;
+       public boolean hasProperty(final Property p, final String o, final 
String l)
+                       throws ReadDeniedException, 
AuthenticationRequiredException;
 
        /**
         * @sec.graph Read
         * @throws ReadDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public boolean hasURI( final String uri ) throws ReadDeniedException;
+       public boolean hasURI(final String uri) throws ReadDeniedException,
+                       AuthenticationRequiredException;
 
        /**
         * @sec.graph Read
         * @sec.triple Read on returned Statements
         * @throws ReadDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
        public SecuredStatementIterator listProperties()
-                       throws ReadDeniedException;
+                       throws ReadDeniedException, 
AuthenticationRequiredException;
 
        /**
         * @sec.graph Read
         * @sec.triple Read on returned Statements
         * @throws ReadDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public SecuredStatementIterator listProperties( final Property p )
-                       throws ReadDeniedException;
+       public SecuredStatementIterator listProperties(final Property p)
+                       throws ReadDeniedException, 
AuthenticationRequiredException;
 
        /**
         * @sec.graph Update
         * @sec.triple Delete on associated Statements
         * @throws UpdateDeniedException
         * @throws DeleteDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public SecuredResource removeAll( final Property p )
-                       throws UpdateDeniedException, DeleteDeniedException;
+       public SecuredResource removeAll(final Property p)
+                       throws UpdateDeniedException, DeleteDeniedException,
+                       AuthenticationRequiredException;
 
        /**
         * @sec.graph Update
         * @sec.triple Delete on all Statements
         * @throws UpdateDeniedException
         * @throws DeleteDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public SecuredResource removeProperties() throws UpdateDeniedException, 
DeleteDeniedException;
+       public SecuredResource removeProperties() throws UpdateDeniedException,
+                       DeleteDeniedException, AuthenticationRequiredException;
 }

http://git-wip-us.apache.org/repos/asf/jena/blob/2c0454c6/jena-permissions/src/main/java/org/apache/jena/permissions/model/SecuredSeq.java
----------------------------------------------------------------------
diff --git 
a/jena-permissions/src/main/java/org/apache/jena/permissions/model/SecuredSeq.java
 
b/jena-permissions/src/main/java/org/apache/jena/permissions/model/SecuredSeq.java
index 62dd772..e72084b 100644
--- 
a/jena-permissions/src/main/java/org/apache/jena/permissions/model/SecuredSeq.java
+++ 
b/jena-permissions/src/main/java/org/apache/jena/permissions/model/SecuredSeq.java
@@ -17,10 +17,10 @@
  */
 package org.apache.jena.permissions.model;
 
-
-import org.apache.jena.rdf.model.RDFNode ;
-import org.apache.jena.rdf.model.ResourceF ;
-import org.apache.jena.rdf.model.Seq ;
+import org.apache.jena.rdf.model.RDFNode;
+import org.apache.jena.rdf.model.ResourceF;
+import org.apache.jena.rdf.model.Seq;
+import org.apache.jena.shared.AuthenticationRequiredException;
 import org.apache.jena.shared.DeleteDeniedException;
 import org.apache.jena.shared.ReadDeniedException;
 import org.apache.jena.shared.UpdateDeniedException;
@@ -35,311 +35,410 @@ import org.apache.jena.shared.UpdateDeniedException;
  * 
  */
 @SuppressWarnings("deprecation")
-public interface SecuredSeq extends Seq, SecuredContainer
-{
-       /**      * 
+public interface SecuredSeq extends Seq, SecuredContainer {
+       /**
         * @sec.graph Update
         * @sec.triple Create SecTriple( this, RDF.li(1), o )
         * @throws UpdateDeniedException
         * @throws DeleteDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public SecuredSeq add( final int index, final boolean o )
-                       throws UpdateDeniedException, DeleteDeniedException;
+       public SecuredSeq add(final int index, final boolean o)
+                       throws UpdateDeniedException, DeleteDeniedException,
+                       AuthenticationRequiredException;
 
        /**
         * @sec.graph Update
         * @sec.triple Create SecTriple( this, RDF.li(1), o )
         * @throws UpdateDeniedException
         * @throws DeleteDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public SecuredSeq add( final int index, final char o )
-                       throws UpdateDeniedException, DeleteDeniedException;
+       public SecuredSeq add(final int index, final char o)
+                       throws UpdateDeniedException, DeleteDeniedException,
+                       AuthenticationRequiredException;
 
        /**
         * @sec.graph Update
         * @sec.triple Create SecTriple( this, RDF.li(1), o )
         * @throws UpdateDeniedException
         * @throws DeleteDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public SecuredSeq add( final int index, final double o )
-                       throws UpdateDeniedException, DeleteDeniedException;
+       public SecuredSeq add(final int index, final double o)
+                       throws UpdateDeniedException, DeleteDeniedException,
+                       AuthenticationRequiredException;
 
        /**
         * @sec.graph Update
         * @sec.triple Create SecTriple( this, RDF.li(1), o )
         * @throws UpdateDeniedException
         * @throws DeleteDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public SecuredSeq add( final int index, final float o )
-                       throws UpdateDeniedException, DeleteDeniedException;
+       public SecuredSeq add(final int index, final float o)
+                       throws UpdateDeniedException, DeleteDeniedException,
+                       AuthenticationRequiredException;
 
        /**
         * @sec.graph Update
         * @sec.triple Create SecTriple( this, RDF.li(1), o )
         * @throws UpdateDeniedException
         * @throws DeleteDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public SecuredSeq add( final int index, final long o )
-                       throws UpdateDeniedException, DeleteDeniedException;
+       public SecuredSeq add(final int index, final long o)
+                       throws UpdateDeniedException, DeleteDeniedException,
+                       AuthenticationRequiredException;
 
        /**
         * @sec.graph Update
         * @sec.triple Create SecTriple( this, RDF.li(1), o )
         * @throws UpdateDeniedException
         * @throws DeleteDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public SecuredSeq add( final int index, final Object o )
-                       throws UpdateDeniedException, DeleteDeniedException;
+       public SecuredSeq add(final int index, final Object o)
+                       throws UpdateDeniedException, DeleteDeniedException,
+                       AuthenticationRequiredException;
 
        /**
         * @sec.graph Update
         * @sec.triple Create SecTriple( this, RDF.li(1), o )
         * @throws UpdateDeniedException
         * @throws DeleteDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public SecuredSeq add( final int index, final RDFNode o )
-                       throws UpdateDeniedException, DeleteDeniedException;
+       public SecuredSeq add(final int index, final RDFNode o)
+                       throws UpdateDeniedException, DeleteDeniedException,
+                       AuthenticationRequiredException;
 
        /**
         * @sec.graph Update
         * @sec.triple Create SecTriple( this, RDF.li(1), o )
         * @throws UpdateDeniedException
         * @throws DeleteDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public SecuredSeq add( final int index, final String o )
-                       throws UpdateDeniedException, DeleteDeniedException;
+       public SecuredSeq add(final int index, final String o)
+                       throws UpdateDeniedException, DeleteDeniedException,
+                       AuthenticationRequiredException;
 
        /**
         * @sec.graph Update
         * @sec.triple Create SecTriple( this, RDF.li(1), o )
         * @throws UpdateDeniedException
         * @throws DeleteDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public SecuredSeq add( final int index, final String o, final String l )
-                       throws UpdateDeniedException, DeleteDeniedException;
+       public SecuredSeq add(final int index, final String o, final String l)
+                       throws UpdateDeniedException, DeleteDeniedException,
+                       AuthenticationRequiredException;
 
        /**
         * @sec.graph Read
         * @sec.triple Read SecTriple( this, RDF.li(1), o )
         * @throws ReadDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public SecuredAlt getAlt( final int index ) throws ReadDeniedException;
+       public SecuredAlt getAlt(final int index) throws ReadDeniedException,
+                       AuthenticationRequiredException;
 
        /**
         * @sec.graph Read
         * @sec.triple Read SecTriple( this, RDF.li(1), o )
         * @throws ReadDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public SecuredBag getBag( final int index ) throws ReadDeniedException;
+       public SecuredBag getBag(final int index) throws ReadDeniedException,
+                       AuthenticationRequiredException;
 
        /**
         * @sec.graph Read
         * @sec.triple Read SecTriple( this, RDF.li(1), o )
         * @throws ReadDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public boolean getBoolean( final int index ) throws ReadDeniedException;
+       public boolean getBoolean(final int index) throws ReadDeniedException,
+                       AuthenticationRequiredException;
 
        /**
         * @sec.graph Read
         * @sec.triple Read SecTriple( this, RDF.li(1), o )
         * @throws ReadDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public byte getByte( final int index ) throws ReadDeniedException;
+       public byte getByte(final int index) throws ReadDeniedException,
+                       AuthenticationRequiredException;
 
        /**
         * @sec.graph Read
         * @sec.triple Read SecTriple( this, RDF.li(1), o )
         * @throws ReadDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public char getChar( final int index ) throws ReadDeniedException;
+       public char getChar(final int index) throws ReadDeniedException,
+                       AuthenticationRequiredException;
 
        /**
         * @sec.graph Read
         * @sec.triple Read SecTriple( this, RDF.li(1), o )
         * @throws ReadDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public double getDouble( final int index ) throws ReadDeniedException;
+       public double getDouble(final int index) throws ReadDeniedException,
+                       AuthenticationRequiredException;
 
        /**
         * @sec.graph Read
         * @sec.triple Read SecTriple( this, RDF.li(1), o )
         * @throws ReadDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public float getFloat( final int index ) throws ReadDeniedException;
+       public float getFloat(final int index) throws ReadDeniedException,
+                       AuthenticationRequiredException;
 
        /**
         * @sec.graph Read
         * @sec.triple Read SecTriple( this, RDF.li(1), o )
         * @throws ReadDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public int getInt( final int index ) throws ReadDeniedException;
+       public int getInt(final int index) throws ReadDeniedException,
+                       AuthenticationRequiredException;
 
        /**
         * @sec.graph Read
         * @sec.triple Read SecTriple( this, RDF.li(1), o )
         * @throws ReadDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public String getLanguage( final int index ) throws ReadDeniedException;
+       public String getLanguage(final int index) throws ReadDeniedException,
+                       AuthenticationRequiredException;
 
        /**
         * @sec.graph Read
         * @sec.triple Read SecTriple( this, RDF.li(1), o )
         * @throws ReadDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public SecuredLiteral getLiteral( final int index )
-                       throws ReadDeniedException;
+       public SecuredLiteral getLiteral(final int index)
+                       throws ReadDeniedException, 
AuthenticationRequiredException;
 
        /**
         * @sec.graph Read
         * @sec.triple Read SecTriple( this, RDF.li(1), o )
         * @throws ReadDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public long getLong( final int index ) throws ReadDeniedException;
+       public long getLong(final int index) throws ReadDeniedException,
+                       AuthenticationRequiredException;
 
        /**
         * @sec.graph Read
         * @sec.triple Read SecTriple( this, RDF.li(1), o )
         * @throws ReadDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public SecuredRDFNode getObject( final int index )
-                       throws ReadDeniedException;
+       public SecuredRDFNode getObject(final int index)
+                       throws ReadDeniedException, 
AuthenticationRequiredException;
 
        /**
         * @sec.graph Read
         * @sec.triple Read SecTriple( this, RDF.li(1), o )
         * @throws ReadDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public SecuredResource getResource( final int index )
-                       throws ReadDeniedException;
+       public SecuredResource getResource(final int index)
+                       throws ReadDeniedException, 
AuthenticationRequiredException;
 
        /**
         * @sec.graph Read
         * @sec.triple Read SecTriple( this, RDF.li(1), o )
         * @throws ReadDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
        @Deprecated
-       public SecuredResource getResource( final int index, final ResourceF f )
-                       throws ReadDeniedException;
+       public SecuredResource getResource(final int index, final ResourceF f)
+                       throws ReadDeniedException, 
AuthenticationRequiredException;
 
        /**
         * @sec.graph Read
         * @sec.triple Read SecTriple( this, RDF.li(1), o )
         * @throws ReadDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public SecuredSeq getSeq( final int index ) throws ReadDeniedException;
+       public SecuredSeq getSeq(final int index) throws ReadDeniedException,
+                       AuthenticationRequiredException;
 
        /**
         * @sec.graph Read
         * @sec.triple Read SecTriple( this, RDF.li(1), o )
         * @throws ReadDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public short getShort( final int index ) throws ReadDeniedException;
+       public short getShort(final int index) throws ReadDeniedException,
+                       AuthenticationRequiredException;
 
        /**
         * @sec.graph Read
         * @sec.triple Read SecTriple( this, RDF.li(1), o )
         * @throws ReadDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public String getString( final int index ) throws ReadDeniedException;
+       public String getString(final int index) throws ReadDeniedException,
+                       AuthenticationRequiredException;
 
        /**
         * @sec.graph Read
         * @sec.triple Read SecTriple( this, RDF.li(1), o )
         * @throws ReadDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public int indexOf( final boolean o ) throws ReadDeniedException;
+       public int indexOf(final boolean o) throws ReadDeniedException,
+                       AuthenticationRequiredException;
 
        /**
         * @sec.graph Read
         * @sec.triple Read SecTriple( this, RDF.li(1), o )
         * @throws ReadDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public int indexOf( final char o ) throws ReadDeniedException;
+       public int indexOf(final char o) throws ReadDeniedException,
+                       AuthenticationRequiredException;
 
        /**
         * @sec.graph Read
         * @sec.triple Read SecTriple( this, RDF.li(1), o )
         * @throws ReadDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public int indexOf( final double o ) throws ReadDeniedException;
+       public int indexOf(final double o) throws ReadDeniedException,
+                       AuthenticationRequiredException;
 
        /**
         * @sec.graph Read
         * @sec.triple Read SecTriple( this, RDF.li(1), o )
         * @throws ReadDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public int indexOf( final float o ) throws ReadDeniedException;
+       public int indexOf(final float o) throws ReadDeniedException,
+                       AuthenticationRequiredException;
 
        /**
         * @sec.graph Read
         * @sec.triple Read SecTriple( this, RDF.li(1), o )
         * @throws ReadDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public int indexOf( final long o ) throws ReadDeniedException;
+       public int indexOf(final long o) throws ReadDeniedException,
+                       AuthenticationRequiredException;
 
        /**
         * @sec.graph Read
         * @sec.triple Read SecTriple( this, RDF.li(1), o )
         * @throws ReadDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public int indexOf( final Object o ) throws ReadDeniedException;
+       public int indexOf(final Object o) throws ReadDeniedException,
+                       AuthenticationRequiredException;
 
        /**
         * @sec.graph Read
         * @sec.triple Read SecTriple( this, RDF.li(1), o )
         * @throws ReadDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public int indexOf( final RDFNode o ) throws ReadDeniedException;
+       public int indexOf(final RDFNode o) throws ReadDeniedException,
+                       AuthenticationRequiredException;
 
        /**
         * @sec.graph Read
         * @sec.triple Read SecTriple( this, RDF.li(1), o )
         * @throws ReadDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public int indexOf( final String o ) throws ReadDeniedException;
+       public int indexOf(final String o) throws ReadDeniedException,
+                       AuthenticationRequiredException;
 
        /**
         * @sec.graph Read
         * @sec.triple Read SecTriple( this, RDF.li(1), o )
         * @throws ReadDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public int indexOf( final String o, final String l )
-                       throws ReadDeniedException;
+       public int indexOf(final String o, final String l)
+                       throws ReadDeniedException, 
AuthenticationRequiredException;
 
        /**
         * @sec.graph Update
@@ -347,98 +446,119 @@ public interface SecuredSeq extends Seq, SecuredContainer
         * @sec.triple Update Triples after index
         * @throws UpdateDeniedException
         * @throws DeleteDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public SecuredSeq remove( final int index ) throws 
UpdateDeniedException, DeleteDeniedException;
+       public SecuredSeq remove(final int index) throws UpdateDeniedException,
+                       DeleteDeniedException, AuthenticationRequiredException;
 
        /**
         * @sec.graph Update
         * @sec.triple Update SecTriple( this, RDF.li(index), old ) SecTriple( 
this,
-        *            RDF.li(index), o )
+        *             RDF.li(index), o )
         * @throws UpdateDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public SecuredSeq set( final int index, final boolean o )
-                       throws UpdateDeniedException;
+       public SecuredSeq set(final int index, final boolean o)
+                       throws UpdateDeniedException, 
AuthenticationRequiredException;
 
        /**
         * @sec.graph Update
         * @sec.triple Update SecTriple( this, RDF.li(index), old ) SecTriple( 
this,
-        *            RDF.li(index), o )
+        *             RDF.li(index), o )
         * @throws UpdateDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public SecuredSeq set( final int index, final char o )
-                       throws UpdateDeniedException;
+       public SecuredSeq set(final int index, final char o)
+                       throws UpdateDeniedException, 
AuthenticationRequiredException;
 
        /**
         * @sec.graph Update
         * @sec.triple Update SecTriple( this, RDF.li(index), old ) SecTriple( 
this,
-        *            RDF.li(index), o )
+        *             RDF.li(index), o )
         * @throws UpdateDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public SecuredSeq set( final int index, final double o )
-                       throws UpdateDeniedException;
+       public SecuredSeq set(final int index, final double o)
+                       throws UpdateDeniedException, 
AuthenticationRequiredException;
 
        /**
         * @sec.graph Update
         * @sec.triple Update SecTriple( this, RDF.li(index), old ) SecTriple( 
this,
-        *            RDF.li(index), o )
+        *             RDF.li(index), o )
         * @throws UpdateDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public SecuredSeq set( final int index, final float o )
-                       throws UpdateDeniedException;
+       public SecuredSeq set(final int index, final float o)
+                       throws UpdateDeniedException, 
AuthenticationRequiredException;
 
        /**
         * @sec.graph Update
         * @sec.triple Update SecTriple( this, RDF.li(index), old ) SecTriple( 
this,
-        *            RDF.li(index), o )
+        *             RDF.li(index), o )
         * @throws UpdateDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public SecuredSeq set( final int index, final long o )
-                       throws UpdateDeniedException;
+       public SecuredSeq set(final int index, final long o)
+                       throws UpdateDeniedException, 
AuthenticationRequiredException;
 
        /**
         * @sec.graph Update
         * @sec.triple Update SecTriple( this, RDF.li(index), old ) SecTriple( 
this,
-        *            RDF.li(index), o )
+        *             RDF.li(index), o )
         * @throws UpdateDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public SecuredSeq set( final int index, final Object o )
-                       throws UpdateDeniedException;
+       public SecuredSeq set(final int index, final Object o)
+                       throws UpdateDeniedException, 
AuthenticationRequiredException;
 
        /**
         * @sec.graph Update
         * @sec.triple Update SecTriple( this, RDF.li(index), old ) SecTriple( 
this,
-        *            RDF.li(index), o )
+        *             RDF.li(index), o )
         * @throws UpdateDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public SecuredSeq set( final int index, final RDFNode o )
-                       throws UpdateDeniedException;
+       public SecuredSeq set(final int index, final RDFNode o)
+                       throws UpdateDeniedException, 
AuthenticationRequiredException;
 
        /**
         * @sec.graph Update
         * @sec.triple Update SecTriple( this, RDF.li(index), old ) SecTriple( 
this,
-        *            RDF.li(index), o )
+        *             RDF.li(index), o )
         * @throws UpdateDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public SecuredSeq set( final int index, final String o )
-                       throws UpdateDeniedException;
+       public SecuredSeq set(final int index, final String o)
+                       throws UpdateDeniedException, 
AuthenticationRequiredException;
 
        /**
         * @sec.graph Update
         * @sec.triple Update SecTriple( this, RDF.li(index), old ) SecTriple( 
this,
-        *            RDF.li(index), o )
+        *             RDF.li(index), o )
         * @throws UpdateDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public SecuredSeq set( final int index, final String o, final String l )
-                       throws UpdateDeniedException;
+       public SecuredSeq set(final int index, final String o, final String l)
+                       throws UpdateDeniedException, 
AuthenticationRequiredException;
 
 }

http://git-wip-us.apache.org/repos/asf/jena/blob/2c0454c6/jena-permissions/src/main/java/org/apache/jena/permissions/model/SecuredStatement.java
----------------------------------------------------------------------
diff --git 
a/jena-permissions/src/main/java/org/apache/jena/permissions/model/SecuredStatement.java
 
b/jena-permissions/src/main/java/org/apache/jena/permissions/model/SecuredStatement.java
index 8c83f1c..b6efe03 100644
--- 
a/jena-permissions/src/main/java/org/apache/jena/permissions/model/SecuredStatement.java
+++ 
b/jena-permissions/src/main/java/org/apache/jena/permissions/model/SecuredStatement.java
@@ -17,10 +17,10 @@
  */
 package org.apache.jena.permissions.model;
 
-
 import org.apache.jena.permissions.SecuredItem;
-import org.apache.jena.rdf.model.* ;
+import org.apache.jena.rdf.model.*;
 import org.apache.jena.shared.AddDeniedException;
+import org.apache.jena.shared.AuthenticationRequiredException;
 import org.apache.jena.shared.DeleteDeniedException;
 import org.apache.jena.shared.ReadDeniedException;
 import org.apache.jena.shared.UpdateDeniedException;
@@ -30,106 +30,127 @@ import org.apache.jena.shared.UpdateDeniedException;
  * 
  * Use the SecuredStatement.Factory to create instances
  */
-public interface SecuredStatement extends Statement, SecuredItem
-{
+public interface SecuredStatement extends Statement, SecuredItem {
        /**
         * @sec.graph Update
         * @sec.triple Update
         * @throws UpdateDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public SecuredStatement changeLiteralObject( boolean o )
-                       throws UpdateDeniedException;
+       public SecuredStatement changeLiteralObject(boolean o)
+                       throws UpdateDeniedException, 
AuthenticationRequiredException;
 
        /**
         * @sec.graph Update
         * @sec.triple Update
         * @throws UpdateDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public SecuredStatement changeLiteralObject( char o )
-                       throws UpdateDeniedException;
+       public SecuredStatement changeLiteralObject(char o)
+                       throws UpdateDeniedException, 
AuthenticationRequiredException;
 
        /**
         * @sec.graph Update
         * @sec.triple Update
         * @throws UpdateDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public SecuredStatement changeLiteralObject( double o )
-                       throws UpdateDeniedException;
+       public SecuredStatement changeLiteralObject(double o)
+                       throws UpdateDeniedException, 
AuthenticationRequiredException;
 
        /**
         * @sec.graph Update
         * @sec.triple Update
         * @throws UpdateDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public SecuredStatement changeLiteralObject( float o )
-                       throws UpdateDeniedException;
+       public SecuredStatement changeLiteralObject(float o)
+                       throws UpdateDeniedException, 
AuthenticationRequiredException;
 
        /**
         * @sec.graph Update
         * @sec.triple Update
         * @throws UpdateDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public SecuredStatement changeLiteralObject( int o )
-                       throws UpdateDeniedException;
+       public SecuredStatement changeLiteralObject(int o)
+                       throws UpdateDeniedException, 
AuthenticationRequiredException;
 
        /**
         * @sec.graph Update
         * @sec.triple Update
         * @throws UpdateDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public SecuredStatement changeLiteralObject( long o )
-                       throws UpdateDeniedException;
+       public SecuredStatement changeLiteralObject(long o)
+                       throws UpdateDeniedException, 
AuthenticationRequiredException;
 
        /**
         * @sec.graph Update
         * @sec.triple Update
         * @throws UpdateDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public SecuredStatement changeObject( RDFNode o )
-                       throws UpdateDeniedException;
+       public SecuredStatement changeObject(RDFNode o)
+                       throws UpdateDeniedException, 
AuthenticationRequiredException;
 
        /**
         * @sec.graph Update
         * @sec.triple Update
         * @throws UpdateDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public SecuredStatement changeObject( String o )
-                       throws UpdateDeniedException;
+       public SecuredStatement changeObject(String o)
+                       throws UpdateDeniedException, 
AuthenticationRequiredException;
 
        /**
         * @sec.graph Update
         * @sec.triple Update
         * @throws UpdateDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public SecuredStatement changeObject( String o, boolean wellFormed )
-                       throws UpdateDeniedException;
+       public SecuredStatement changeObject(String o, boolean wellFormed)
+                       throws UpdateDeniedException, 
AuthenticationRequiredException;
 
        /**
         * @sec.graph Update
         * @sec.triple Update
         * @throws UpdateDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public SecuredStatement changeObject( String o, String l )
-                       throws UpdateDeniedException;
+       public SecuredStatement changeObject(String o, String l)
+                       throws UpdateDeniedException, 
AuthenticationRequiredException;
 
        /**
         * @sec.graph Update
         * @sec.triple Update
         * @throws UpdateDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public SecuredStatement changeObject( String o, String l, boolean 
wellFormed )
-                       throws UpdateDeniedException;
+       public SecuredStatement changeObject(String o, String l, boolean 
wellFormed)
+                       throws UpdateDeniedException, 
AuthenticationRequiredException;
 
        /**
         * @sec.graph Read, Update
@@ -137,10 +158,13 @@ public interface SecuredStatement extends Statement, 
SecuredItem
         * @throws ReadDeniedException
         * @throws UpdateDeniedException
         * @throws AddDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
        public SecuredReifiedStatement createReifiedStatement()
-                       throws ReadDeniedException, UpdateDeniedException, 
AddDeniedException;
+                       throws ReadDeniedException, UpdateDeniedException,
+                       AddDeniedException, AuthenticationRequiredException;
 
        /**
         * @sec.graph Read, Update
@@ -148,10 +172,13 @@ public interface SecuredStatement extends Statement, 
SecuredItem
         * @throws ReadDeniedException
         * @throws UpdateDeniedException
         * @throws AddDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public SecuredReifiedStatement createReifiedStatement( String uri )
-                       throws ReadDeniedException, UpdateDeniedException, 
AddDeniedException;
+       public SecuredReifiedStatement createReifiedStatement(String uri)
+                       throws ReadDeniedException, UpdateDeniedException,
+                       AddDeniedException, AuthenticationRequiredException;
 
        @Override
        public SecuredAlt getAlt();
@@ -162,51 +189,72 @@ public interface SecuredStatement extends Statement, 
SecuredItem
        /**
         * @sec.graph Read
         * @throws ReadDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public boolean getBoolean() throws ReadDeniedException;
+       public boolean getBoolean() throws ReadDeniedException,
+                       AuthenticationRequiredException;
 
        /**
         * @sec.graph Read
         * @throws ReadDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public byte getByte() throws ReadDeniedException;
+       public byte getByte() throws ReadDeniedException,
+                       AuthenticationRequiredException;
 
        /**
         * @sec.graph Read
         * @throws ReadDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public char getChar() throws ReadDeniedException;
+       public char getChar() throws ReadDeniedException,
+                       AuthenticationRequiredException;
 
        /**
         * @sec.graph Read
         * @throws ReadDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public double getDouble() throws ReadDeniedException;
+       public double getDouble() throws ReadDeniedException,
+                       AuthenticationRequiredException;
 
        /**
         * @sec.graph Read
         * @throws ReadDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public float getFloat() throws ReadDeniedException;
+       public float getFloat() throws ReadDeniedException,
+                       AuthenticationRequiredException;
 
        /**
         * @sec.graph Read
         * @throws ReadDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public int getInt() throws ReadDeniedException;
+       public int getInt() throws ReadDeniedException,
+                       AuthenticationRequiredException;
 
        /**
         * @sec.graph Read
         * @throws ReadDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public String getLanguage() throws ReadDeniedException;
+       public String getLanguage() throws ReadDeniedException,
+                       AuthenticationRequiredException;
 
        @Override
        public SecuredLiteral getLiteral();
@@ -214,9 +262,12 @@ public interface SecuredStatement extends Statement, 
SecuredItem
        /**
         * @sec.graph Read
         * @throws ReadDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public long getLong() throws ReadDeniedException;
+       public long getLong() throws ReadDeniedException,
+                       AuthenticationRequiredException;
 
        @Override
        public SecuredModel getModel();
@@ -228,14 +279,14 @@ public interface SecuredStatement extends Statement, 
SecuredItem
        public SecuredProperty getPredicate();
 
        @Override
-       public SecuredStatement getProperty( Property p );
+       public SecuredStatement getProperty(Property p);
 
        @Override
        public SecuredResource getResource();
 
        @Override
        @Deprecated
-       public SecuredResource getResource( ResourceF f );
+       public SecuredResource getResource(ResourceF f);
 
        @Override
        public SecuredSeq getSeq();
@@ -243,19 +294,25 @@ public interface SecuredStatement extends Statement, 
SecuredItem
        /**
         * @sec.graph Read
         * @throws ReadDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public short getShort() throws ReadDeniedException;
+       public short getShort() throws ReadDeniedException,
+                       AuthenticationRequiredException;
 
        @Override
-       public SecuredStatement getStatementProperty( Property p );
+       public SecuredStatement getStatementProperty(Property p);
 
        /**
         * @sec.graph Read
         * @throws ReadDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public String getString() throws ReadDeniedException;
+       public String getString() throws ReadDeniedException,
+                       AuthenticationRequiredException;
 
        @Override
        public SecuredResource getSubject();
@@ -264,42 +321,57 @@ public interface SecuredStatement extends Statement, 
SecuredItem
         * @sec.graph Read
         * @sec.triple Read
         * @throws ReadDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public boolean hasWellFormedXML() throws ReadDeniedException;
+       public boolean hasWellFormedXML() throws ReadDeniedException,
+                       AuthenticationRequiredException;
 
        /**
         * @sec.graph Read
         * @sec.triple Read
         * @throws ReadDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public boolean isReified() throws ReadDeniedException;
+       public boolean isReified() throws ReadDeniedException,
+                       AuthenticationRequiredException;
 
        /**
         * @sec.graph Read
         * @sec.triple Read
         * @throws ReadDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public RSIterator listReifiedStatements() throws ReadDeniedException;
+       public RSIterator listReifiedStatements() throws ReadDeniedException,
+                       AuthenticationRequiredException;
 
        /**
         * @sec.graph Update
         * @sec.triple Delete
         * @throws UpdateDeniedException
         * @throws DeleteDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public SecuredStatement remove() throws UpdateDeniedException, 
DeleteDeniedException;
+       public SecuredStatement remove() throws UpdateDeniedException,
+                       DeleteDeniedException, AuthenticationRequiredException;
 
        /**
         * @sec.graph Update
         * @sec.triple Delete
         * @throws UpdateDeniedException
         * @throws DeleteDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public void removeReification() throws UpdateDeniedException, 
DeleteDeniedException;
+       public void removeReification() throws UpdateDeniedException,
+                       DeleteDeniedException, AuthenticationRequiredException;
 
 }

Reply via email to