]> git.argeo.org Git - lgpl/argeo-commons.git/blobdiff - server/runtime/org.argeo.server.jcr/src/main/java/org/argeo/jcr/security/JcrAuthorizations.java
Update license headers
[lgpl/argeo-commons.git] / server / runtime / org.argeo.server.jcr / src / main / java / org / argeo / jcr / security / JcrAuthorizations.java
index f6741624c007c0a59f304b6a9cb1cef6e9ff63d7..c4144b2bdded17945a755c4a385b0bf00e7a0669 100644 (file)
@@ -1,3 +1,18 @@
+/*
+ * Copyright (C) 2007-2012 Mathieu Baudier
+ *
+ * Licensed 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.argeo.jcr.security;
 
 import java.security.Principal;
@@ -26,6 +41,7 @@ public class JcrAuthorizations implements Runnable {
        private final static Log log = LogFactory.getLog(JcrAuthorizations.class);
 
        private Repository repository;
+       private String workspace = null;
 
        /**
         * key := privilege1,privilege2/path/to/node<br/>
@@ -36,7 +52,7 @@ public class JcrAuthorizations implements Runnable {
        public void run() {
                Session session = null;
                try {
-                       session = repository.login();
+                       session = repository.login(workspace);
                        initAuthorizations(session);
                } catch (Exception e) {
                        JcrUtils.discardQuietly(session);
@@ -120,12 +136,23 @@ public class JcrAuthorizations implements Runnable {
                        acl.addAccessControlEntry(principal,
                                        privs.toArray(new Privilege[privs.size()]));
                        acm.setPolicy(path, acl);
-                       if (log.isDebugEnabled())
-                               log.debug("Added privileges " + privs + " to " + principal
-                                               + " on " + path);
+                       if (log.isDebugEnabled()) {
+                               StringBuffer buf = new StringBuffer("");
+                               for (int i = 0; i < privs.size(); i++) {
+                                       if (i != 0)
+                                               buf.append(',');
+                                       buf.append(privs.get(i).getName());
+                               }
+                               log.debug("Added privilege(s) '" + buf + "' to '"
+                                               + principal.getName() + "' on " + path
+                                               + " from workspace '"
+                                               + session.getWorkspace().getName() + "'");
+                       }
                } else {
                        throw new ArgeoException("Don't know how to apply  privileges "
-                                       + privs + " to " + principal + " on " + path);
+                                       + privs + " to " + principal + " on " + path
+                                       + " from workspace '" + session.getWorkspace().getName()
+                                       + "'");
                }
        }
 
@@ -142,4 +169,8 @@ public class JcrAuthorizations implements Runnable {
                this.repository = repository;
        }
 
+       public void setWorkspace(String workspace) {
+               this.workspace = workspace;
+       }
+
 }