+/*
+ * 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;
private final static Log log = LogFactory.getLog(JcrAuthorizations.class);
private Repository repository;
+ private String workspace = null;
/**
* key := privilege1,privilege2/path/to/node<br/>
public void run() {
Session session = null;
try {
- session = repository.login();
+ session = repository.login(workspace);
initAuthorizations(session);
} catch (Exception e) {
JcrUtils.discardQuietly(session);
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()
+ + "'");
}
}
this.repository = repository;
}
+ public void setWorkspace(String workspace) {
+ this.workspace = workspace;
+ }
+
}