Repository: jena
Updated Branches:
  refs/heads/master 744216169 -> 7e7bf2b3a


Added SecurityEvaluator.isPrincipalAuthenticated( Object principal) to verify 
authentication.
Part of issue JENA-992


Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/31af91ff
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/31af91ff
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/31af91ff

Branch: refs/heads/master
Commit: 31af91ff1b536dae980ea8585cdce98940c818c8
Parents: 4723a8a
Author: Claude Warren <[email protected]>
Authored: Sun Jul 19 11:55:21 2015 +0100
Committer: Claude Warren <[email protected]>
Committed: Sun Jul 19 11:55:21 2015 +0100

----------------------------------------------------------------------
 .../jena/permissions/example/ExampleEvaluator.java    |  6 ++++++
 .../permissions/example/ShiroExampleEvaluator.java    | 12 ++++++++++++
 .../apache/jena/permissions/SecurityEvaluator.java    | 14 ++++++++++++++
 .../permissions/impl/CachedSecurityEvaluator.java     |  5 +++++
 .../jena/permissions/query/SecuredQueryEngine.java    |  5 +++++
 .../jena/permissions/MockSecurityEvaluator.java       |  6 ++++++
 .../jena/permissions/ModelBasedSecurityEvaluator.java |  9 ++++++++-
 .../jena/permissions/StaticSecurityEvaluator.java     |  5 +++++
 .../permissions/model/SecuredModelDetailTest.java     |  5 +++++
 9 files changed, 66 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/31af91ff/jena-permissions/src/example/java/org/apache/jena/permissions/example/ExampleEvaluator.java
----------------------------------------------------------------------
diff --git 
a/jena-permissions/src/example/java/org/apache/jena/permissions/example/ExampleEvaluator.java
 
b/jena-permissions/src/example/java/org/apache/jena/permissions/example/ExampleEvaluator.java
index f67aa40..2c74c4e 100644
--- 
a/jena-permissions/src/example/java/org/apache/jena/permissions/example/ExampleEvaluator.java
+++ 
b/jena-permissions/src/example/java/org/apache/jena/permissions/example/ExampleEvaluator.java
@@ -126,9 +126,15 @@ public class ExampleEvaluator implements SecurityEvaluator 
{
                }
                principal = new BasicUserPrincipal( userName );
        }
+       
        @Override
        public Principal getPrincipal() {
                return principal;
        }
 
+       @Override
+       public boolean isPrincipalAuthenticated(Object principal) {
+               return principal != null;
+       }
+
 }

http://git-wip-us.apache.org/repos/asf/jena/blob/31af91ff/jena-permissions/src/example/java/org/apache/jena/permissions/example/ShiroExampleEvaluator.java
----------------------------------------------------------------------
diff --git 
a/jena-permissions/src/example/java/org/apache/jena/permissions/example/ShiroExampleEvaluator.java
 
b/jena-permissions/src/example/java/org/apache/jena/permissions/example/ShiroExampleEvaluator.java
index 6feeff1..4bac59b 100644
--- 
a/jena-permissions/src/example/java/org/apache/jena/permissions/example/ShiroExampleEvaluator.java
+++ 
b/jena-permissions/src/example/java/org/apache/jena/permissions/example/ShiroExampleEvaluator.java
@@ -218,5 +218,17 @@ public class ShiroExampleEvaluator implements 
SecurityEvaluator {
                return SecurityUtils.getSubject();
        }
 
+       /**
+        * Verify the Shiro subject is authenticated.
+        */
+       @Override
+       public boolean isPrincipalAuthenticated(Object principal) {
+               if (principal instanceof Subject)
+               {
+                       return ((Subject)principal).isAuthenticated();
+               }
+               return false;
+       }
+
 
 }

http://git-wip-us.apache.org/repos/asf/jena/blob/31af91ff/jena-permissions/src/main/java/org/apache/jena/permissions/SecurityEvaluator.java
----------------------------------------------------------------------
diff --git 
a/jena-permissions/src/main/java/org/apache/jena/permissions/SecurityEvaluator.java
 
b/jena-permissions/src/main/java/org/apache/jena/permissions/SecurityEvaluator.java
index bb10e7c..898c41f 100644
--- 
a/jena-permissions/src/main/java/org/apache/jena/permissions/SecurityEvaluator.java
+++ 
b/jena-permissions/src/main/java/org/apache/jena/permissions/SecurityEvaluator.java
@@ -389,4 +389,18 @@ public interface SecurityEvaluator {
         * @return The current principal
         */
        public Object getPrincipal();
+       
+       /**
+        * Returns true if the principal is recognized as an authenticated 
principal by the
+        * underlying authentication mechanism.
+        * 
+        * This is to handle the case where an authentication mechanism returns 
a non-null object to
+        * indicate a non-authenticated principal.  (e.g. Shiro).
+        * 
+        * The principal is guaranteed to have been the return value from an 
earlier getPrincipal() call.
+        * 
+        * @param principal The principal to check.
+        * @return true if authenticated, false if not.
+        */
+       public boolean isPrincipalAuthenticated( Object principal );
 }

http://git-wip-us.apache.org/repos/asf/jena/blob/31af91ff/jena-permissions/src/main/java/org/apache/jena/permissions/impl/CachedSecurityEvaluator.java
----------------------------------------------------------------------
diff --git 
a/jena-permissions/src/main/java/org/apache/jena/permissions/impl/CachedSecurityEvaluator.java
 
b/jena-permissions/src/main/java/org/apache/jena/permissions/impl/CachedSecurityEvaluator.java
index b27bde7..5b7b07d 100644
--- 
a/jena-permissions/src/main/java/org/apache/jena/permissions/impl/CachedSecurityEvaluator.java
+++ 
b/jena-permissions/src/main/java/org/apache/jena/permissions/impl/CachedSecurityEvaluator.java
@@ -89,4 +89,9 @@ public class CachedSecurityEvaluator implements 
SecurityEvaluator {
                return origPrincipal;
        }
 
+       @Override
+       public boolean isPrincipalAuthenticated(Object principal) {
+               return wrapped.isPrincipalAuthenticated(principal);
+       }
+
 }

http://git-wip-us.apache.org/repos/asf/jena/blob/31af91ff/jena-permissions/src/main/java/org/apache/jena/permissions/query/SecuredQueryEngine.java
----------------------------------------------------------------------
diff --git 
a/jena-permissions/src/main/java/org/apache/jena/permissions/query/SecuredQueryEngine.java
 
b/jena-permissions/src/main/java/org/apache/jena/permissions/query/SecuredQueryEngine.java
index 65fde31..d4ed844 100644
--- 
a/jena-permissions/src/main/java/org/apache/jena/permissions/query/SecuredQueryEngine.java
+++ 
b/jena-permissions/src/main/java/org/apache/jena/permissions/query/SecuredQueryEngine.java
@@ -146,6 +146,11 @@ public class SecuredQueryEngine extends QueryEngineMain
                                {
                                        return null;
                                }
+
+                               @Override
+                               public boolean isPrincipalAuthenticated(Object 
principal) {
+                                       return true;
+                               }
                        };
 
                }

http://git-wip-us.apache.org/repos/asf/jena/blob/31af91ff/jena-permissions/src/test/java/org/apache/jena/permissions/MockSecurityEvaluator.java
----------------------------------------------------------------------
diff --git 
a/jena-permissions/src/test/java/org/apache/jena/permissions/MockSecurityEvaluator.java
 
b/jena-permissions/src/test/java/org/apache/jena/permissions/MockSecurityEvaluator.java
index dd2e8d7..8e2fc09 100644
--- 
a/jena-permissions/src/test/java/org/apache/jena/permissions/MockSecurityEvaluator.java
+++ 
b/jena-permissions/src/test/java/org/apache/jena/permissions/MockSecurityEvaluator.java
@@ -227,4 +227,10 @@ public class MockSecurityEvaluator implements 
SecurityEvaluator
                                update, delete, forceTripleChecks);
        }
 
+
+       @Override
+       public boolean isPrincipalAuthenticated(Object principal) {
+               return principal != null;
+       }
+
 }

http://git-wip-us.apache.org/repos/asf/jena/blob/31af91ff/jena-permissions/src/test/java/org/apache/jena/permissions/ModelBasedSecurityEvaluator.java
----------------------------------------------------------------------
diff --git 
a/jena-permissions/src/test/java/org/apache/jena/permissions/ModelBasedSecurityEvaluator.java
 
b/jena-permissions/src/test/java/org/apache/jena/permissions/ModelBasedSecurityEvaluator.java
index 61fc094..ca2f3cc 100644
--- 
a/jena-permissions/src/test/java/org/apache/jena/permissions/ModelBasedSecurityEvaluator.java
+++ 
b/jena-permissions/src/test/java/org/apache/jena/permissions/ModelBasedSecurityEvaluator.java
@@ -73,7 +73,14 @@ public class ModelBasedSecurityEvaluator implements 
SecurityEvaluator {
 
        @Override
        public Object getPrincipal() {
-               return null;
+               return "principal";
+       }
+
+
+
+       @Override
+       public boolean isPrincipalAuthenticated(Object principal) {
+               return principal != null;
        }
 
 }

http://git-wip-us.apache.org/repos/asf/jena/blob/31af91ff/jena-permissions/src/test/java/org/apache/jena/permissions/StaticSecurityEvaluator.java
----------------------------------------------------------------------
diff --git 
a/jena-permissions/src/test/java/org/apache/jena/permissions/StaticSecurityEvaluator.java
 
b/jena-permissions/src/test/java/org/apache/jena/permissions/StaticSecurityEvaluator.java
index 94e47e9..37c9fed 100644
--- 
a/jena-permissions/src/test/java/org/apache/jena/permissions/StaticSecurityEvaluator.java
+++ 
b/jena-permissions/src/test/java/org/apache/jena/permissions/StaticSecurityEvaluator.java
@@ -80,4 +80,9 @@ public class StaticSecurityEvaluator implements 
SecurityEvaluator {
                return user;
        }
 
+       @Override
+       public boolean isPrincipalAuthenticated(Object principal) {
+               return principal != null;
+       }
+
 }

http://git-wip-us.apache.org/repos/asf/jena/blob/31af91ff/jena-permissions/src/test/java/org/apache/jena/permissions/model/SecuredModelDetailTest.java
----------------------------------------------------------------------
diff --git 
a/jena-permissions/src/test/java/org/apache/jena/permissions/model/SecuredModelDetailTest.java
 
b/jena-permissions/src/test/java/org/apache/jena/permissions/model/SecuredModelDetailTest.java
index 51375ac..77f705d 100644
--- 
a/jena-permissions/src/test/java/org/apache/jena/permissions/model/SecuredModelDetailTest.java
+++ 
b/jena-permissions/src/test/java/org/apache/jena/permissions/model/SecuredModelDetailTest.java
@@ -376,6 +376,11 @@ public class SecuredModelDetailTest {
                        return principal;
                }
 
+               @Override
+               public boolean isPrincipalAuthenticated(Object principal) {
+                       return principal != null;
+               }
+
        }
 
 }

Reply via email to