http://git-wip-us.apache.org/repos/asf/jena/blob/2c0454c6/jena-permissions/src/main/java/org/apache/jena/permissions/impl/SecuredItemImpl.java
----------------------------------------------------------------------
diff --git 
a/jena-permissions/src/main/java/org/apache/jena/permissions/impl/SecuredItemImpl.java
 
b/jena-permissions/src/main/java/org/apache/jena/permissions/impl/SecuredItemImpl.java
index 3816dd6..3a717e7 100644
--- 
a/jena-permissions/src/main/java/org/apache/jena/permissions/impl/SecuredItemImpl.java
+++ 
b/jena-permissions/src/main/java/org/apache/jena/permissions/impl/SecuredItemImpl.java
@@ -30,130 +30,110 @@ import org.apache.jena.permissions.SecuredItem;
 import org.apache.jena.permissions.SecurityEvaluator;
 import org.apache.jena.permissions.SecurityEvaluator.Action;
 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.sparql.expr.Expr;
 import org.apache.jena.sparql.util.NodeUtils;
-import org.apache.jena.util.iterator.ExtendedIterator ;
-import org.apache.jena.vocabulary.RDF ;
+import org.apache.jena.util.iterator.ExtendedIterator;
+import org.apache.jena.vocabulary.RDF;
 
 /**
  * An abstract implementation of SecuredItem that caches security checks.
  * <p>
- * Security checks are performed at multiple locations.  This implementation 
ensures that 
- * during a single operation the specific check is only evaluated once by 
caching the result.
+ * Security checks are performed at multiple locations. This implementation
+ * ensures that during a single operation the specific check is only evaluated
+ * once by caching the result.
  * </p>
  * 
  */
-public abstract class SecuredItemImpl implements SecuredItem
-{
+public abstract class SecuredItemImpl implements SecuredItem {
        // a key for the secured item.
-       private class CacheKey implements Comparable<CacheKey>
-       {
+       private class CacheKey implements Comparable<CacheKey> {
                private final Action action;
                private final Node modelNode;
                private final Triple from;
                private final Triple to;
                private Integer hashCode;
 
-               public CacheKey( final Action action, final Node modelNode )
-               {
+               public CacheKey(final Action action, final Node modelNode) {
                        this(action, modelNode, null, null);
                }
 
-               public CacheKey( final Action action, final Node modelNode,
-                               final Triple to )
-               {
+               public CacheKey(final Action action, final Node modelNode,
+                               final Triple to) {
                        this(action, modelNode, to, null);
                }
 
-               public CacheKey( final Action action, final Node modelNode,
-                               final Triple to, final Triple from )
-               {
+               public CacheKey(final Action action, final Node modelNode,
+                               final Triple to, final Triple from) {
                        this.action = action;
                        this.modelNode = modelNode;
                        this.to = to;
                        this.from = from;
                }
-               
-               private int compare(Node n1, Node n2)
-               {
-                       if (Node.ANY.equals( n1 ))
-                       {
-                               if (Node.ANY.equals(n2))
-                               {
+
+               private int compare(Node n1, Node n2) {
+                       if (Node.ANY.equals(n1)) {
+                               if (Node.ANY.equals(n2)) {
                                        return Expr.CMP_EQUAL;
                                }
                                return Expr.CMP_LESS;
                        }
-                       if (Node.ANY.equals( n2 ))
-                       {
+                       if (Node.ANY.equals(n2)) {
                                return Expr.CMP_GREATER;
                        }
-                       return NodeUtils.compareRDFTerms( n1, n2 );
+                       return NodeUtils.compareRDFTerms(n1, n2);
                }
 
-               private int compare(Triple t1, Triple t2)
-               {
-                       if (t1 == null)
-                       {
-                               if (t2 == null)
-                               {
+               private int compare(Triple t1, Triple t2) {
+                       if (t1 == null) {
+                               if (t2 == null) {
                                        return Expr.CMP_EQUAL;
                                }
                                return Expr.CMP_LESS;
                        }
-                       if (t2 == null)
-                       {
+                       if (t2 == null) {
                                return Expr.CMP_GREATER;
                        }
                        int retval = compare(t1.getSubject(), t2.getSubject());
-                       if (retval == Expr.CMP_EQUAL)
-                       {
+                       if (retval == Expr.CMP_EQUAL) {
                                retval = compare(t1.getPredicate(), 
t2.getPredicate());
                        }
-                       if (retval == Expr.CMP_EQUAL)
-                       {
+                       if (retval == Expr.CMP_EQUAL) {
                                retval = compare(t1.getObject(), 
t2.getObject());
                        }
                        return retval;
                }
-               
+
                @Override
-               public int compareTo( final CacheKey other )
-               {
+               public int compareTo(final CacheKey other) {
                        int retval = this.action.compareTo(other.action);
-                       if (retval == Expr.CMP_EQUAL)
-                       {
-                               retval = 
NodeUtils.compareRDFTerms(this.modelNode,other.modelNode);
+                       if (retval == Expr.CMP_EQUAL) {
+                               retval = 
NodeUtils.compareRDFTerms(this.modelNode,
+                                               other.modelNode);
                        }
-                       if (retval == Expr.CMP_EQUAL)
-                       {
-                               retval =compare(this.to, other.to);
+                       if (retval == Expr.CMP_EQUAL) {
+                               retval = compare(this.to, other.to);
                        }
-                       if (retval == Expr.CMP_EQUAL)
-                       {
+                       if (retval == Expr.CMP_EQUAL) {
                                retval = compare(this.from, other.from);
                        }
                        return retval;
                }
 
                @Override
-               public boolean equals( final Object o )
-               {
-                       if (o instanceof CacheKey)
-                       {
+               public boolean equals(final Object o) {
+                       if (o instanceof CacheKey) {
                                return this.compareTo((CacheKey) o) == 0;
                        }
                        return false;
                }
 
                @Override
-               public int hashCode()
-               {
-                       if (hashCode == null)
-                       {
+               public int hashCode() {
+                       if (hashCode == null) {
                                hashCode = new HashCodeBuilder().append(action)
                                                
.append(modelNode).append(from).append(to).toHashCode();
                        }
@@ -164,20 +144,21 @@ public abstract class SecuredItemImpl implements 
SecuredItem
        // the maximum size of the cache
        public static int MAX_CACHE = 100;
        // the cache for this thread.
-       public static final ThreadLocal<LRUMap<CacheKey,Boolean>> CACHE = new 
ThreadLocal<LRUMap<CacheKey,Boolean>>();
+       public static final ThreadLocal<LRUMap<CacheKey, Boolean>> CACHE = new 
ThreadLocal<LRUMap<CacheKey, Boolean>>();
        // the number of times this thread has recursively called the 
constructor.
        public static final ThreadLocal<Integer> COUNT = new 
ThreadLocal<Integer>();
-       
+
        /**
-        * May Convert a Jena Node object into the SecurityEvaluator.VARIABLE 
instance.
-        * @param jenaNode The Jena node to convert.
+        * May Convert a Jena Node object into the SecurityEvaluator.VARIABLE
+        * instance.
+        * 
+        * @param jenaNode
+        *            The Jena node to convert.
         * @return The Node that represents the jenaNode.
         */
-       private static Node convert( final Node jenaNode )
-       {
-               
-               if (jenaNode.isVariable())
-               {
+       private static Node convert(final Node jenaNode) {
+
+               if (jenaNode.isVariable()) {
                        return SecurityEvaluator.VARIABLE;
                }
                return jenaNode;
@@ -185,17 +166,18 @@ public abstract class SecuredItemImpl implements 
SecuredItem
 
        /**
         * Convert a Jena Triple into a SecTriple.
-        * @param jenaTriple The Jena Triple to convert.
+        * 
+        * @param jenaTriple
+        *            The Jena Triple to convert.
         * @return The SecTriple that represents the jenaTriple.
         */
-       private static Triple convert(
-                       final Triple jenaTriple )
-       {
-               if (jenaTriple.getSubject().isVariable() || 
jenaTriple.getPredicate().isVariable() || jenaTriple.getObject().isVariable())
-               { 
-                       return new 
Triple(SecuredItemImpl.convert(jenaTriple.getSubject()),     
-                               
SecuredItemImpl.convert(jenaTriple.getPredicate()),
-                               
SecuredItemImpl.convert(jenaTriple.getObject()));
+       private static Triple convert(final Triple jenaTriple) {
+               if (jenaTriple.getSubject().isVariable()
+                               || jenaTriple.getPredicate().isVariable()
+                               || jenaTriple.getObject().isVariable()) {
+                       return new 
Triple(SecuredItemImpl.convert(jenaTriple.getSubject()),
+                                       
SecuredItemImpl.convert(jenaTriple.getPredicate()),
+                                       
SecuredItemImpl.convert(jenaTriple.getObject()));
                }
                return jenaTriple;
        }
@@ -203,47 +185,37 @@ public abstract class SecuredItemImpl implements 
SecuredItem
        /**
         * Decrement the number of instances of SecuredItem.
         */
-       public static void decrementUse()
-       {
+       public static void decrementUse() {
                final Integer i = SecuredItemImpl.COUNT.get();
-               if (i == null)
-               {
+               if (i == null) {
                        throw new IllegalStateException("No count on exit");
                }
-               if (i < 1)
-               {
+               if (i < 1) {
                        throw new IllegalStateException("No count less than 1");
                }
-               if (i == 1)
-               {
+               if (i == 1) {
                        SecuredItemImpl.CACHE.remove();
                        SecuredItemImpl.COUNT.remove();
-               }
-               else
-               {
-                       SecuredItemImpl.COUNT.set( i - 1 );
+               } else {
+                       SecuredItemImpl.COUNT.set(i - 1);
                }
        }
 
        /**
         * Increment the number of instances of SecuredItem.
         */
-       public static void incrementUse()
-       {
+       public static void incrementUse() {
                final Integer i = SecuredItemImpl.COUNT.get();
-               if (i == null)
-               {
-                       SecuredItemImpl.CACHE.set(new 
LRUMap<CacheKey,Boolean>(Math.max(
+               if (i == null) {
+                       SecuredItemImpl.CACHE.set(new LRUMap<CacheKey, 
Boolean>(Math.max(
                                        SecuredItemImpl.MAX_CACHE, 100)));
-                       SecuredItemImpl.COUNT.set( 1 );
-               }
-               else
-               {
-                       SecuredItemImpl.COUNT.set( i + 1 );
+                       SecuredItemImpl.COUNT.set(1);
+               } else {
+                       SecuredItemImpl.COUNT.set(i + 1);
                }
        }
 
-       // the evaluator we are using 
+       // the evaluator we are using
        private final SecurityEvaluator securityEvaluator;
 
        // the secured node for that names the graph.
@@ -254,55 +226,56 @@ public abstract class SecuredItemImpl implements 
SecuredItem
 
        /**
         * Create the SecuredItemImpl.
-        * @param securedItem The securedItem.
-        * @param holder The Item holder for the securedItem.
-        * @throws IllegalArgumentException if securedItem is null or 
securedItem.getSecurityEvaluator() 
-        * returns null, or the holder is null.
+        * 
+        * @param securedItem
+        *            The securedItem.
+        * @param holder
+        *            The Item holder for the securedItem.
+        * @throws IllegalArgumentException
+        *             if securedItem is null or 
securedItem.getSecurityEvaluator()
+        *             returns null, or the holder is null.
         */
-       protected SecuredItemImpl( final SecuredItem securedItem,
-                       final ItemHolder<?, ?> holder )
-       {
-               if (securedItem == null)
-               {
+       protected SecuredItemImpl(final SecuredItem securedItem,
+                       final ItemHolder<?, ?> holder) {
+               if (securedItem == null) {
                        throw new IllegalArgumentException("Secured item may 
not be null");
                }
-               if (securedItem.getSecurityEvaluator() == null)
-               {
+               if (securedItem.getSecurityEvaluator() == null) {
                        throw new IllegalArgumentException(
                                        "Security evaluator in secured item may 
not be null");
                }
-               if (holder == null)
-               {
+               if (holder == null) {
                        throw new IllegalArgumentException("ItemHolder may not 
be null");
                }
                this.securityEvaluator = securedItem.getSecurityEvaluator();
-               this.modelNode =  securedItem.getModelNode();
+               this.modelNode = securedItem.getModelNode();
                this.itemHolder = holder;
        }
 
        /**
         * Create the SecuredItemImpl.
-        * @param securityEvaluator the secured evaluator to use.
-        * @param modelURI the URI for the model.
-        * @param holder The holder to use.
-        * @throws IllegalArgumentException if security evaluator is null, 
modelURI is null or empty,
-        * or holder is null.
+        * 
+        * @param securityEvaluator
+        *            the secured evaluator to use.
+        * @param modelURI
+        *            the URI for the model.
+        * @param holder
+        *            The holder to use.
+        * @throws IllegalArgumentException
+        *             if security evaluator is null, modelURI is null or 
empty, or
+        *             holder is null.
         */
-       protected SecuredItemImpl( final SecurityEvaluator securityEvaluator,
-                       final String modelURI, final ItemHolder<?, ?> holder )
-       {
-               if (securityEvaluator == null)
-               {
+       protected SecuredItemImpl(final SecurityEvaluator securityEvaluator,
+                       final String modelURI, final ItemHolder<?, ?> holder) {
+               if (securityEvaluator == null) {
                        throw new IllegalArgumentException(
                                        "Security evaluator may not be null");
                }
-               if (StringUtils.isEmpty(modelURI))
-               {
+               if (StringUtils.isEmpty(modelURI)) {
                        throw new IllegalArgumentException(
                                        "ModelURI may not be empty or null");
                }
-               if (holder == null)
-               {
+               if (holder == null) {
                        throw new IllegalArgumentException("ItemHolder may not 
be null");
                }
                this.securityEvaluator = securityEvaluator;
@@ -311,191 +284,171 @@ public abstract class SecuredItemImpl implements 
SecuredItem
        }
 
        @Override
-       public String toString() {
-               if (canRead())
-               {
+       public String toString() throws AuthenticationRequiredException {
+               if (canRead()) {
                        return itemHolder.getBaseItem().toString();
                }
                return super.toString();
        }
-       
+
        /**
         * get the cached value.
-        * @param key The key to look for.
-        * @return the value of the security check or <code>null</code> if the 
value has not been cached.
+        * 
+        * @param key
+        *            The key to look for.
+        * @return the value of the security check or <code>null</code> if the 
value
+        *         has not been cached.
         */
-       private Boolean cacheGet( final CacheKey key )
-       {
-               final LRUMap<CacheKey,Boolean> cache = 
SecuredItemImpl.CACHE.get();
+       private Boolean cacheGet(final CacheKey key) {
+               final LRUMap<CacheKey, Boolean> cache = 
SecuredItemImpl.CACHE.get();
                return (cache == null) ? null : (Boolean) cache.get(key);
        }
 
        /**
         * set the cache value.
-        * @param key The key to set the value for.
-        * @param value The value to set.
+        * 
+        * @param key
+        *            The key to set the value for.
+        * @param value
+        *            The value to set.
         */
-       private void cachePut( final CacheKey key, final boolean value )
-       {
-               final LRUMap<CacheKey,Boolean> cache = 
SecuredItemImpl.CACHE.get();
-               if (cache != null)
-               {
+       private void cachePut(final CacheKey key, final boolean value) {
+               final LRUMap<CacheKey, Boolean> cache = 
SecuredItemImpl.CACHE.get();
+               if (cache != null) {
                        cache.put(key, value);
                        SecuredItemImpl.CACHE.set(cache);
                }
        }
 
-       /*
-        * (non-Javadoc)
-        * 
-        * @see org.apache.jena.security.SecuredItem#canCreate()
-        */
        @Override
-       public boolean canCreate()
-       {
+       public boolean canCreate() throws AuthenticationRequiredException {
                final CacheKey key = new CacheKey(Action.Create, modelNode);
                Boolean retval = cacheGet(key);
-               if (retval == null)
-               {
-                       retval = 
securityEvaluator.evaluate(securityEvaluator.getPrincipal(),Action.Create, 
modelNode);
+               if (retval == null) {
+                       retval = securityEvaluator.evaluate(
+                                       securityEvaluator.getPrincipal(), 
Action.Create, modelNode);
                        cachePut(key, retval);
                }
                return retval;
        }
 
-       
        @Override
-       public boolean canCreate( final Triple triple )
-       {
+       public boolean canCreate(final Triple triple)
+                       throws AuthenticationRequiredException {
                Triple t = convert(triple);
                final CacheKey key = new CacheKey(Action.Create, modelNode, t);
                Boolean retval = cacheGet(key);
-               if (retval == null)
-               {
-                       retval = 
securityEvaluator.evaluate(securityEvaluator.getPrincipal(),Action.Create, 
modelNode, t);
+               if (retval == null) {
+                       retval = securityEvaluator.evaluate(
+                                       securityEvaluator.getPrincipal(), 
Action.Create, modelNode,
+                                       t);
                        cachePut(key, retval);
                }
                return retval;
        }
 
        @Override
-       public boolean canCreate( final FrontsTriple frontsTriple )
-       {
+       public boolean canCreate(final FrontsTriple frontsTriple)
+                       throws AuthenticationRequiredException {
                return canCreate(frontsTriple.asTriple());
        }
 
-       /*
-        * (non-Javadoc)
-        * 
-        * @see org.apache.jena.security.SecuredItem#canDelete()
-        */
        @Override
-       public boolean canDelete()
-       {
+       public boolean canDelete() throws AuthenticationRequiredException {
                final CacheKey key = new CacheKey(Action.Delete, modelNode);
                Boolean retval = cacheGet(key);
-               if (retval == null)
-               {
-                       retval = 
securityEvaluator.evaluate(securityEvaluator.getPrincipal(),Action.Delete, 
modelNode);
+               if (retval == null) {
+                       retval = securityEvaluator.evaluate(
+                                       securityEvaluator.getPrincipal(), 
Action.Delete, modelNode);
                        cachePut(key, retval);
                }
                return retval;
        }
 
        @Override
-       public boolean canDelete( final Triple triple )
-       {
+       public boolean canDelete(final Triple triple)
+                       throws AuthenticationRequiredException {
                Triple t = convert(triple);
                final CacheKey key = new CacheKey(Action.Delete, modelNode, t);
                Boolean retval = cacheGet(key);
-               if (retval == null)
-               {
-                       retval = 
securityEvaluator.evaluate(securityEvaluator.getPrincipal(),Action.Delete, 
modelNode, t);
+               if (retval == null) {
+                       retval = securityEvaluator.evaluate(
+                                       securityEvaluator.getPrincipal(), 
Action.Delete, modelNode,
+                                       t);
                        cachePut(key, retval);
                }
                return retval;
        }
 
        @Override
-       public boolean canDelete( final FrontsTriple frontsTriple )
-       {
+       public boolean canDelete(final FrontsTriple frontsTriple)
+                       throws AuthenticationRequiredException {
                return canDelete(frontsTriple.asTriple());
        }
 
-       /*
-        * (non-Javadoc)
-        * 
-        * @see org.apache.jena.security.SecuredItem#canRead()
-        */
        @Override
-       public boolean canRead()
-       {
+       public boolean canRead() throws AuthenticationRequiredException {
                final CacheKey key = new CacheKey(Action.Read, modelNode);
                Boolean retval = cacheGet(key);
-               if (retval == null)
-               {
-                       retval = 
securityEvaluator.evaluate(securityEvaluator.getPrincipal(),Action.Read, 
modelNode);
+               if (retval == null) {
+                       retval = securityEvaluator.evaluate(
+                                       securityEvaluator.getPrincipal(), 
Action.Read, modelNode);
                        cachePut(key, retval);
                }
                return retval;
        }
 
        @Override
-       public boolean canRead( final Triple triple )
-       {
+       public boolean canRead(final Triple triple)
+                       throws AuthenticationRequiredException {
                Triple t = convert(triple);
                final CacheKey key = new CacheKey(Action.Read, modelNode, t);
                Boolean retval = cacheGet(key);
-               if (retval == null)
-               {
-                       retval = 
securityEvaluator.evaluate(securityEvaluator.getPrincipal(),Action.Read, 
modelNode, t);
+               if (retval == null) {
+                       retval = securityEvaluator
+                                       
.evaluate(securityEvaluator.getPrincipal(), Action.Read,
+                                                       modelNode, t);
                        cachePut(key, retval);
                }
                return retval;
        }
 
        @Override
-       public boolean canRead( final FrontsTriple frontsTriple )
-       {
+       public boolean canRead(final FrontsTriple frontsTriple)
+                       throws AuthenticationRequiredException {
                return canRead(frontsTriple.asTriple());
        }
 
-       /*
-        * (non-Javadoc)
-        * 
-        * @see org.apache.jena.security.SecuredItem#canUpdate()
-        */
        @Override
-       public boolean canUpdate()
-       {
+       public boolean canUpdate() throws AuthenticationRequiredException {
                final CacheKey key = new CacheKey(Action.Update, modelNode);
                Boolean retval = cacheGet(key);
-               if (retval == null)
-               {
-                       retval = 
securityEvaluator.evaluate(securityEvaluator.getPrincipal(),Action.Update, 
modelNode);
+               if (retval == null) {
+                       retval = securityEvaluator.evaluate(
+                                       securityEvaluator.getPrincipal(), 
Action.Update, modelNode);
                        cachePut(key, retval);
                }
                return retval;
        }
 
        @Override
-       public boolean canUpdate( final Triple f, final Triple t )
-       {
+       public boolean canUpdate(final Triple f, final Triple t)
+                       throws AuthenticationRequiredException {
                Triple from = convert(f);
                Triple to = convert(t);
                final CacheKey key = new CacheKey(Action.Update, modelNode, 
from, to);
                Boolean retval = cacheGet(key);
-               if (retval == null)
-               {
-                       retval = 
securityEvaluator.evaluateUpdate(securityEvaluator.getPrincipal(),modelNode, 
from, to);
+               if (retval == null) {
+                       retval = securityEvaluator.evaluateUpdate(
+                                       securityEvaluator.getPrincipal(), 
modelNode, from, to);
                        cachePut(key, retval);
                }
                return retval;
        }
 
        @Override
-       public boolean canUpdate( final FrontsTriple from, final FrontsTriple 
to )
-       {
+       public boolean canUpdate(final FrontsTriple from, final FrontsTriple to)
+                       throws AuthenticationRequiredException {
                return canUpdate(from.asTriple(), to.asTriple());
        }
 
@@ -504,12 +457,14 @@ public abstract class SecuredItemImpl implements 
SecuredItem
         * 
         * @throws AddDeniedException
         *             on failure
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
-       protected void checkCreate() throws AddDeniedException
-       {
-               if (!canCreate())
-               {
-                       throw new AddDeniedException( 
SecuredItem.Util.modelPermissionMsg(modelNode));
+       protected void checkCreate() throws AddDeniedException,
+                       AuthenticationRequiredException {
+               if (!canCreate()) {
+                       throw new AddDeniedException(
+                                       
SecuredItem.Util.modelPermissionMsg(modelNode));
                }
        }
 
@@ -518,74 +473,100 @@ public abstract class SecuredItemImpl implements 
SecuredItem
         * 
         * @throws AddDeniedException
         *             on failure
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
-       protected void checkCreate( final Triple t ) throws AddDeniedException
-       {
-               if (!canCreate(t))
-               {
-                       throw new 
AddDeniedException(SecuredItem.Util.triplePermissionMsg(modelNode), t );
+       protected void checkCreate(final Triple t) throws AddDeniedException,
+                       AuthenticationRequiredException {
+               if (!canCreate(t)) {
+                       throw new AddDeniedException(
+                                       
SecuredItem.Util.triplePermissionMsg(modelNode), t);
                }
        }
 
        /**
         * check that the statement can be created.
-        * @param s The statement.
-        * @throws AddDeniedException on failure
+        * 
+        * @param s
+        *            The statement.
+        * @throws AddDeniedException
+        *             on failure
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
-       protected void checkCreate( final FrontsTriple frontsTriple ) throws 
AddDeniedException
-       {
+       protected void checkCreate(final FrontsTriple frontsTriple)
+                       throws AddDeniedException, 
AuthenticationRequiredException {
                checkCreate(frontsTriple.asTriple());
        }
 
        /**
         * Check that a triple can be reified.
-        * @param uri The URI for the reification subject.  May be null.
-        * @param front the frontstriple that is to be reified.
-        * @throws AddDeniedException on failure to add triple
-        * @throws UpdateDenied if the updates of the graph are not allowed.
+        * 
+        * @param uri
+        *            The URI for the reification subject. May be null.
+        * @param front
+        *            the frontstriple that is to be reified.
+        * @throws AddDeniedException
+        *             on failure to add triple
+        * @throws UpdateDeniedException
+        *             if the updates of the graph are not allowed.
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
-       protected void checkCreateReified( final String uri, final FrontsTriple 
front )  throws AddDeniedException, UpdateDeniedException
-       {
+       protected void checkCreateReified(final String uri, final FrontsTriple 
front)
+                       throws AddDeniedException, UpdateDeniedException,
+                       AuthenticationRequiredException {
                checkUpdate();
                Triple t = front.asTriple();
-               final Node n = uri == null ? SecurityEvaluator.FUTURE : 
NodeFactory.createURI(uri);
+               final Node n = uri == null ? SecurityEvaluator.FUTURE : 
NodeFactory
+                               .createURI(uri);
                checkCreate(new Triple(n, RDF.subject.asNode(), 
t.getSubject()));
                checkCreate(new Triple(n, RDF.predicate.asNode(), 
t.getPredicate()));
                checkCreate(new Triple(n, RDF.object.asNode(), t.getObject()));
        }
 
-       protected void checkCreateFrontsTriples( final ExtendedIterator<? 
extends FrontsTriple> stmts )  throws AddDeniedException
-       {
-               if (!canCreate(Triple.ANY))
-               {
-                       try
-                       {
-                               while (stmts.hasNext())
-                               {
-                                       checkCreate(stmts.next());
+       /**
+        * Check that all the triples can be created.
+        * 
+        * @param FrontsTripleIter
+        *            an iterator of FrontsTriple objects.
+        * @throws AddDeniedException
+        *             if a triple can not be added.
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
+        */
+       protected void checkCreateFrontsTriples(
+                       final ExtendedIterator<? extends FrontsTriple> 
FrontsTripleIter)
+                       throws AddDeniedException, 
AuthenticationRequiredException {
+               if (!canCreate(Triple.ANY)) {
+                       try {
+                               while (FrontsTripleIter.hasNext()) {
+                                       checkCreate(FrontsTripleIter.next());
                                }
-                       }
-                       finally
-                       {
-                               stmts.close();
+                       } finally {
+                               FrontsTripleIter.close();
                        }
                }
        }
 
-       protected void checkCreateTriples(
-                       final ExtendedIterator<Triple> triples ) throws 
AddDeniedException
-       {
-               if (!canCreate(Triple.ANY))
-               {
-                       try
-                       {
-                               while (triples.hasNext())
-                               {
+       /**
+        * Check that all the triples can be created.
+        * 
+        * @param triples
+        *            an iterator of triples.
+        * @throws AddDeniedException
+        *             if a triple can not be added.
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
+        */
+       protected void checkCreateTriples(final ExtendedIterator<Triple> 
triples)
+                       throws AddDeniedException, 
AuthenticationRequiredException {
+               if (!canCreate(Triple.ANY)) {
+                       try {
+                               while (triples.hasNext()) {
                                        checkCreate(triples.next());
                                }
-                       }
-                       finally
-                       {
+                       } finally {
                                triples.close();
                        }
                }
@@ -596,67 +577,92 @@ public abstract class SecuredItemImpl implements 
SecuredItem
         * 
         * @throws DeleteDeniedException
         *             on failure
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
-       protected void checkDelete() throws DeleteDeniedException
-       {
-               if (!canDelete())
-               {
-                       throw new 
DeleteDeniedException(SecuredItem.Util.modelPermissionMsg(modelNode));
+       protected void checkDelete() throws DeleteDeniedException,
+                       AuthenticationRequiredException {
+               if (!canDelete()) {
+                       throw new DeleteDeniedException(
+                                       
SecuredItem.Util.modelPermissionMsg(modelNode));
                }
        }
 
        /**
         * check that the triple can be deleted in the securedModel.,
         * 
+        * @param triple
+        *            The triple to check.
         * @throws DeleteDeniedException
         *             on failure
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
-       protected void checkDelete( final Triple t )
-       {
-               if (!canDelete(t))
-               {
-                       throw new 
DeleteDeniedException(SecuredItem.Util.triplePermissionMsg(modelNode), t);
+       protected void checkDelete(final Triple triple)
+                       throws DeleteDeniedException, 
AuthenticationRequiredException {
+               if (!canDelete(triple)) {
+                       throw new DeleteDeniedException(
+                                       
SecuredItem.Util.triplePermissionMsg(modelNode), triple);
                }
        }
 
-       protected void checkDelete( final FrontsTriple frontsTriple )
-       {
+       /**
+        * check that the triple can be deleted in the securedModel.,
+        * 
+        * @param frontsTriple
+        *            An object fronting the triple to check.
+        * @throws DeleteDeniedException
+        *             on failure
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
+        */
+       protected void checkDelete(final FrontsTriple frontsTriple)
+                       throws DeleteDeniedException, 
AuthenticationRequiredException {
                checkDelete(frontsTriple.asTriple());
        }
 
+       /**
+        * check that the triples can be deleted in the securedModel.,
+        * 
+        * @param frontsTripleIter
+        *            An iterator of objects fronting triples to check.
+        * @throws DeleteDeniedException
+        *             on failure
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
+        */
        protected void checkDeleteFrontsTriples(
-                       final ExtendedIterator<? extends FrontsTriple> stmts )
-       {
-               if (!canDelete(Triple.ANY))
-               {
-                       try
-                       {
-                               while (stmts.hasNext())
-                               {
-                                       checkDelete(stmts.next());
+                       final ExtendedIterator<? extends FrontsTriple> 
frontsTriplesIter)
+                       throws DeleteDeniedException, 
AuthenticationRequiredException {
+               if (!canDelete(Triple.ANY)) {
+                       try {
+                               while (frontsTriplesIter.hasNext()) {
+                                       checkDelete(frontsTriplesIter.next());
                                }
-                       }
-                       finally
-                       {
-                               stmts.close();
+                       } finally {
+                               frontsTriplesIter.close();
                        }
                }
        }
 
-       protected void checkDeleteTriples(
-                       final ExtendedIterator<Triple> triples )
-       {
-               if (!canDelete(Triple.ANY))
-               {
-                       try
-                       {
-                               while (triples.hasNext())
-                               {
+       /**
+        * check that the triples can be deleted in the securedModel.,
+        * 
+        * @param triples
+        *            An iterator of triples to check.
+        * @throws DeleteDeniedException
+        *             on failure
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
+        */
+       protected void checkDeleteTriples(final ExtendedIterator<Triple> 
triples)
+                       throws DeleteDeniedException, 
AuthenticationRequiredException {
+               if (!canDelete(Triple.ANY)) {
+                       try {
+                               while (triples.hasNext()) {
                                        checkDelete(triples.next());
                                }
-                       }
-                       finally
-                       {
+                       } finally {
                                triples.close();
                        }
                }
@@ -667,61 +673,89 @@ public abstract class SecuredItemImpl implements 
SecuredItem
         * 
         * @throws ReadDeniedException
         *             on failure
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
-       protected void checkRead() throws ReadDeniedException
-       {
-               if (!canRead())
-               {
-                       throw new 
ReadDeniedException(SecuredItem.Util.modelPermissionMsg(modelNode));
+       protected void checkRead() throws ReadDeniedException,
+                       AuthenticationRequiredException {
+               if (!canRead()) {
+                       throw new ReadDeniedException(
+                                       
SecuredItem.Util.modelPermissionMsg(modelNode));
                }
        }
 
        /**
         * check that the triple can be read in the securedModel.,
         * 
+        * @param triple
+        *            The triple to check.
         * @throws ReadDeniedException
         *             on failure
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
-       protected void checkRead( final Triple t ) throws ReadDeniedException
-       {
-               if (!canRead(t))
-               {
-                       throw new 
ReadDeniedException(SecuredItem.Util.triplePermissionMsg(modelNode), t);
+       protected void checkRead(final Triple triple) throws 
ReadDeniedException,
+                       AuthenticationRequiredException {
+               if (!canRead(triple)) {
+                       throw new ReadDeniedException(
+                                       
SecuredItem.Util.triplePermissionMsg(modelNode), triple);
                }
        }
 
-       protected void checkRead( final FrontsTriple frontsTriple ) throws 
ReadDeniedException
-       {
+       /**
+        * check that the triple can be read in the securedModel.,
+        * 
+        * @param frontsTriple
+        *            The object fronting the triple to check.
+        * @throws ReadDeniedException
+        *             on failure
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
+        */
+       protected void checkRead(final FrontsTriple frontsTriple)
+                       throws ReadDeniedException, 
AuthenticationRequiredException {
                checkRead(frontsTriple.asTriple());
        }
 
-       protected void checkReadFrontsTriples( final 
ExtendedIterator<FrontsTriple> stmts ) throws ReadDeniedException
-       {
-               try
-               {
-                       while (stmts.hasNext())
-                       {
-                               checkRead(stmts.next());
+       /**
+        * check that the triple can be read in the securedModel.,
+        * 
+        * @param frontsTripleIter
+        *            The iterator of fronts triple objects to check.
+        * @throws ReadDeniedException
+        *             on failure
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
+        */
+       protected void checkReadFrontsTriples(
+                       final ExtendedIterator<FrontsTriple> frontsTripleIter)
+                       throws ReadDeniedException, 
AuthenticationRequiredException {
+               try {
+                       while (frontsTripleIter.hasNext()) {
+                               checkRead(frontsTripleIter.next());
                        }
-               }
-               finally
-               {
-                       stmts.close();
+               } finally {
+                       frontsTripleIter.close();
                }
        }
 
-       protected void checkReadTriples(
-                       final ExtendedIterator<Triple> triples ) throws 
ReadDeniedException
-       {
-               try
-               {
-                       while (triples.hasNext())
-                       {
+       /**
+        * check that the triple can be read in the securedModel.,
+        * 
+        * @param triples
+        *            The iterator of triples to check.
+        * @throws ReadDeniedException
+        *             on failure
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
+        */
+       protected void checkReadTriples(final ExtendedIterator<Triple> triples)
+                       throws ReadDeniedException, 
AuthenticationRequiredException {
+               try {
+                       while (triples.hasNext()) {
                                checkRead(triples.next());
                        }
-               }
-               finally
-               {
+               } finally {
                        triples.close();
                }
        }
@@ -731,78 +765,62 @@ public abstract class SecuredItemImpl implements 
SecuredItem
         * 
         * @throws UpdateDeniedException
         *             on failure
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
-       protected void checkUpdate() throws UpdateDeniedException
-       {
-               if (!canUpdate())
-               {
-                       throw new 
UpdateDeniedException(SecuredItem.Util.modelPermissionMsg(modelNode));
+       protected void checkUpdate() throws UpdateDeniedException,
+                       AuthenticationRequiredException {
+               if (!canUpdate()) {
+                       throw new UpdateDeniedException(
+                                       
SecuredItem.Util.modelPermissionMsg(modelNode));
                }
        }
 
        /**
         * check that the triple can be updated in the securedModel.,
         * 
-        * @param from the starting triple
-        * @param to the final triple.
+        * @param from
+        *            the starting triple
+        * @param to
+        *            the final triple.
         * @throws UpdateDeniedException
         *             on failure
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
-       protected void checkUpdate( final Triple from, final Triple to ) throws 
UpdateDeniedException
-       {
-               if (!canUpdate(from, to))
-               {
-                       throw new UpdateDeniedException( String.format(
-                                       "%s: %s to %s", 
SecuredItem.Util.modelPermissionMsg(modelNode), from, to));
+       protected void checkUpdate(final Triple from, final Triple to)
+                       throws UpdateDeniedException, 
AuthenticationRequiredException {
+               if (!canUpdate(from, to)) {
+                       throw new UpdateDeniedException(String.format("%s: %s 
to %s",
+                                       
SecuredItem.Util.modelPermissionMsg(modelNode), from, to));
                }
        }
 
-       /*
-        * (non-Javadoc)
-        * 
-        * @see org.apache.jena.security.SecuredItem#equals(java.lang.Object)
-        */
        @Override
-       public boolean equals( final Object o )
-       {
-               if (Proxy.isProxyClass(o.getClass()))
-               {
+       public boolean equals(final Object o) {
+               if (Proxy.isProxyClass(o.getClass())) {
                        return o.equals(itemHolder.getSecuredItem());
-               }
-               else
-               {
-                       if (o instanceof SecuredItemImpl)
-                       {
-                               return itemHolder.getBaseItem().equals( 
((SecuredItemImpl)o).getBaseItem());
+               } else {
+                       if (o instanceof SecuredItemImpl) {
+                               return itemHolder.getBaseItem().equals(
+                                               ((SecuredItemImpl) 
o).getBaseItem());
                        }
                        return false;
                }
        }
 
        @Override
-       public int hashCode()
-       {
+       public int hashCode() {
                return itemHolder.getBaseItem().hashCode();
        }
-       /*
-        * (non-Javadoc)
-        * 
-        * @see org.apache.jena.security.SecuredItem#getBaseItem()
-        */
+
        @Override
-       public Object getBaseItem()
-       {
+       public Object getBaseItem() {
                return itemHolder.getBaseItem();
        }
 
-       /*
-        * (non-Javadoc)
-        * 
-        * @see org.apache.jena.security.SecuredItem#getModelIRI()
-        */
        @Override
-       public String getModelIRI()
-       {
+       public String getModelIRI() {
                return modelNode.getURI();
        }
 
@@ -810,30 +828,17 @@ public abstract class SecuredItemImpl implements 
SecuredItem
         * get the name of the model.
         */
        @Override
-       public Node getModelNode()
-       {
+       public Node getModelNode() {
                return modelNode;
        }
 
-       /*
-        * (non-Javadoc)
-        * 
-        * @see org.apache.jena.security.SecuredItem#getSecurityEvaluator()
-        */
        @Override
-       public SecurityEvaluator getSecurityEvaluator()
-       {
+       public SecurityEvaluator getSecurityEvaluator() {
                return securityEvaluator;
        }
 
-       /*
-        * (non-Javadoc)
-        * 
-        * @see org.apache.jena.security.isEquivalent()
-        */
        @Override
-       public boolean isEquivalent( final SecuredItem securedItem )
-       {
+       public boolean isEquivalent(final SecuredItem securedItem) {
                return SecuredItem.Util.isEquivalent(this, securedItem);
        }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/jena/blob/2c0454c6/jena-permissions/src/main/java/org/apache/jena/permissions/model/SecuredAlt.java
----------------------------------------------------------------------
diff --git 
a/jena-permissions/src/main/java/org/apache/jena/permissions/model/SecuredAlt.java
 
b/jena-permissions/src/main/java/org/apache/jena/permissions/model/SecuredAlt.java
index fb640e8..2ee8281 100644
--- 
a/jena-permissions/src/main/java/org/apache/jena/permissions/model/SecuredAlt.java
+++ 
b/jena-permissions/src/main/java/org/apache/jena/permissions/model/SecuredAlt.java
@@ -17,10 +17,11 @@
  */
 package org.apache.jena.permissions.model;
 
-import org.apache.jena.rdf.model.Alt ;
-import org.apache.jena.rdf.model.RDFNode ;
-import org.apache.jena.rdf.model.ResourceF ;
+import org.apache.jena.rdf.model.Alt;
+import org.apache.jena.rdf.model.RDFNode;
+import org.apache.jena.rdf.model.ResourceF;
 import org.apache.jena.shared.AddDeniedException;
+import org.apache.jena.shared.AuthenticationRequiredException;
 import org.apache.jena.shared.ReadDeniedException;
 import org.apache.jena.shared.UpdateDeniedException;
 
@@ -30,246 +31,320 @@ import org.apache.jena.shared.UpdateDeniedException;
  * Use the SecuredAlt.Factory to create instances
  */
 @SuppressWarnings("deprecation")
-public interface SecuredAlt extends Alt, SecuredContainer
-{
+public interface SecuredAlt extends Alt, SecuredContainer {
        /**
         * @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 getDefault() throws ReadDeniedException;
+       public SecuredRDFNode getDefault() 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 SecuredAlt getDefaultAlt() throws ReadDeniedException;
+       public SecuredAlt getDefaultAlt() 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 getDefaultBag() throws ReadDeniedException;
+       public SecuredBag getDefaultBag() 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 getDefaultBoolean() throws ReadDeniedException;
+       public boolean getDefaultBoolean() 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 getDefaultByte() throws ReadDeniedException;
+       public byte getDefaultByte() 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 getDefaultChar() throws ReadDeniedException;
+       public char getDefaultChar() 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 getDefaultDouble() throws ReadDeniedException;
+       public double getDefaultDouble() 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 getDefaultFloat() throws ReadDeniedException;
+       public float getDefaultFloat() 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 getDefaultInt() throws ReadDeniedException;
+       public int getDefaultInt() 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 getDefaultLanguage() throws ReadDeniedException;
+       public String getDefaultLanguage() 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 getDefaultLiteral() throws ReadDeniedException;
+       public SecuredLiteral getDefaultLiteral() 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 getDefaultLong() throws ReadDeniedException;
+       public long getDefaultLong() 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 getDefaultResource() throws ReadDeniedException;
+       public SecuredResource getDefaultResource() 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 getDefaultResource( final ResourceF f )
-                       throws ReadDeniedException;
+       public SecuredResource getDefaultResource(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 getDefaultSeq() throws ReadDeniedException;
+       public SecuredSeq getDefaultSeq() 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 getDefaultShort() throws ReadDeniedException;
+       public short getDefaultShort() 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 getDefaultString() throws ReadDeniedException;
+       public String getDefaultString() throws ReadDeniedException,
+                       AuthenticationRequiredException;
 
        /**
         * @sec.graph Update
         * @sec.triple Update SecTriple(this, RDF.li(1), existing ), 
SecTriple(this,
-        *            RDF.li(1), o )
+        *             RDF.li(1), o )
         * @sec.triple Create SecTriple(this, RDF.li(1), o ) if no current 
default
         * @throws UpdateDeniedException
         * @throws AddDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public SecuredAlt setDefault( final boolean o )
-                       throws UpdateDeniedException, AddDeniedException;
+       public SecuredAlt setDefault(final boolean o) throws 
UpdateDeniedException,
+                       AddDeniedException, AuthenticationRequiredException;
 
        /**
         * @sec.graph Update
         * @sec.triple Update SecTriple(this, RDF.li(1), existing ), 
SecTriple(this,
-        *            RDF.li(1), o )
+        *             RDF.li(1), o )
         * @sec.triple Create SecTriple(this, RDF.li(1), o ) if no current 
default
         * @throws UpdateDeniedException
         * @throws AddDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public SecuredAlt setDefault( final char o ) throws 
UpdateDeniedException, AddDeniedException;
+       public SecuredAlt setDefault(final char o) throws UpdateDeniedException,
+                       AddDeniedException, AuthenticationRequiredException;
 
        /**
         * @sec.graph Update
         * @sec.triple Update SecTriple(this, RDF.li(1), existing ), 
SecTriple(this,
-        *            RDF.li(1), o )
+        *             RDF.li(1), o )
         * @sec.triple Create SecTriple(this, RDF.li(1), o ) if no current 
default
         * @throws UpdateDeniedException
         * @throws AddDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public SecuredAlt setDefault( final double o ) throws 
UpdateDeniedException, AddDeniedException;
+       public SecuredAlt setDefault(final double o) throws 
UpdateDeniedException,
+                       AddDeniedException, AuthenticationRequiredException;
 
        /**
         * @sec.graph Update
         * @sec.triple Update SecTriple(this, RDF.li(1), existing ), 
SecTriple(this,
-        *            RDF.li(1), o )
+        *             RDF.li(1), o )
         * @sec.triple Create SecTriple(this, RDF.li(1), o ) if no current 
default
         * @throws UpdateDeniedException
         * @throws AddDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public SecuredAlt setDefault( final float o ) throws 
UpdateDeniedException, AddDeniedException;
+       public SecuredAlt setDefault(final float o) throws 
UpdateDeniedException,
+                       AddDeniedException, AuthenticationRequiredException;
 
        /**
         * @sec.graph Update
         * @sec.triple Update SecTriple(this, RDF.li(1), existing ), 
SecTriple(this,
-        *            RDF.li(1), o )
+        *             RDF.li(1), o )
         * @sec.triple Create SecTriple(this, RDF.li(1), o ) if no current 
default
         * @throws UpdateDeniedException
         * @throws AddDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public SecuredAlt setDefault( final long o ) throws 
UpdateDeniedException, AddDeniedException;
+       public SecuredAlt setDefault(final long o) throws UpdateDeniedException,
+                       AddDeniedException, AuthenticationRequiredException;
 
        /**
         * @sec.graph Update
         * @sec.triple Update SecTriple(this, RDF.li(1), existing ), 
SecTriple(this,
-        *            RDF.li(1), o )
+        *             RDF.li(1), o )
         * @sec.triple Create SecTriple(this, RDF.li(1), o ) if no current 
default
         * @throws UpdateDeniedException
         * @throws AddDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public SecuredAlt setDefault( final Object o ) throws 
UpdateDeniedException, AddDeniedException;
+       public SecuredAlt setDefault(final Object o) throws 
UpdateDeniedException,
+                       AddDeniedException, AuthenticationRequiredException;
 
        /**
         * @sec.graph Update
         * @sec.triple Update SecTriple(this, RDF.li(1), existing ), 
SecTriple(this,
-        *            RDF.li(1), o )
+        *             RDF.li(1), o )
         * @sec.triple Create SecTriple(this, RDF.li(1), o ) if no current 
default
         * @throws UpdateDeniedException
         * @throws AddDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public SecuredAlt setDefault( final RDFNode o )
-                       throws UpdateDeniedException, AddDeniedException;
+       public SecuredAlt setDefault(final RDFNode o) throws 
UpdateDeniedException,
+                       AddDeniedException, AuthenticationRequiredException;
 
        /**
         * @sec.graph Update
         * @sec.triple Update SecTriple(this, RDF.li(1), existing ), 
SecTriple(this,
-        *            RDF.li(1), o )
+        *             RDF.li(1), o )
         * @sec.triple Create SecTriple(this, RDF.li(1), o ) if no current 
default
         * @throws UpdateDeniedException
         * @throws AddDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public SecuredAlt setDefault( final String o ) throws 
UpdateDeniedException, AddDeniedException;
+       public SecuredAlt setDefault(final String o) throws 
UpdateDeniedException,
+                       AddDeniedException, AuthenticationRequiredException;
 
        /**
         * @sec.graph Update
         * @sec.triple Update SecTriple(this, RDF.li(1), existing ), 
SecTriple(this,
-        *            RDF.li(1), o )
+        *             RDF.li(1), o )
         * @sec.triple Create SecTriple(this, RDF.li(1), o ) if no current 
default
         * @throws UpdateDeniedException
         * @throws AddDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public SecuredAlt setDefault( final String o, final String l )
-                       throws UpdateDeniedException, AddDeniedException;
+       public SecuredAlt setDefault(final String o, final String l)
+                       throws UpdateDeniedException, AddDeniedException,
+                       AuthenticationRequiredException;
 
 }

http://git-wip-us.apache.org/repos/asf/jena/blob/2c0454c6/jena-permissions/src/main/java/org/apache/jena/permissions/model/SecuredContainer.java
----------------------------------------------------------------------
diff --git 
a/jena-permissions/src/main/java/org/apache/jena/permissions/model/SecuredContainer.java
 
b/jena-permissions/src/main/java/org/apache/jena/permissions/model/SecuredContainer.java
index b8a624e..b2ddae8 100644
--- 
a/jena-permissions/src/main/java/org/apache/jena/permissions/model/SecuredContainer.java
+++ 
b/jena-permissions/src/main/java/org/apache/jena/permissions/model/SecuredContainer.java
@@ -21,10 +21,11 @@ import java.util.Set;
 
 import org.apache.jena.permissions.SecurityEvaluator.Action;
 import org.apache.jena.permissions.model.impl.SecuredNodeIterator;
-import org.apache.jena.rdf.model.Container ;
-import org.apache.jena.rdf.model.RDFNode ;
-import org.apache.jena.rdf.model.Statement ;
+import org.apache.jena.rdf.model.Container;
+import org.apache.jena.rdf.model.RDFNode;
+import org.apache.jena.rdf.model.Statement;
 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;
@@ -35,197 +36,261 @@ import org.apache.jena.shared.UpdateDeniedException;
  * Use one of the SecuredContainer derived class Factory methods to create
  * instances
  */
-public interface SecuredContainer extends Container, SecuredResource
-{
+public interface SecuredContainer extends Container, SecuredResource {
 
        /**
         * @sec.graph Update
         * @sec.triple Create SecTriple( this, RDF.li, o );
         * @throws UpdateDeniedException
         * @throws AddDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public SecuredContainer add( final boolean o ) throws 
UpdateDeniedException, AddDeniedException;
+       public SecuredContainer add(final boolean o) throws 
UpdateDeniedException,
+                       AddDeniedException, AuthenticationRequiredException;
 
        /**
         * @sec.graph Update
         * @sec.triple Create SecTriple( this, RDF.li, o );
         * @throws UpdateDeniedException
         * @throws AddDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public SecuredContainer add( final char o ) throws 
UpdateDeniedException, AddDeniedException;
+       public SecuredContainer add(final char o) throws UpdateDeniedException,
+                       AddDeniedException, AuthenticationRequiredException;
 
        /**
         * @sec.graph Update
         * @sec.triple Create SecTriple( this, RDF.li, o );
         * @throws UpdateDeniedException
         * @throws AddDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public SecuredContainer add( final double o ) throws 
UpdateDeniedException, AddDeniedException;
+       public SecuredContainer add(final double o) throws 
UpdateDeniedException,
+                       AddDeniedException, AuthenticationRequiredException;
 
        /**
         * @sec.graph Update
         * @sec.triple Create SecTriple( this, RDF.li, o );
         * @throws UpdateDeniedException
         * @throws AddDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public SecuredContainer add( final float o ) throws 
UpdateDeniedException, AddDeniedException;
+       public SecuredContainer add(final float o) throws UpdateDeniedException,
+                       AddDeniedException, AuthenticationRequiredException;
 
        /**
         * @sec.graph Update
         * @sec.triple Create SecTriple( this, RDF.li, o );
         * @throws UpdateDeniedException
         * @throws AddDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public SecuredContainer add( final long o ) throws 
UpdateDeniedException, AddDeniedException;
+       public SecuredContainer add(final long o) throws UpdateDeniedException,
+                       AddDeniedException, AuthenticationRequiredException;
 
        /**
         * @sec.graph Update
         * @sec.triple Create SecTriple( this, RDF.li, o );
         * @throws UpdateDeniedException
         * @throws AddDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public SecuredContainer add( final Object o ) throws 
UpdateDeniedException, AddDeniedException;
+       public SecuredContainer add(final Object o) throws 
UpdateDeniedException,
+                       AddDeniedException, AuthenticationRequiredException;
 
        /**
         * @sec.graph Update
         * @sec.triple Create SecTriple( this, RDF.li, o );
         * @throws UpdateDeniedException
         * @throws AddDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public SecuredContainer add( final RDFNode o ) throws 
UpdateDeniedException, AddDeniedException;
+       public SecuredContainer add(final RDFNode o) throws 
UpdateDeniedException,
+                       AddDeniedException, AuthenticationRequiredException;
 
        /**
         * @sec.graph Update
         * @sec.triple Create SecTriple( this, RDF.li, o );
         * @throws UpdateDeniedException
         * @throws AddDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public SecuredContainer add( final String o ) throws 
UpdateDeniedException, AddDeniedException;
+       public SecuredContainer add(final String o) throws 
UpdateDeniedException,
+                       AddDeniedException, AuthenticationRequiredException;
 
        /**
         * @sec.graph Update
         * @sec.triple Create SecTriple( this, RDF.li, o );
         * @throws UpdateDeniedException
         * @throws AddDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public SecuredContainer add( final String o, final String l )
-                       throws UpdateDeniedException, AddDeniedException;
+       public SecuredContainer add(final String o, final String l)
+                       throws UpdateDeniedException, AddDeniedException,
+                       AuthenticationRequiredException;
 
        /**
         * @sec.graph Read
         * @sec.triple Read SecTriple( this, RDF.li, o );
         * @throws ReadDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public boolean contains( final boolean o ) throws ReadDeniedException;
+       public boolean contains(final boolean o) throws ReadDeniedException,
+                       AuthenticationRequiredException;
 
        /**
         * @sec.graph Read
         * @sec.triple Read SecTriple( this, RDF.li, o );
         * @throws ReadDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public boolean contains( final char o ) throws ReadDeniedException;
+       public boolean contains(final char o) throws ReadDeniedException,
+                       AuthenticationRequiredException;
 
        /**
         * @sec.graph Read
         * @sec.triple Read SecTriple( this, RDF.li, o );
         * @throws ReadDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public boolean contains( final double o ) throws ReadDeniedException;
+       public boolean contains(final double o) throws ReadDeniedException,
+                       AuthenticationRequiredException;
 
        /**
         * @sec.graph Read
         * @sec.triple Read SecTriple( this, RDF.li, o );
         * @throws ReadDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public boolean contains( final float o ) throws ReadDeniedException;
+       public boolean contains(final float o) throws ReadDeniedException,
+                       AuthenticationRequiredException;
 
        /**
         * @sec.graph Read
         * @sec.triple Read SecTriple( this, RDF.li, o );
         * @throws ReadDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public boolean contains( final long o ) throws ReadDeniedException;
+       public boolean contains(final long o) throws ReadDeniedException,
+                       AuthenticationRequiredException;
 
        /**
         * @sec.graph Read
         * @sec.triple Read SecTriple( this, RDF.li, o );
         * @throws ReadDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public boolean contains( final Object o ) throws ReadDeniedException;
+       public boolean contains(final Object o) throws ReadDeniedException,
+                       AuthenticationRequiredException;
 
        /**
         * @sec.graph Read
         * @sec.triple Read SecTriple( this, RDF.li, o );
         * @throws ReadDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public boolean contains( final RDFNode o ) throws ReadDeniedException;
+       public boolean contains(final RDFNode o) throws ReadDeniedException,
+                       AuthenticationRequiredException;
 
        /**
         * @sec.graph Read
         * @sec.triple Read SecTriple( this, RDF.li, o );
         * @throws ReadDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public boolean contains( final String o ) throws ReadDeniedException;
+       public boolean contains(final String o) throws ReadDeniedException,
+                       AuthenticationRequiredException;
 
        /**
         * @sec.graph Read
         * @sec.triple Read SecTriple( this, RDF.li, o );
         * @throws ReadDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public boolean contains( final String o, final String l )
-                       throws ReadDeniedException;
+       public boolean contains(final String o, final String l)
+                       throws ReadDeniedException, 
AuthenticationRequiredException;
 
        /**
         * @sec.graph Read
         * @sec.triple Read on each triple ( this, rdf:li_? node ) returned by
-        *            iterator;
+        *             iterator;
         * @throws ReadDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public SecuredNodeIterator<RDFNode> iterator() throws 
ReadDeniedException;
+       public SecuredNodeIterator<RDFNode> iterator() throws 
ReadDeniedException,
+                       AuthenticationRequiredException;
 
        /**
-        * @param perms the Permissions required on each node returned
+        * @param perms
+        *            the Permissions required on each node returned
         * @sec.graph Read
         * @sec.triple Read + perms on each triple ( this, rdf:li_? node ) 
returned
-        *            by iterator;
+        *             by iterator;
         * @throws ReadDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
-       public SecuredNodeIterator<RDFNode> iterator( Set<Action> perms )
-                       throws ReadDeniedException;
+       public SecuredNodeIterator<RDFNode> iterator(Set<Action> perms)
+                       throws ReadDeniedException, 
AuthenticationRequiredException;
 
        /**
         * @sec.graph Update
         * @sec.triple Delete s as triple;
         * @throws UpdateDeniedException
         * @throws DeleteDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public SecuredContainer remove( final Statement s )
-                       throws UpdateDeniedException, DeleteDeniedException;
+       public SecuredContainer remove(final Statement s)
+                       throws UpdateDeniedException, DeleteDeniedException,
+                       AuthenticationRequiredException;
 
        /**
         * @sec.graph Read
         * @throws ReadDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public int size() throws ReadDeniedException;
+       public int size() throws ReadDeniedException,
+                       AuthenticationRequiredException;
 }

http://git-wip-us.apache.org/repos/asf/jena/blob/2c0454c6/jena-permissions/src/main/java/org/apache/jena/permissions/model/SecuredLiteral.java
----------------------------------------------------------------------
diff --git 
a/jena-permissions/src/main/java/org/apache/jena/permissions/model/SecuredLiteral.java
 
b/jena-permissions/src/main/java/org/apache/jena/permissions/model/SecuredLiteral.java
index 05194a6..10d0215 100644
--- 
a/jena-permissions/src/main/java/org/apache/jena/permissions/model/SecuredLiteral.java
+++ 
b/jena-permissions/src/main/java/org/apache/jena/permissions/model/SecuredLiteral.java
@@ -17,10 +17,11 @@
  */
 package org.apache.jena.permissions.model;
 
-import org.apache.jena.datatypes.DatatypeFormatException ;
-import org.apache.jena.datatypes.RDFDatatype ;
-import org.apache.jena.rdf.model.Literal ;
-import org.apache.jena.rdf.model.Model ;
+import org.apache.jena.datatypes.DatatypeFormatException;
+import org.apache.jena.datatypes.RDFDatatype;
+import org.apache.jena.rdf.model.Literal;
+import org.apache.jena.rdf.model.Model;
+import org.apache.jena.shared.AuthenticationRequiredException;
 import org.apache.jena.shared.ReadDeniedException;
 
 /**
@@ -28,8 +29,7 @@ import org.apache.jena.shared.ReadDeniedException;
  * 
  * Use the SecuredLiteral.Factory to create instances
  */
-public interface SecuredLiteral extends Literal, SecuredRDFNode
-{
+public interface SecuredLiteral extends Literal, SecuredRDFNode {
 
        @Override
        public SecuredLiteral asLiteral();
@@ -38,135 +38,180 @@ public interface SecuredLiteral extends Literal, 
SecuredRDFNode
         * @sec.graph Read
         * @throws ReadDeniedException
         * @throws DatatypeFormatException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
        public boolean getBoolean() throws ReadDeniedException,
-                       DatatypeFormatException;
+                       DatatypeFormatException, 
AuthenticationRequiredException;
 
        /**
         * @sec.graph Read
         * @throws ReadDeniedException
         * @throws DatatypeFormatException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public byte getByte() throws ReadDeniedException, 
DatatypeFormatException;
+       public byte getByte() throws ReadDeniedException, 
DatatypeFormatException,
+                       AuthenticationRequiredException;
 
        /**
         * @sec.graph Read
         * @throws ReadDeniedException
         * @throws DatatypeFormatException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public char getChar() throws ReadDeniedException, 
DatatypeFormatException;
+       public char getChar() throws ReadDeniedException, 
DatatypeFormatException,
+                       AuthenticationRequiredException;
 
        /**
         * @sec.graph Read
         * @throws ReadDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public RDFDatatype getDatatype() throws ReadDeniedException;
+       public RDFDatatype getDatatype() throws ReadDeniedException,
+                       AuthenticationRequiredException;
 
        /**
         * @sec.graph Read
         * @throws ReadDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public String getDatatypeURI() throws ReadDeniedException;
+       public String getDatatypeURI() throws ReadDeniedException,
+                       AuthenticationRequiredException;
 
        /**
         * @sec.graph Read
         * @throws ReadDeniedException
         * @throws DatatypeFormatException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
        public double getDouble() throws ReadDeniedException,
-                       DatatypeFormatException;
+                       DatatypeFormatException, 
AuthenticationRequiredException;
 
        /**
         * @sec.graph Read
         * @throws ReadDeniedException
         * @throws DatatypeFormatException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
        public float getFloat() throws ReadDeniedException,
-                       DatatypeFormatException;
+                       DatatypeFormatException, 
AuthenticationRequiredException;
 
        /**
         * @sec.graph Read
         * @throws ReadDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         * @throws DatatypeFormatException
         */
        @Override
-       public int getInt() throws ReadDeniedException, DatatypeFormatException;
+       public int getInt() throws ReadDeniedException, DatatypeFormatException,
+                       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;
 
        /**
         * @sec.graph Read
         * @throws ReadDeniedException
         * @throws DatatypeFormatException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public String getLexicalForm() throws ReadDeniedException;
+       public String getLexicalForm() throws ReadDeniedException,
+                       AuthenticationRequiredException;
 
        /**
         * @sec.graph Read
         * @throws ReadDeniedException
         * @throws DatatypeFormatException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public long getLong() throws ReadDeniedException, 
DatatypeFormatException;
+       public long getLong() throws ReadDeniedException, 
DatatypeFormatException,
+                       AuthenticationRequiredException;
 
        /**
         * @sec.graph Read
         * @throws ReadDeniedException
         * @throws DatatypeFormatException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
        public short getShort() throws ReadDeniedException,
-                       DatatypeFormatException;
+                       DatatypeFormatException, 
AuthenticationRequiredException;
 
        /**
         * @sec.graph Read
         * @throws ReadDeniedException
         * @throws DatatypeFormatException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
        public String getString() throws ReadDeniedException,
-                       DatatypeFormatException;
+                       DatatypeFormatException, 
AuthenticationRequiredException;
 
        /**
         * @sec.graph Read
         * @throws ReadDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public Object getValue() throws ReadDeniedException;
+       public Object getValue() throws ReadDeniedException,
+                       AuthenticationRequiredException;
 
        /**
         * @sec.graph Read
         * @throws ReadDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public Literal inModel( final Model m ) throws ReadDeniedException;
+       public Literal inModel(final Model m) throws ReadDeniedException,
+                       AuthenticationRequiredException;
 
        /**
         * @sec.graph Read
         * @throws ReadDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public boolean isWellFormedXML() throws ReadDeniedException;
+       public boolean isWellFormedXML() throws ReadDeniedException,
+                       AuthenticationRequiredException;
 
        /**
         * @sec.graph Read
         * @throws ReadDeniedException
+        * @throws AuthenticationRequiredException
+        *             if user is not authenticated and is required to be.
         */
        @Override
-       public boolean sameValueAs( final Literal other )
-                       throws ReadDeniedException;
+       public boolean sameValueAs(final Literal other) throws 
ReadDeniedException,
+                       AuthenticationRequiredException;
 
 }

Reply via email to