You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by sm...@apache.org on 2015/03/11 15:54:43 UTC

directory-fortress-commander git commit: FC-79 - add common security components

Repository: directory-fortress-commander
Updated Branches:
  refs/heads/master 8fb94a07f -> 574d31c0f


FC-79 - add common security components


Project: http://git-wip-us.apache.org/repos/asf/directory-fortress-commander/repo
Commit: http://git-wip-us.apache.org/repos/asf/directory-fortress-commander/commit/574d31c0
Tree: http://git-wip-us.apache.org/repos/asf/directory-fortress-commander/tree/574d31c0
Diff: http://git-wip-us.apache.org/repos/asf/directory-fortress-commander/diff/574d31c0

Branch: refs/heads/master
Commit: 574d31c0f0932672448e12c759b4334619ab5d85
Parents: 8fb94a0
Author: Shawn McKinney <sm...@apache.org>
Authored: Wed Mar 11 09:54:30 2015 -0500
Committer: Shawn McKinney <sm...@apache.org>
Committed: Wed Mar 11 09:54:30 2015 -0500

----------------------------------------------------------------------
 .../web/SecureBookmarkablePageLink.java         | 26 ++++++++++++++------
 1 file changed, 18 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/directory-fortress-commander/blob/574d31c0/src/main/java/org/apache/directory/fortress/web/SecureBookmarkablePageLink.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/directory/fortress/web/SecureBookmarkablePageLink.java b/src/main/java/org/apache/directory/fortress/web/SecureBookmarkablePageLink.java
index 2cadff9..fedc6bd 100644
--- a/src/main/java/org/apache/directory/fortress/web/SecureBookmarkablePageLink.java
+++ b/src/main/java/org/apache/directory/fortress/web/SecureBookmarkablePageLink.java
@@ -25,6 +25,7 @@ import org.apache.wicket.markup.html.link.BookmarkablePageLink;
 import org.apache.wicket.request.mapper.parameter.PageParameters;
 
 import javax.servlet.http.HttpServletRequest;
+import java.util.StringTokenizer;
 
 
 /**
@@ -35,20 +36,15 @@ import javax.servlet.http.HttpServletRequest;
  */
 public class SecureBookmarkablePageLink extends BookmarkablePageLink
 {
-    /** Default serialVersionUID */
-    private static final long serialVersionUID = 1L;
-
-
     public <C extends Page> SecureBookmarkablePageLink( String id, Class<C> pageClass, String roleName )
     {
         super( id, pageClass );
-        if ( !isAuthorized( roleName ) )
+        if(!isAuthorized( roleName ))
         {
             setVisible( false );
         }
     }
 
-
     public <C extends Page> SecureBookmarkablePageLink( String id, Class<C> pageClass, PageParameters parameters,
         String roleName )
     {
@@ -59,10 +55,24 @@ public class SecureBookmarkablePageLink extends BookmarkablePageLink
         }
     }
 
-
     private boolean isAuthorized( String roleName )
     {
         HttpServletRequest servletReq = ( HttpServletRequest ) getRequest().getContainerRequest();
-        return SecUtils.isAuthorized( roleName, servletReq );
+        return isAuthorized( roleName, servletReq );
+    }
+
+    private boolean isAuthorized( String roleNames, HttpServletRequest servletReq )
+    {
+        boolean isAuthorized = false;
+        StringTokenizer tokenizer = new StringTokenizer( roleNames, "," );
+        if (tokenizer.countTokens() > 0)
+        {
+            while (tokenizer.hasMoreTokens())
+            {
+                String roleName = tokenizer.nextToken();
+                isAuthorized = SecUtils.isAuthorized( roleName, servletReq );
+            }
+        }
+        return isAuthorized;
     }
 }