Author: tolusha
Date: 2010-11-23 04:06:20 -0500 (Tue, 23 Nov 2010)
New Revision: 3517
Modified:
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/BackupWorkspaceInitializer.java
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/FilePersistedValueData.java
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/util/jdbc/cleaner/DBCleanerService.java
Log:
EXOJCR-852: wrap file operation in privileged block
Modified:
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/BackupWorkspaceInitializer.java
===================================================================
---
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/BackupWorkspaceInitializer.java 2010-11-23
09:02:57 UTC (rev 3516)
+++
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/BackupWorkspaceInitializer.java 2010-11-23
09:06:20 UTC (rev 3517)
@@ -290,9 +290,13 @@
File rDir = new File(restoreDir);
Pattern fullBackupPattern = Pattern.compile(".+\\.0");
- for (File f : rDir.listFiles(new BackupFilesFilter()))
+ for (File f : PrivilegedFileHelper.listFiles(rDir, new BackupFilesFilter()))
+ {
if (fullBackupPattern.matcher(f.getName()).matches() == false)
+ {
list.add(f);
+ }
+ }
return list;
}
@@ -312,11 +316,13 @@
File rDir = new File(restoreDir);
Pattern p = Pattern.compile(".+\\.0");
- for (File f : rDir.listFiles(new BackupFilesFilter()))
+ for (File f : PrivilegedFileHelper.listFiles(rDir, new BackupFilesFilter()))
{
Matcher m = p.matcher(f.getName());
if (m.matches())
+ {
return PrivilegedFileHelper.getAbsolutePath(f);
+ }
}
return null;
Modified:
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/FilePersistedValueData.java
===================================================================
---
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/FilePersistedValueData.java 2010-11-23
09:02:57 UTC (rev 3516)
+++
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/FilePersistedValueData.java 2010-11-23
09:06:20 UTC (rev 3517)
@@ -264,7 +264,7 @@
if (file != null)
{
// TODO for tests byte[] buf = file.getPath().getBytes("UTF-8");
- byte[] buf = file.getCanonicalPath().getBytes("UTF-8");
+ byte[] buf =
PrivilegedFileHelper.getCanonicalPath(file).getBytes("UTF-8");
out.writeInt(buf.length);
out.write(buf);
}
Modified:
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/util/jdbc/cleaner/DBCleanerService.java
===================================================================
---
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/util/jdbc/cleaner/DBCleanerService.java 2010-11-23
09:02:57 UTC (rev 3516)
+++
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/util/jdbc/cleaner/DBCleanerService.java 2010-11-23
09:06:20 UTC (rev 3517)
@@ -16,6 +16,7 @@
*/
package org.exoplatform.services.jcr.impl.util.jdbc.cleaner;
+import org.exoplatform.commons.utils.SecurityHelper;
import org.exoplatform.services.jcr.config.RepositoryConfigurationException;
import org.exoplatform.services.jcr.config.RepositoryEntry;
import org.exoplatform.services.jcr.config.WorkspaceEntry;
@@ -25,6 +26,7 @@
import org.exoplatform.services.log.ExoLogger;
import org.exoplatform.services.log.Log;
+import java.security.PrivilegedExceptionAction;
import java.sql.Connection;
import java.sql.SQLException;
@@ -101,7 +103,14 @@
Connection conn = null;
try
{
- conn = ds.getConnection();
+ final DataSource fds = ds;
+ conn = SecurityHelper.doPriviledgedSQLExceptionAction(new
PrivilegedExceptionAction<Connection>()
+ {
+ public Connection run() throws Exception
+ {
+ return fds.getConnection();
+ }
+ });
}
catch (SQLException e)
{
Show replies by date