svn commit: r604909 - in /lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya: ac/ ac/file/ ac/impl/ cms/ac/cocoon/

[email protected]
Newsgroups gmane.comp.cms.lenya.cvs
Message-ID <[email protected]>
Author: andreas
Date: Mon Dec 17 08:20:58 2007
New Revision: 604909

URL: http://svn.apache.org/viewvc?rev=604909&view=rev
Log:
Access control refactoring: Added dedicated FileItem interface because not all items are configurable anymore. Added ManagedUserReference because otherwise the TransientUserReference would violate Liskov's substitution principle.

Added:
    lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/ac/ManagedUserReference.java
    lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/ac/file/FileItem.java
Modified:
    lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/ac/Identifiable.java
    lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/ac/Identity.java
    lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/ac/Item.java
    lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/ac/Machine.java
    lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/ac/UserReference.java
    lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/ac/file/FileGroup.java
    lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/ac/file/FileIPRange.java
    lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/ac/file/FileItemManager.java
    lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/ac/file/FileRole.java
    lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/ac/file/FileUser.java
    lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/ac/impl/AnonymousAuthenticator.java
    lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/ac/impl/TransientUserReference.java
    lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/ac/impl/UserAuthenticator.java
    lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/cms/ac/cocoon/PolicyHelper.java

Modified: lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/ac/Identifiable.java
URL: http://svn.apache.org/viewvc/lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/ac/Identifiable.java?rev=604909&r1=604908&r2=604909&view=diff
==============================================================================
--- lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/ac/Identifiable.java (original)
+++ lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/ac/Identifiable.java Mon Dec 17 08:20:58 2007
@@ -26,7 +26,17 @@
  * An identifiable object which can be put into the session.
  */
 public interface Identifiable extends Serializable {
-    
+
+    /**
+     * <p>
+     * Returns an array of all {@link Accreditable}s belonging to this identifiable. The
+     * credentials of all of these {@link Accreditable}s have to be considered when making an
+     * authorization decision about the identifiable.
+     * </p>
+     * 
+     * @param manager The accreditable manager.
+     * @return An array of {@link Accreditable}s.
+     */
     Accreditable[] getAccreditables(AccreditableManager manager);
-    
+
 }

Modified: lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/ac/Identity.java
URL: http://svn.apache.org/viewvc/lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/ac/Identity.java?rev=604909&r1=604908&r2=604909&view=diff
==============================================================================
--- lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/ac/Identity.java (original)
+++ lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/ac/Identity.java Mon Dec 17 08:20:58 2007
@@ -96,7 +96,16 @@
     }
 
     /**
-     * @return all {@link Accreditable}s which belong to this identity.
+     * <p>
+     * Returns an array of all {@link Accreditable}s belonging to the identifiables of this
+     * identity. The credentials of all of these {@link Accreditable}s have to be considered when
+     * making an authorization decision about the identity, i.e. the credential set of the identity
+     * is the union of all credential sets of all accreditables.
+     * </p>
+     * 
+     * @see Identifiable#getAccreditables(AccreditableManager)
+     * @param manager The accreditable manager.
+     * @return An array of {@link Accreditable}s.
      */
     public Accreditable[] getAccreditables(AccreditableManager manager) {
         Set accreditables = new HashSet();

Modified: lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/ac/Item.java
URL: http://svn.apache.org/viewvc/lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/ac/Item.java?rev=604909&r1=604908&r2=604909&view=diff
==============================================================================
--- lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/ac/Item.java (original)
+++ lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/ac/Item.java Mon Dec 17 08:20:58 2007
@@ -61,17 +61,4 @@
      */
     void setDescription(String description);
     
-    /**
-     * Sets the configuration directory of this item.
-     * @param configurationDirectory The configuration directory.
-     */
-    void setConfigurationDirectory(File configurationDirectory);
-
-    /**
-     * Configures this item.
-     * @param configuration The configuration.
-     * @throws ConfigurationException when something went wrong.
-     */
-    void configure(Configuration configuration) throws ConfigurationException;
-
 }

Modified: lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/ac/Machine.java
URL: http://svn.apache.org/viewvc/lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/ac/Machine.java?rev=604909&r1=604908&r2=604909&view=diff
==============================================================================
--- lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/ac/Machine.java (original)
+++ lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/ac/Machine.java Mon Dec 17 08:20:58 2007
@@ -24,11 +24,13 @@
 import java.util.Set;
 
 /**
- * A machine (representing an IP address).
+ * A machine, representing an IP address.
  * @version $Id: Machine.java 473841 2006-11-12 00:46:38Z gregor $
  */
 public class Machine implements Identifiable {
 
+    private static final long serialVersionUID = 1L;
+
     /**
      * Creates a new machine object. This method accepts
      * numeric IPv4 addresses like <code>"129.168.0.32"</code>,
@@ -74,6 +76,11 @@
         return getAddress().hashCode();
     }
 
+    /**
+     * This method returns all IP ranges which contain the machine's IP address.
+     * @see org.apache.lenya.ac.Identifiable#getAccreditables(org.apache.lenya.ac.AccreditableManager)
+     * @see #getIpRanges(AccreditableManager)
+     */
     public Accreditable[] getAccreditables(AccreditableManager manager) {
         IPRange[] ranges = getIpRanges(manager);
         Set accrs = new HashSet();
@@ -148,7 +155,7 @@
     }
     
     /**
-     * Returns the IP ranges this machine belongs to.
+     * Returns the IP ranges which contain the IP address of this machine.
      * @param manager The accreditable manager to obtain the IP ranges from.
      * @return An array of IP ranges.
      */

Added: lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/ac/ManagedUserReference.java
URL: http://svn.apache.org/viewvc/lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/ac/ManagedUserReference.java?rev=604909&view=auto
==============================================================================
--- lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/ac/ManagedUserReference.java (added)
+++ lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/ac/ManagedUserReference.java Mon Dec 17 08:20:58 2007
@@ -0,0 +1,62 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You under the Apache License, Version 2.0
+ *  (the "License"); you may not use this file except in compliance with
+ *  the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *
+ */
+package org.apache.lenya.ac;
+
+/**
+ * A reference to a managed user.
+ */
+public class ManagedUserReference extends UserReference {
+
+    /**
+     * @param id The user ID.
+     * @param managerId The ID of the accreditable manager the user belongs to.
+     */
+    public ManagedUserReference(String id, String managerId) {
+        super(id);
+        this.managerId = managerId;
+    }
+    
+    private static final long serialVersionUID = 1L;
+    private String managerId;
+
+    protected String getManagerId() {
+        return this.managerId;
+    }
+
+    public User getUser(AccreditableManager accrMgr) {
+        try {
+            if (canGetUserFrom(accrMgr)) {
+                return accrMgr.getUserManager().getUser(getId());
+            } else {
+                throw new RuntimeException("Invalid accreditable manager.");
+            }
+        } catch (AccessControlException e) {
+            throw new RuntimeException(e);
+        }
+    }
+
+    public boolean canGetUserFrom(AccreditableManager accrMgr) {
+        try {
+            UserManager userMgr = accrMgr.getUserManager();
+            return userMgr.getId().equals(getManagerId());
+        } catch (AccessControlException e) {
+            throw new RuntimeException(e);
+        }
+    }
+
+}

Modified: lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/ac/UserReference.java
URL: http://svn.apache.org/viewvc/lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/ac/UserReference.java?rev=604909&r1=604908&r2=604909&view=diff
==============================================================================
--- lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/ac/UserReference.java (original)
+++ lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/ac/UserReference.java Mon Dec 17 08:20:58 2007
@@ -21,45 +21,29 @@
 import java.util.HashSet;
 import java.util.Set;
 
+/**
+ * An identifiable which represents a user.
+ */
+public abstract class UserReference implements Identifiable {
 
-public class UserReference implements Identifiable {
+    private static final long serialVersionUID = 1L;
 
     private String id;
-    private String managerId;
-    
-    public UserReference(String id, String managerId) {
+
+    /**
+     * @param id The ID of the user.
+     * @see Item#getId()
+     */
+    public UserReference(String id) {
         this.id = id;
-        this.managerId = managerId;
     }
-    
+
+    /**
+     * @return The ID of the referenced user.
+     */
     public String getId() {
         return this.id;
     }
-    
-    protected String getManagerId() {
-        return this.managerId;
-    }
-
-    public User getUser(AccreditableManager accrMgr) {
-        try {
-            if (canGetUserFrom(accrMgr)) {
-                return accrMgr.getUserManager().getUser(getId());
-            } else {
-                throw new RuntimeException("Invalid accreditable manager.");
-            }
-        } catch (AccessControlException e) {
-            throw new RuntimeException(e);
-        }
-    }
-
-    public boolean canGetUserFrom(AccreditableManager accrMgr) {
-        try {
-            UserManager userMgr = accrMgr.getUserManager();
-            return userMgr.getId().equals(getManagerId());
-        } catch (AccessControlException e) {
-            throw new RuntimeException(e);
-        }
-    }
 
     public Accreditable[] getAccreditables(AccreditableManager accrMgr) {
         Set accreditables = new HashSet();
@@ -74,12 +58,32 @@
         return (Accreditable[]) accreditables.toArray(new Accreditable[accreditables.size()]);
     }
 
+    /**
+     * @param accrMgr The accreditable manager.
+     * @return The user of the accreditable's user manager which is represented by this user
+     *         reference.
+     * @throws RuntimeException if the accreditable manager doesn't contain a user which is
+     *             represented by this user reference.
+     */
+    public abstract User getUser(AccreditableManager accrMgr);
+
+    /**
+     * @param accrMgr The accreditable manager.
+     * @return If the accreditable manager contains a user which is represented by this user
+     *         reference.
+     */
+    public abstract boolean canGetUserFrom(AccreditableManager accrMgr);
+
+    /**
+     * @param accrMgr The accreditable manager.
+     * @param user The user.
+     * @return All groups of the accreditable manager which have a rule matching the user.
+     */
     protected Set getMatchingGroups(AccreditableManager accrMgr, AttributeOwner user) {
         Set matchingGroups = new HashSet();
         if (user.getAttributeNames().length > 0) {
             try {
-                Group[] groups = accrMgr.getGroupManager()
-                        .getGroups();
+                Group[] groups = accrMgr.getGroupManager().getGroups();
                 for (int i = 0; i < groups.length; i++) {
                     if (groups[i].matches(user)) {
                         matchingGroups.add(groups[i]);

Modified: lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/ac/file/FileGroup.java
URL: http://svn.apache.org/viewvc/lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/ac/file/FileGroup.java?rev=604909&r1=604908&r2=604909&view=diff
==============================================================================
--- lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/ac/file/FileGroup.java (original)
+++ lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/ac/file/FileGroup.java Mon Dec 17 08:20:58 2007
@@ -33,7 +33,7 @@
 /**
  * File-based group implementation.
  */
-public class FileGroup extends AbstractGroup {
+public class FileGroup extends AbstractGroup implements FileItem {
 
     protected static final String RULE = "rule";
 

Modified: lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/ac/file/FileIPRange.java
URL: http://svn.apache.org/viewvc/lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/ac/file/FileIPRange.java?rev=604909&r1=604908&r2=604909&view=diff
==============================================================================
--- lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/ac/file/FileIPRange.java (original)
+++ lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/ac/file/FileIPRange.java Mon Dec 17 08:20:58 2007
@@ -21,7 +21,6 @@
 package org.apache.lenya.ac.file;
 
 import java.io.File;
-import java.io.Serializable;
 
 import org.apache.avalon.framework.configuration.Configuration;
 import org.apache.avalon.framework.configuration.ConfigurationException;
@@ -36,14 +35,14 @@
 /**
  * IP range that is stored in a file.
  */
-public class FileIPRange extends AbstractIPRange implements Serializable {
+public class FileIPRange extends AbstractIPRange implements FileItem {
 
 	/**
 	 * Main method.
 	 * 
 	 * @param args
 	 *            The command-line arguments.
-	 * @deprecated This should bemoved to a JUnit test.
+	 * @deprecated This should be moved to a JUnit test.
 	 */
 	public static void main(String[] args) {
 		if (args.length == 0) {

Added: lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/ac/file/FileItem.java
URL: http://svn.apache.org/viewvc/lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/ac/file/FileItem.java?rev=604909&view=auto
==============================================================================
--- lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/ac/file/FileItem.java (added)
+++ lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/ac/file/FileItem.java Mon Dec 17 08:20:58 2007
@@ -0,0 +1,46 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You under the Apache License, Version 2.0
+ *  (the "License"); you may not use this file except in compliance with
+ *  the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *
+ */
+
+/* $Id: Item.java 473841 2006-11-12 00:46:38Z gregor $  */
+package org.apache.lenya.ac.file;
+
+import java.io.File;
+
+import org.apache.avalon.framework.configuration.Configuration;
+import org.apache.avalon.framework.configuration.ConfigurationException;
+import org.apache.lenya.ac.Item;
+
+/**
+ * An item which is stored in a file.
+ */
+public interface FileItem extends Item {
+
+    /**
+     * Sets the configuration directory of this item.
+     * @param configurationDirectory The configuration directory.
+     */
+    void setConfigurationDirectory(File configurationDirectory);
+
+    /**
+     * Configures this item.
+     * @param configuration The configuration.
+     * @throws ConfigurationException when something went wrong.
+     */
+    void configure(Configuration configuration) throws ConfigurationException;
+    
+}

Modified: lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/ac/file/FileItemManager.java
URL: http://svn.apache.org/viewvc/lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/ac/file/FileItemManager.java?rev=604909&r1=604908&r2=604909&view=diff
==============================================================================
--- lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/ac/file/FileItemManager.java (original)
+++ lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/ac/file/FileItemManager.java Mon Dec 17 08:20:58 2007
@@ -131,8 +131,7 @@
             File[] addedFiles = notifier.getAddedFiles();
 
             for (int i = 0; i < addedFiles.length; i++) {
-                Item item = loadItem(addedFiles[i]);
-                add(item);
+                add(loadItem(addedFiles[i]));
             }
 
             File[] removedFiles = notifier.getRemovedFiles();
@@ -171,12 +170,12 @@
      * @return An item.
      * @throws AccessControlException when something went wrong.
      */
-    protected Item loadItem(File file) throws AccessControlException {
+    protected FileItem loadItem(File file) throws AccessControlException {
         Configuration config = getItemConfiguration(file);
 
         String fileName = file.getName();
         String id = fileName.substring(0, fileName.length() - getSuffix().length());
-        Item item = (Item) items.get(id);
+        FileItem item = (FileItem) items.get(id);
 
         String klass = getItemClass(config);
         if (item == null) {
@@ -193,10 +192,10 @@
         return item;
     }
 
-    protected Item createItem(String klass) throws AccessControlException {
-        Item item;
+    protected FileItem createItem(String klass) throws AccessControlException {
+        FileItem item;
         try {
-            item = (Item) Class.forName(klass).newInstance();
+            item = (FileItem) Class.forName(klass).newInstance();
             ((AbstractItem) item).setItemManager(this);
         } catch (Exception e) {
             String errorMsg = "Exception when trying to instanciate: " + klass

Modified: lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/ac/file/FileRole.java
URL: http://svn.apache.org/viewvc/lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/ac/file/FileRole.java?rev=604909&r1=604908&r2=604909&view=diff
==============================================================================
--- lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/ac/file/FileRole.java (original)
+++ lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/ac/file/FileRole.java Mon Dec 17 08:20:58 2007
@@ -32,7 +32,7 @@
  * File-based role implementation.
  * @version $Id: FileRole.java 473841 2006-11-12 00:46:38Z gregor $
  */
-public class FileRole extends AbstractRole {
+public class FileRole extends AbstractRole implements FileItem {
     
     /**
     * Creates a new file role.

Modified: lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/ac/file/FileUser.java
URL: http://svn.apache.org/viewvc/lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/ac/file/FileUser.java?rev=604909&r1=604908&r2=604909&view=diff
==============================================================================
--- lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/ac/file/FileUser.java (original)
+++ lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/ac/file/FileUser.java Mon Dec 17 08:20:58 2007
@@ -19,7 +19,6 @@
 package org.apache.lenya.ac.file;
 
 import java.io.File;
-import java.io.Serializable;
 
 import org.apache.avalon.framework.configuration.Configuration;
 import org.apache.avalon.framework.configuration.ConfigurationException;
@@ -35,7 +34,8 @@
  * File-based user implementation.
  * @version $Id: FileUser.java 473841 2006-11-12 00:46:38Z gregor $
  */
-public class FileUser extends AbstractUser implements Serializable {
+public class FileUser extends AbstractUser implements FileItem {
+    
     private static final Logger log = Logger.getLogger(FileUser.class);
 
     public static final String ID = "identity";

Modified: lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/ac/impl/AnonymousAuthenticator.java
URL: http://svn.apache.org/viewvc/lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/ac/impl/AnonymousAuthenticator.java?rev=604909&r1=604908&r2=604909&view=diff
==============================================================================
--- lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/ac/impl/AnonymousAuthenticator.java (original)
+++ lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/ac/impl/AnonymousAuthenticator.java Mon Dec 17 08:20:58 2007
@@ -24,6 +24,7 @@
 import org.apache.lenya.ac.Authenticator;
 import org.apache.lenya.ac.ErrorHandler;
 import org.apache.lenya.ac.Identity;
+import org.apache.lenya.ac.ManagedUserReference;
 import org.apache.lenya.ac.UserManager;
 import org.apache.lenya.ac.UserReference;
 
@@ -66,7 +67,7 @@
                 }
                 identity.removeIdentifiable(oldUser);
             }
-            identity.addIdentifiable(new UserReference(username, userManager.getId()));
+            identity.addIdentifiable(new ManagedUserReference(username, userManager.getId()));
             authenticated = true;
         } else {
             if (getLogger().isDebugEnabled()) {

Modified: lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/ac/impl/TransientUserReference.java
URL: http://svn.apache.org/viewvc/lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/ac/impl/TransientUserReference.java?rev=604909&r1=604908&r2=604909&view=diff
==============================================================================
--- lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/ac/impl/TransientUserReference.java (original)
+++ lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/ac/impl/TransientUserReference.java Mon Dec 17 08:20:58 2007
@@ -26,12 +26,20 @@
 import org.apache.lenya.ac.UserReference;
 import org.apache.lenya.util.Assert;
 
+/**
+ * A reference to a transient user.
+ */
 public class TransientUserReference extends UserReference {
     
+    private static final long serialVersionUID = 1L;
+    
     private TransientUser user;
     
+    /**
+     * @param user The user which this reference represents.
+     */
     public TransientUserReference(TransientUser user) {
-        super(user.getId(), "");
+        super(user.getId());
         Assert.notNull(user);
         this.user = user;
     }

Modified: lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/ac/impl/UserAuthenticator.java
URL: http://svn.apache.org/viewvc/lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/ac/impl/UserAuthenticator.java?rev=604909&r1=604908&r2=604909&view=diff
==============================================================================
--- lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/ac/impl/UserAuthenticator.java (original)
+++ lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/ac/impl/UserAuthenticator.java Mon Dec 17 08:20:58 2007
@@ -28,6 +28,7 @@
 import org.apache.lenya.ac.ErrorHandler;
 import org.apache.lenya.ac.Identity;
 import org.apache.lenya.ac.ManagedUser;
+import org.apache.lenya.ac.ManagedUserReference;
 import org.apache.lenya.ac.User;
 import org.apache.lenya.ac.UserManager;
 import org.apache.lenya.ac.UserReference;
@@ -108,7 +109,7 @@
                     }
                     identity.removeIdentifiable(oldUser);
                 }
-                identity.addIdentifiable(new UserReference(username, userManager.getId()));
+                identity.addIdentifiable(new ManagedUserReference(username, userManager.getId()));
                 authenticated = true;
             } else {
                 if (getLogger().isDebugEnabled()) {

Modified: lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/cms/ac/cocoon/PolicyHelper.java
URL: http://svn.apache.org/viewvc/lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/cms/ac/cocoon/PolicyHelper.java?rev=604909&r1=604908&r2=604909&view=diff
==============================================================================
--- lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/cms/ac/cocoon/PolicyHelper.java (original)
+++ lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/cms/ac/cocoon/PolicyHelper.java Mon Dec 17 08:20:58 2007
@@ -34,11 +34,11 @@
 import org.apache.lenya.ac.AccreditableManager;
 import org.apache.lenya.ac.Identity;
 import org.apache.lenya.ac.Item;
+import org.apache.lenya.ac.ManagedUserReference;
 import org.apache.lenya.ac.Policy;
 import org.apache.lenya.ac.Role;
 import org.apache.lenya.ac.User;
 import org.apache.lenya.ac.UserManager;
-import org.apache.lenya.ac.UserReference;
 import org.apache.lenya.ac.impl.Credential;
 import org.apache.lenya.ac.impl.DefaultAccessController;
 import org.apache.lenya.ac.impl.DefaultPolicy;
@@ -325,7 +325,7 @@
             for (int i = 0; i < userArray.length; i++) {
                 Identity identity = new Identity();
                 User user = userArray[i];
-                identity.addIdentifiable(new UserReference(user.getId(), userManager.getId()));
+                identity.addIdentifiable(new ManagedUserReference(user.getId(), userManager.getId()));
                 Role[] roles = policy.getRoles(identity);
                 for (int roleIndex = 0; roleIndex < roles.length; roleIndex++) {
                     if (roles[roleIndex].getId().equals(roleId)) {
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.