[
https://issues.apache.org/jira/browse/DERBY-2556?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12494696
]
Kristian Waagan commented on DERBY-2556:
----------------------------------------
There is at least a problem in the following code in BaseDataFileFactory. Not
sure how to interpret the comment, but I think adding more doPrivileged-blocks
is the right approach. Any comments on this?
private void restoreDataDirectory(String backupPath)
throws StandardException
{
File bsegdir; //segment directory in the backup
File backupRoot = new java.io.File(backupPath); //root dir of backup db
/* To be safe we first check if the backup directory exist and it has
* atleast one seg* directory before removing the current data
directory.
*
* This will fail with a security exception unless the database engine
* and all its callers have permission to read the backup directory.
*/
String[] bfilelist = backupRoot.list();
if(bfilelist !=null)
{
boolean segmentexist = false;
for (int i = 0; i < bfilelist.length; i++)
{
//check if it is a seg* directory
if(bfilelist[i].startsWith("seg"))
{
bsegdir = new File(backupRoot , bfilelist[i]);
if(bsegdir.exists() && bsegdir.isDirectory())
{
segmentexist = true;
break;
}
}
}
> Code paths for db restore do not use doPrivileged-calls, causing
> SecurityException
> ----------------------------------------------------------------------------------
>
> Key: DERBY-2556
> URL: https://issues.apache.org/jira/browse/DERBY-2556
> Project: Derby
> Issue Type: Bug
> Components: Services
> Affects Versions: 10.2.2.0, 10.3.0.0
> Environment: Derby running with a security manager.
> Reporter: Kristian Waagan
> Assigned To: Kathey Marsden
> Fix For: 10.3.0.0
>
> Attachments: derby-2556_diff.txt, derby-2556_stat.txt
>
>
> When using 'createFrom' or 'restoreFrom' in the JDBC url to restore a
> database from a backup image, a SecurityException is thrown even though the
> policyfile for codebase derby.jar is correctly configured (giving Derby
> access to the backup image).
> A few comments on this issue can be found here (and in subsequent comments):
> https://issues.apache.org/jira/browse/DERBY-1001#action_12439811
> A workaround is wrapping the connection call in doPrivileged at the
> "application-level code", or granting the required permissions to the
> application codebase as well.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.