svn commit: r604231 - in /lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/ac: impl/AbstractUser.java impl/TransientUser.java shibboleth/ShibbolethAuthenticator.java

[email protected]
Newsgroups gmane.comp.cms.lenya.cvs
Message-ID <[email protected]>
Author: andreas
Date: Fri Dec 14 09:04:02 2007
New Revision: 604231

URL: http://svn.apache.org/viewvc?rev=604231&view=rev
Log:
Updating transient user and shibboleth authenticator to previous changes. The Shibboleth login doesn't work yet, though.

Modified:
    lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/ac/impl/AbstractUser.java
    lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/ac/impl/TransientUser.java
    lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/ac/shibboleth/ShibbolethAuthenticator.java

Modified: lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/ac/impl/AbstractUser.java
URL: http://svn.apache.org/viewvc/lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/ac/impl/AbstractUser.java?rev=604231&r1=604230&r2=604231&view=diff
==============================================================================
--- lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/ac/impl/AbstractUser.java (original)
+++ lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/ac/impl/AbstractUser.java Fri Dec 14 09:04:02 2007
@@ -191,23 +191,29 @@
     }
 
     public Group[] getGroups() {
-        Group[] groups = getExplicitlyAssignedGroups();
+        Set groups = new HashSet();
+        groups.addAll(Arrays.asList(getExplicitlyAssignedGroups()));
+        groups.addAll(Arrays.asList(getRuleGroups()));
+        return (Group[]) groups.toArray(new Group[groups.size()]);
+    }
+    
+    
+    protected Group[] getRuleGroups() {
+        Set ruleGroups = new HashSet();
         if (hasAttributes()) {
-            Set set = new HashSet(Arrays.asList(groups));
             try {
-                Group[] allGroups = getItemManager().getAccreditableManager().getGroupManager()
+                Group[] groups = getItemManager().getAccreditableManager().getGroupManager()
                         .getGroups();
-                for (int i = 0; i < allGroups.length; i++) {
-                    if (!set.contains(allGroups[i]) && allGroups[i].matches(this)) {
-                        set.add(allGroups[i]);
+                for (int i = 0; i < groups.length; i++) {
+                    if (groups[i].matches(this)) {
+                        ruleGroups.add(groups[i]);
                     }
                 }
-                groups = (Group[]) set.toArray(new Group[set.size()]);
             } catch (AccessControlException e) {
                 throw new RuntimeException(e);
             }
         }
-        return groups;
+        return (Group[]) ruleGroups.toArray(new Group[ruleGroups.size()]);
     }
 
 }

Modified: lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/ac/impl/TransientUser.java
URL: http://svn.apache.org/viewvc/lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/ac/impl/TransientUser.java?rev=604231&r1=604230&r2=604231&view=diff
==============================================================================
--- lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/ac/impl/TransientUser.java (original)
+++ lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/ac/impl/TransientUser.java Fri Dec 14 09:04:02 2007
@@ -18,10 +18,14 @@
 package org.apache.lenya.ac.impl;
 
 import java.io.File;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.Set;
 
 import org.apache.avalon.framework.configuration.Configuration;
 import org.apache.avalon.framework.configuration.ConfigurationException;
 import org.apache.lenya.ac.AccessControlException;
+import org.apache.lenya.ac.Accreditable;
 import org.apache.lenya.ac.Group;
 import org.apache.lenya.ac.ItemManager;
 
@@ -86,6 +90,19 @@
 
     public void removedFromGroup(Group group) {
         throw new UnsupportedOperationException();
+    }
+
+    public Accreditable[] getAccreditables() {
+        Set accrs = new HashSet();
+        accrs.add(this);
+
+        Group[] groups = getRuleGroups();
+        for (int i = 0; i < groups.length; i++) {
+            Accreditable[] groupAccreditables = groups[i].getAccreditables();
+            accrs.addAll(Arrays.asList(groupAccreditables));
+        }
+
+        return (Accreditable[]) accrs.toArray(new Accreditable[accrs.size()]);
     }
 
 }

Modified: lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/ac/shibboleth/ShibbolethAuthenticator.java
URL: http://svn.apache.org/viewvc/lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/ac/shibboleth/ShibbolethAuthenticator.java?rev=604231&r1=604230&r2=604231&view=diff
==============================================================================
--- lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/ac/shibboleth/ShibbolethAuthenticator.java (original)
+++ lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/lenya/ac/shibboleth/ShibbolethAuthenticator.java Fri Dec 14 09:04:02 2007
@@ -130,7 +130,7 @@
             if (uniqueId == null) {
                 issueError(handler, ERROR_MISSING_UID_ATTRIBUTE);
             } else {
-                if (accreditableManager.getUserManager().getUser(uniqueId) != null) {
+                if (accreditableManager.getUserManager().contains(uniqueId)) {
                     getLogger().error(
                             "Persistent user with ID [" + uniqueId
                                     + "] exists, can't create transient user.");
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.