Commit by: bcm
Modified files:
server/core/src/org/osaf/cosmo/security/CosmoJCRCredentialsProvider.java 1.1 1.2
server/core/src/org/osaf/jcr/jackrabbit/JackrabbitRepositoryFactory.java 1.1 1.2
server/docs/TODO.txt 1.18 1.19

Log message:
CosmoJCRCredentialsProvider fills out username and password in the
SimpleCredentials it provides for repository login. add some javadoc
explaining precisely what is supported by this credentials provider and what
is not.


ViewCVS links:
http://cvs.osafoundation.org/index.cgi/server/core/src/org/osaf/cosmo/security/CosmoJCRCredentialsProvider.java.diff?r1=text&tr1=1.1&r2=text&tr2=1.2
http://cvs.osafoundation.org/index.cgi/server/core/src/org/osaf/jcr/jackrabbit/JackrabbitRepositoryFactory.java.diff?r1=text&tr1=1.1&r2=text&tr2=1.2
http://cvs.osafoundation.org/index.cgi/server/docs/TODO.txt.diff?r1=text&tr1=1.18&r2=text&tr2=1.19

Index: server/core/src/org/osaf/cosmo/security/CosmoJCRCredentialsProvider.java
diff -u 
server/core/src/org/osaf/cosmo/security/CosmoJCRCredentialsProvider.java:1.1 
server/core/src/org/osaf/cosmo/security/CosmoJCRCredentialsProvider.java:1.2
--- 
server/core/src/org/osaf/cosmo/security/CosmoJCRCredentialsProvider.java:1.1    
    Fri Mar 18 15:50:45 2005
+++ server/core/src/org/osaf/cosmo/security/CosmoJCRCredentialsProvider.java    
Mon Mar 21 10:56:48 2005
@@ -43,7 +43,18 @@
      * Uses [EMAIL PROTECTED] ContextHolder} to find a [EMAIL PROTECTED] 
SecureContext}
      * previously set up by the Acegi Security filters and returns
      * the contained credentials packaged into an instance of
-     * [EMAIL PROTECTED] SimpleCredentials}.
+     * [EMAIL PROTECTED] Credentials}.
+     *
+     * This implementation uses the authenticated principal's
+     * username and encoded password to establish an instance of
+     * [EMAIL PROTECTED] SimpleCredentials}. There is currently no support for
+     * anonymous or ticket-based credentials.
+     *
+     * Jackrabbit 0.16.2 ships with a JAAS LoginModule that does not
+     * authenticate the passed in credentials (which be redundant
+     * with Acegi Security's authentication anyway). A custom
+     * LoginModule may need to be provided for future versions of
+     * Jackrabbit and/or other JCR vendors.
      *
      * @param request
      * @returns the [EMAIL PROTECTED] Credentials} representing the
@@ -55,12 +66,14 @@
      */
     public Credentials extractCredentials(ServletRequest request)
         throws ServletException {
+        // use the authenticated principal's username and encoded
+        // password.
+        // as the current (0.16.2) version of Jackrabbit
+        // does not implement 
         SecureContext sc = (SecureContext) ContextHolder.getContext();
         Authentication authen = sc.getAuthentication();
-        log.debug("authen: " + authen);
-        // XXX
-        Credentials credentials =
-            new SimpleCredentials("anonymous", "anonymous".toCharArray());
-        return credentials;
+        CosmoUser user = (CosmoUser) authen.getPrincipal();
+        return new SimpleCredentials(user.getUsername(),
+                                     user.getPassword().toCharArray());
     }
 }

Index: server/core/src/org/osaf/jcr/jackrabbit/JackrabbitRepositoryFactory.java
diff -u 
server/core/src/org/osaf/jcr/jackrabbit/JackrabbitRepositoryFactory.java:1.1 
server/core/src/org/osaf/jcr/jackrabbit/JackrabbitRepositoryFactory.java:1.2
--- 
server/core/src/org/osaf/jcr/jackrabbit/JackrabbitRepositoryFactory.java:1.1    
    Fri Mar 18 15:50:46 2005
+++ server/core/src/org/osaf/jcr/jackrabbit/JackrabbitRepositoryFactory.java    
Mon Mar 21 10:56:48 2005
@@ -49,15 +49,17 @@
                                     Hashtable environment)
         throws NamingException {
         if (repository == null) {
-            if (log.isDebugEnabled()) {
-                log.error("creating repository");
-            }
             try {
                 Reference ref = (Reference) obj;
                 String configFilePath =
                     (String) ref.get(CONFIGFILEPATH_ADDRTYPE).getContent();
                 String repHomeDir =
                     (String) ref.get(REPHOMEDIR_ADDRTYPE).getContent();
+
+                if (log.isDebugEnabled()) {
+                    log.debug("loading repository at " + repHomeDir +
+                              " with config " + configFilePath);
+                }
                 RepositoryConfig config =
                     RepositoryConfig.create(configFilePath, repHomeDir);
                 repository = RepositoryImpl.create(config);

Index: server/docs/TODO.txt
diff -u server/docs/TODO.txt:1.18 server/docs/TODO.txt:1.19
--- server/docs/TODO.txt:1.18   Fri Mar 18 16:06:39 2005
+++ server/docs/TODO.txt        Mon Mar 21 10:56:48 2005
@@ -12,7 +12,6 @@
 
 core:
 
- * in credentials provider, fill out username and password
  * switch to using JCR for homedirs
  * rename HomeDAO to ContentStoreDAO
  * plan for ticket credentials

_______________________________________________
Commits mailing list
Commits@osafoundation.org
http://lists.osafoundation.org/mailman/listinfo/commits

Reply via email to