You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by jv...@apache.org on 2009/07/01 19:41:52 UTC

svn commit: r790290 - in /sling/trunk: bundles/jcr/jackrabbit-server/src/main/java/org/apache/sling/jcr/jackrabbit/server/impl/security/ bundles/jcr/jackrabbit-server/src/main/java/org/apache/sling/jcr/jackrabbit/server/security/ bundles/jcr/jackrabbit...

Author: jvazquez
Date: Wed Jul  1 17:41:52 2009
New Revision: 790290

URL: http://svn.apache.org/viewvc?rev=790290&view=rev
Log:
SLING-1028: Additional principals support in LoginModulePlugin

Modified:
    sling/trunk/bundles/jcr/jackrabbit-server/src/main/java/org/apache/sling/jcr/jackrabbit/server/impl/security/PluggableDefaultLoginModule.java
    sling/trunk/bundles/jcr/jackrabbit-server/src/main/java/org/apache/sling/jcr/jackrabbit/server/security/LoginModulePlugin.java
    sling/trunk/bundles/jcr/jackrabbit-server/src/main/resources/repository.xml
    sling/trunk/launchpad/bundles/pom.xml

Modified: sling/trunk/bundles/jcr/jackrabbit-server/src/main/java/org/apache/sling/jcr/jackrabbit/server/impl/security/PluggableDefaultLoginModule.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/jackrabbit-server/src/main/java/org/apache/sling/jcr/jackrabbit/server/impl/security/PluggableDefaultLoginModule.java?rev=790290&r1=790289&r2=790290&view=diff
==============================================================================
--- sling/trunk/bundles/jcr/jackrabbit-server/src/main/java/org/apache/sling/jcr/jackrabbit/server/impl/security/PluggableDefaultLoginModule.java (original)
+++ sling/trunk/bundles/jcr/jackrabbit-server/src/main/java/org/apache/sling/jcr/jackrabbit/server/impl/security/PluggableDefaultLoginModule.java Wed Jul  1 17:41:52 2009
@@ -18,6 +18,7 @@
 
 import java.security.Principal;
 import java.util.Map;
+import java.util.Set;
 
 import javax.jcr.Credentials;
 import javax.jcr.RepositoryException;
@@ -31,8 +32,6 @@
 import org.apache.sling.jcr.jackrabbit.server.impl.Activator;
 import org.apache.sling.jcr.jackrabbit.server.security.AuthenticationPlugin;
 import org.apache.sling.jcr.jackrabbit.server.security.LoginModulePlugin;
-import org.osgi.framework.ServiceReference;
-import org.osgi.util.tracker.ServiceTracker;
 
 /**
  * Extends
@@ -47,6 +46,7 @@
     /**
      * @see org.apache.jackrabbit.core.security.authentication.DefaultLoginModule#doInit
      */
+    @SuppressWarnings("unchecked")
     protected void doInit(CallbackHandler callbackHandler, Session session,
             Map options) throws LoginException {
         LoginModulePlugin[] modules = Activator.getLoginModules();
@@ -73,6 +73,20 @@
 
         return super.getPrincipal(creds);
     }
+    
+    /**
+     * @see org.apache.jackrabbit.core.security.authentication.AbstractLoginModule#getPrincipals
+     */
+    @SuppressWarnings("unchecked")
+    @Override
+    protected Set getPrincipals() {
+        Set principals = super.getPrincipals();
+        LoginModulePlugin[] modules = Activator.getLoginModules();
+        for (int i = 0; i < modules.length; i++) {
+            modules[i].addPrincipals(principals);
+        }
+        return principals;
+    }
 
     /**
      * @see org.apache.jackrabbit.core.security.authentication.DefaultLoginModule#getAuthentication

Modified: sling/trunk/bundles/jcr/jackrabbit-server/src/main/java/org/apache/sling/jcr/jackrabbit/server/security/LoginModulePlugin.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/jackrabbit-server/src/main/java/org/apache/sling/jcr/jackrabbit/server/security/LoginModulePlugin.java?rev=790290&r1=790289&r2=790290&view=diff
==============================================================================
--- sling/trunk/bundles/jcr/jackrabbit-server/src/main/java/org/apache/sling/jcr/jackrabbit/server/security/LoginModulePlugin.java (original)
+++ sling/trunk/bundles/jcr/jackrabbit-server/src/main/java/org/apache/sling/jcr/jackrabbit/server/security/LoginModulePlugin.java Wed Jul  1 17:41:52 2009
@@ -18,10 +18,12 @@
 
 import java.security.Principal;
 import java.util.Map;
+import java.util.Set;
 
 import javax.jcr.Credentials;
 import javax.jcr.RepositoryException;
 import javax.jcr.Session;
+import javax.security.auth.Subject;
 import javax.security.auth.callback.CallbackHandler;
 import javax.security.auth.login.FailedLoginException;
 import javax.security.auth.login.LoginException;
@@ -56,6 +58,7 @@
     /**
      * @see org.apache.jackrabbit.core.security.authentication.DefaultLoginModule#doInit
      */
+    @SuppressWarnings("unchecked")
     public void doInit(CallbackHandler callbackHandler, Session session,
             Map options) throws LoginException;
 
@@ -69,7 +72,16 @@
      * @see org.apache.jackrabbit.core.security.authentication.DefaultLoginModule#getPrincipal
      */
     public Principal getPrincipal(Credentials credentials);
-
+    
+    /**
+     * Enables to add additional {@link Principal} objects, such as groups or 
+     * roles, to the {@link Subject}. 
+     * 
+     * @param principals original collection of principals
+     */
+    @SuppressWarnings("unchecked")
+    public void addPrincipals(Set principals);
+    
     /**
      * Return a PluggableAuthentication object that can authenticate the give
      * Principal and Credentials. If null is returned, and no other

Modified: sling/trunk/bundles/jcr/jackrabbit-server/src/main/resources/repository.xml
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/jackrabbit-server/src/main/resources/repository.xml?rev=790290&r1=790289&r2=790290&view=diff
==============================================================================
--- sling/trunk/bundles/jcr/jackrabbit-server/src/main/resources/repository.xml (original)
+++ sling/trunk/bundles/jcr/jackrabbit-server/src/main/resources/repository.xml Wed Jul  1 17:41:52 2009
@@ -28,7 +28,7 @@
         <SecurityManager class="org.apache.jackrabbit.core.DefaultSecurityManager" workspaceName="security">
         </SecurityManager>
 
-        <AccessManager class="org.apache.jackrabbit.core.security.DefaultAccessManager">
+        <AccessManager class="org.apache.sling.jcr.jackrabbit.server.impl.security.PluggableDefaultAccessManager">
         </AccessManager>
 
         <LoginModule class="org.apache.sling.jcr.jackrabbit.server.impl.security.PluggableDefaultLoginModule">

Modified: sling/trunk/launchpad/bundles/pom.xml
URL: http://svn.apache.org/viewvc/sling/trunk/launchpad/bundles/pom.xml?rev=790290&r1=790289&r2=790290&view=diff
==============================================================================
--- sling/trunk/launchpad/bundles/pom.xml (original)
+++ sling/trunk/launchpad/bundles/pom.xml Wed Jul  1 17:41:52 2009
@@ -153,7 +153,7 @@
         <dependency>
             <groupId>org.apache.sling</groupId>
             <artifactId>org.apache.sling.jcr.jackrabbit.server</artifactId>
-            <version>2.0.4-incubator</version>
+            <version>2.0.5-SNAPSHOT</version>
             <scope>provided</scope>
         </dependency>
         <dependency>