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;
}