You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by fm...@apache.org on 2008/11/11 16:21:58 UTC

svn commit: r713058 - in /incubator/sling/trunk/engine/src/main/java/org/apache/sling/engine: auth/AuthenticationInfo.java impl/auth/SlingAuthenticator.java

Author: fmeschbe
Date: Tue Nov 11 07:21:57 2008
New Revision: 713058

URL: http://svn.apache.org/viewvc?rev=713058&view=rev
Log:
SLING-727 Add support for bearing the workspace name in the AuthenticationInfo
for use by the SlingAuthenticator to acquire the session

Modified:
    incubator/sling/trunk/engine/src/main/java/org/apache/sling/engine/auth/AuthenticationInfo.java
    incubator/sling/trunk/engine/src/main/java/org/apache/sling/engine/impl/auth/SlingAuthenticator.java

Modified: incubator/sling/trunk/engine/src/main/java/org/apache/sling/engine/auth/AuthenticationInfo.java
URL: http://svn.apache.org/viewvc/incubator/sling/trunk/engine/src/main/java/org/apache/sling/engine/auth/AuthenticationInfo.java?rev=713058&r1=713057&r2=713058&view=diff
==============================================================================
--- incubator/sling/trunk/engine/src/main/java/org/apache/sling/engine/auth/AuthenticationInfo.java (original)
+++ incubator/sling/trunk/engine/src/main/java/org/apache/sling/engine/auth/AuthenticationInfo.java Tue Nov 11 07:21:57 2008
@@ -40,24 +40,48 @@
     /** The <code>javax.jcr.Credentials</code> extracted from the request */
     private final Credentials credentials;
 
+    /**
+     * The name of the workspace this user is wishing to login,
+     * <code>null</code> means the default workspace.
+     */
+    private final String workspaceName;
+
     /** Creates an empty instance, used for the {@link #DOING_AUTH} constants */
     private AuthenticationInfo() {
-        authType = null;
-        credentials = null;
+        this(null, null, null);
     }
 
     /**
      * Creates an instance of this class with the given authentication type and
-     * credentials.
-     *
+     * credentials connecting to the default workspace as if the
+     * {@link #AuthenticationInfo(String, Credentials, String)} method would be
+     * called with a <code>null</code> workspace name.
+     * 
      * @param authType The authentication type, must not be <code>null</code>.
      * @param credentials The credentials, must not be <code>null</code>.
      * @see #getAuthType()
      * @see #getCredentials()
      */
     public AuthenticationInfo(String authType, Credentials credentials) {
+        this(authType, credentials, null);
+    }
+
+    /**
+     * Creates an instance of this class with the given authentication type and
+     * credentials.
+     * 
+     * @param authType The authentication type, must not be <code>null</code>.
+     * @param credentials The credentials, must not be <code>null</code>.
+     * @param workspaceName The name of the workspace to connect to, may be
+     *            <code>null</code> to connect to the default workspace.
+     * @see #getAuthType()
+     * @see #getCredentials()
+     */
+    public AuthenticationInfo(String authType, Credentials credentials,
+            String workspaceName) {
         this.authType = authType;
         this.credentials = credentials;
+        this.workspaceName = workspaceName;
     }
 
     /**
@@ -80,4 +104,12 @@
         return credentials;
     }
 
+    /**
+     * Returns the name of the workspace the user contained in this instance
+     * wishes to connect to. This may be <code>null</code>, in which case the
+     * user is connected to the default workspace.
+     */
+    public String getWorkspaceName() {
+        return workspaceName;
+    }
 }

Modified: incubator/sling/trunk/engine/src/main/java/org/apache/sling/engine/impl/auth/SlingAuthenticator.java
URL: http://svn.apache.org/viewvc/incubator/sling/trunk/engine/src/main/java/org/apache/sling/engine/impl/auth/SlingAuthenticator.java?rev=713058&r1=713057&r2=713058&view=diff
==============================================================================
--- incubator/sling/trunk/engine/src/main/java/org/apache/sling/engine/impl/auth/SlingAuthenticator.java (original)
+++ incubator/sling/trunk/engine/src/main/java/org/apache/sling/engine/impl/auth/SlingAuthenticator.java Tue Nov 11 07:21:57 2008
@@ -217,7 +217,7 @@
             try {
                 log.debug("authenticate: credentials, trying to get a session");
                 Session session = getRepository().login(
-                    authInfo.getCredentials(), null);
+                    authInfo.getCredentials(), authInfo.getWorkspaceName());
 
                 // handle impersonation
                 session = handleImpersonation(req, res, session);