You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by ca...@apache.org on 2006/09/18 10:26:09 UTC

svn commit: r447317 - /maven/shared/trunk/maven-user/maven-user-acegi/src/main/java/org/apache/maven/user/acegi/AclManager.java

Author: carlos
Date: Mon Sep 18 01:26:08 2006
New Revision: 447317

URL: http://svn.apache.org/viewvc?view=rev&rev=447317
Log:
Seems that anonymous user sets principal as String

Modified:
    maven/shared/trunk/maven-user/maven-user-acegi/src/main/java/org/apache/maven/user/acegi/AclManager.java

Modified: maven/shared/trunk/maven-user/maven-user-acegi/src/main/java/org/apache/maven/user/acegi/AclManager.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-user/maven-user-acegi/src/main/java/org/apache/maven/user/acegi/AclManager.java?view=diff&rev=447317&r1=447316&r2=447317
==============================================================================
--- maven/shared/trunk/maven-user/maven-user-acegi/src/main/java/org/apache/maven/user/acegi/AclManager.java (original)
+++ maven/shared/trunk/maven-user/maven-user-acegi/src/main/java/org/apache/maven/user/acegi/AclManager.java Mon Sep 18 01:26:08 2006
@@ -61,8 +61,22 @@
 
     protected String getCurrentUserName()
     {
-        return ( (org.acegisecurity.userdetails.User) SecurityContextHolder.getContext().getAuthentication()
-            .getPrincipal() ).getUsername();
+        Object principal = SecurityContextHolder.getContext().getAuthentication().getPrincipal();
+        
+        /* seems that anonymous user sets principal as String */
+        if ( principal instanceof String )
+        {
+            return (String) principal;
+        }
+        else if ( principal instanceof org.acegisecurity.userdetails.User )
+        {
+            return ( (org.acegisecurity.userdetails.User) principal ).getUsername();
+        }
+        else
+        {
+            throw new RuntimeException( "Unable to handle class " + principal.getClass().getName()
+                + " as authentication principal" );
+        }
     }
 
     protected void delete( Class clazz, Object id )
@@ -148,17 +162,16 @@
     }
 
     /**
-     * Get the instance permissions for a user and object ( identified by its class and id )
+     * Get the instance permissions for current user and an object
      * 
      * @param clazz {@link Class} of the object
      * @param id identifier of the object
-     * @param userName name of the user
      * @return the permissions for that user and object
      */
-    public InstancePermissions getUserInstancePermissions( Class clazz, Object id, String userName )
+    public InstancePermissions getUserInstancePermissions( Class clazz, Object id )
     {
         InstancePermissions permission = new InstancePermissions();
-        aclToPermission( getAcl( clazz, id, userName ), permission );
+        aclToPermission( getAcl( clazz, id, getCurrentUserName() ), permission );
         return permission;
     }