Przeglądaj źródła

SEC-1287: Regression with fix SEC-1022 - cannot register custom permissions w/BasicLookupStrategy. Added setter method for PermissionFactory field.

Luke Taylor 15 lat temu
rodzic
commit
c922021d28

+ 10 - 0
acl/src/main/java/org/springframework/security/acls/jdbc/BasicLookupStrategy.java

@@ -421,6 +421,16 @@ public final class BasicLookupStrategy implements LookupStrategy {
         return resultMap;
     }
 
+    /**
+     * Sets the {@code PermissionFactory} instance which will be used to convert loaded permission
+     * data values to {@code Permission}s. A {@code DefaultPermissionFactory} will be used by default.
+     *
+     * @param permissionFactory
+     */
+    public void setPermissionFactory(PermissionFactory permissionFactory) {
+        this.permissionFactory = permissionFactory;
+    }
+
     public void setBatchSize(int batchSize) {
         this.batchSize = batchSize;
     }

+ 2 - 0
acl/src/test/java/org/springframework/security/acls/jdbc/BasicLookupStrategyTests.java

@@ -22,6 +22,7 @@ import org.springframework.security.acls.domain.AclAuthorizationStrategy;
 import org.springframework.security.acls.domain.AclAuthorizationStrategyImpl;
 import org.springframework.security.acls.domain.BasePermission;
 import org.springframework.security.acls.domain.ConsoleAuditLogger;
+import org.springframework.security.acls.domain.DefaultPermissionFactory;
 import org.springframework.security.acls.domain.EhCacheBasedAclCache;
 import org.springframework.security.acls.domain.ObjectIdentityImpl;
 import org.springframework.security.acls.domain.PrincipalSid;
@@ -103,6 +104,7 @@ public class BasicLookupStrategyTests {
                 new GrantedAuthorityImpl("ROLE_ADMINISTRATOR"), new GrantedAuthorityImpl("ROLE_ADMINISTRATOR"),
                 new GrantedAuthorityImpl("ROLE_ADMINISTRATOR") });
         strategy = new BasicLookupStrategy(dataSource, cache, authorizationStrategy, new ConsoleAuditLogger());
+        strategy.setPermissionFactory(new DefaultPermissionFactory());
     }
 
     @After