Hello all,
I'm trying to get Fedora (SVN trunk revision 8643) to accept file:// URLs as 
part of an ingest, and am running into odd problems.

The error I get is this:

> # fedora-ingest.sh f ~/filetemp.xml info:fedora/fedora-system:FOXML-1.1 
> localhost:8080 fedoraAdmin [my password here] http
> Error  : org.fcrepo.server.errors.HttpServiceNotFoundException: 
> [DefaultExternalContentManager] returned an error.  The underlying error was 
> a org.fcrepo.server.errors.HttpServiceNotFoundException  The message was  
> "[FileExternalContentManager] returned an error.  The underlying error was a 
> java.lang.IllegalArgumentException  The message was  "URI has an authority 
> component"  .  "  .

The relevant part of my FoXML looks like this:

> <foxml:datastream CONTROL_GROUP="M" ID="AUDIODOWNLOAD" STATE="A" 
> VERSIONABLE="true">
>                                 <foxml:datastreamVersion LABEL="MP3" 
> ID="AUDIODOWNLOAD.0" MIMETYPE="audio/mpeg" SIZE="0">
>                                         <foxml:contentDigest TYPE="SHA-512"/>
>                                         <foxml:contentLocation 
> REF="file://myfilesystem/something.mp3" TYPE="URL" />
>                                 </foxml:datastreamVersion>
>                         </foxml:datastream>


I have modified the XACML policy deny-unallowed-file-resolution.xml as 
suggested in its internal notes and at [1]. It's copied in at the bottom of the 
email, along with a diff comparing my version to the distribution version. I 
did wonder if perhaps the regex contained a typo of a missing slash ( ^file:/ 
as opposed to ^file:// ), but I've tried it with and without the slash to no 
avail.

Fedora has the appropriate privileges to access the filesystem. The full 
file:// URLs used in the ingest don't involve symlinks, and I've been 
restarting Tomcat in between attempts. I'm running Fedora on Debian Lenny with 
the Sun JDK 1.6.0_12.

I'd appreciate any pointers on how to overcome this issue, as it'd speed up my 
ingest considerably.

Regards,

Graeme


Graeme West
Digital Repository Developer
Information Services
Glasgow Caledonian University
[email protected]

[1] 
http://fedora-commons.org/confluence/display/FCR30/Ingest+with+the+file+URI+scheme


deny-unallowed-file-resolution.xml:

> <?xml version="1.0" encoding="UTF-8"?>
> <Policy xmlns="urn:oasis:names:tc:xacml:1.0:policy"
>         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
>         PolicyId="deny-file-resolve-if-not-allowed-dir"
>         
> RuleCombiningAlgId="urn:oasis:names:tc:xacml:1.0:rule-combining-algorithm:first-applicable">
>   <Description>deny any file datastream resolution if not in allowed file 
> patterns</Description>
>   <Target>
>     <Subjects>
>         <AnySubject/>
>     </Subjects>
>     <Resources>
>       <AnyResource/>
>     </Resources>
>     <Actions>
>       <Action>
>         <ActionMatch 
> MatchId="urn:oasis:names:tc:xacml:1.0:function:string-equal">
>           <AttributeValue 
> DataType="http://www.w3.org/2001/XMLSchema#string";>urn:fedora:names:fedora:2.1:action:id-retrieveFile</AttributeValue>
>           <ActionAttributeDesignator 
> DataType="http://www.w3.org/2001/XMLSchema#string"; 
> AttributeId="urn:fedora:names:fedora:2.1:action:id"/>
>         </ActionMatch>
>       </Action>
>     </Actions>
>   </Target>
>   <!-- uncomment (and change the deny rule id) if access via the file 
> protocol is desired.
>    The regular expression determines the locations and files allowed for 
> retrieval; it must match the canonical file URI for a resource.
>    Restricting access to administrators will allow datastreams in control 
> group 'M' to be ingested from the file system.
>    Restricting access by URI only will allow datastreams in control group 'E' 
> to be located on the file system.
>   -->
>
>   <Rule RuleId="1" Effect="Permit">
>     <Condition FunctionId="urn:oasis:names:tc:xacml:1.0:function:and">
>       <Apply 
> FunctionId="urn:oasis:names:tc:xacml:1.0:function:regexp-string-match">
>         <AttributeValue 
> DataType="http://www.w3.org/2001/XMLSchema#string";>^file://myfilesystem/*$</AttributeValue>
>         <Apply 
> FunctionId="urn:oasis:names:tc:xacml:1.0:function:string-one-and-only">
>           <ResourceAttributeDesignator 
> AttributeId="urn:fedora:names:fedora:2.1:resource:datastream:fileUri"
>             DataType="http://www.w3.org/2001/XMLSchema#string"/>
>         </Apply>
>       </Apply>
>       <Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:string-is-in">
>         <AttributeValue 
> DataType="http://www.w3.org/2001/XMLSchema#string";>administrator</AttributeValue>
>         <SubjectAttributeDesignator AttributeId="fedoraRole" 
> DataType="http://www.w3.org/2001/XMLSchema#string"/>
>       </Apply>
>     </Condition>
>   </Rule>
>
>   <Rule RuleId="2" Effect="Deny">
>   </Rule>
> </Policy>

Diff from distribution version of deny-unallowed-file-resolution.xml:

28c28
<
---
> <!--
32c32
<         <AttributeValue 
DataType="http://www.w3.org/2001/XMLSchema#string";>^file://ouachita/*$</AttributeValue>
---
>         <AttributeValue 
> DataType="http://www.w3.org/2001/XMLSchema#string";>^file:/allowed/.*$</AttributeValue>
41c41
<       </Apply>
---
>       </Apply>
44,45c44,45
<
<   <Rule RuleId="2" Effect="Deny">
---
>   -->
>   <Rule RuleId="1" Effect="Deny">

Glasgow Caledonian University is a registered Scottish charity, number SC021474

Winner: Times Higher Education's Widening Participation Initiative of the Year 
2009 and Herald Society's Education Initiative of the Year 2009
http://www.gcu.ac.uk/newsevents/news/bycategory/theuniversity/1/name,6219,en.html

------------------------------------------------------------------------------
ThinkGeek and WIRED's GeekDad team up for the Ultimate 
GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the 
lucky parental unit.  See the prize list and enter to win: 
http://p.sf.net/sfu/thinkgeek-promo
_______________________________________________
Fedora-commons-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/fedora-commons-users

Reply via email to