@Scott: I can't afford to have this datastream managed by Fedora, because it's several megabytes large and there are over a million of them.
@Rich: the http://user@pass:/resource syntax works with cURL too, that's why I gave it a shot even though I don't know what Fedora actually uses to connect to remote servers. Your source link is very interesting though. I'll give it a look. I wonder how this hasn't been brought up before. Accessing resources through authentication seems like quite a common task to me, and I hoped I could do it without hacking the Fedora code. Thanks sc Stefano Cossu Director of Application Services, Collections The Art Institute of Chicago 116 S. Michigan Ave. Chicago, IL 60603 312-499-4026 On 5/9/13 3:45 PM, [email protected] wrote: > Send Fedora-commons-users mailing list submissions to > [email protected] > > To subscribe or unsubscribe via the World Wide Web, visit > https://lists.sourceforge.net/lists/listinfo/fedora-commons-users > or, via email, send a message with subject or body 'help' to > [email protected] > > You can reach the person managing the list at > [email protected] > > When replying, please edit your Subject line so it is more specific > than "Re: Contents of Fedora-commons-users digest..." > > > Today's Topics: > > 1. Re: [NEWBIE] Accessing external resource with HTTP > authentication (Benjamin Armintor) > > > ---------------------------------------------------------------------- > > Message: 1 > Date: Thu, 9 May 2013 16:45:16 -0400 > From: Benjamin Armintor <[email protected]> > Subject: Re: [fcrepo-user] [NEWBIE] Accessing external resource with > HTTP authentication > To: "Support and info exchange list for Fedora users." > <[email protected]> > Message-ID: > <cadqq8tpfxo8va7ub2ncb6xvbjzcbf1s7unu7hftcqhpntwb...@mail.gmail.com> > Content-Type: text/plain; charset="iso-8859-1" > > Yes, in that sense it would be straightforward- though this question of > where the credentials would be stored was one of things that derailed the > feature in the first place! > > > On Thu, May 9, 2013 at 4:40 PM, Rich d'Rich <[email protected]> wrote: > >> AFAIK the username:password@ syntax is a browser artefact that the Java >> HTTP access libraries (apache commons httpclient) that Fedora uses doesn't >> support. >> >> This also means that you can't do a server-server import where the source >> Fedora server requires authentication, and it causes problems with >> disseminators. >> >> However, looking at the code, most of the "wiring" is there: >> >> https://github.com/fcrepo/fcrepo/blob/master/fcrepo-server/src/main/java/org/fcrepo/server/access/DefaultAccess.java >> >> it just needs getDatastreamDissemination (around line 1145) to extract a >> username and password from somewhere and put it into ContentManagerParams. >> Ideally, there would be a configured table of known external servers and >> credentials that could be kept secure so passwords aren't bandied about. >> >> I may be wrong though and there's already a way to do this :-) >> >> >> On 10 May 2013 06:36, Scott Prater <[email protected]> wrote: >> >>> Stefano -- >>> >>> Are you ingesting the datastreams as managed datastreams, or as redirect >>> or external datastreams? >>> >>> If the former, once Fedora ingests the FOXML, the object is referred to >>> by its internal Fedora URI, and no source URLs or passwords are exposed >>> in any object export. >>> >>> If the datastreams are managed, then you may want to take a compromise >>> approach: fetch them to the local machine using curl or some such tool, >>> then ingest the local file. Once it's ingested, you can delete the >>> local file. >>> >>> Managed datastreams are usually preferred to external or redirect >>> datastreams; there are use cases for external and redirect datastreams >>> (which is why they exist), but the normal case is to store datastreams >>> as managed. >>> >>> -- Scott >>> >>> On 05/09/2013 01:08 PM, Benjamin Armintor wrote: >>>> Stefano- >>>> I remember some conversation a couple of years ago about supporting >>>> BASIC auth in services, but as far as I know they didn't go anywhere. >>>> Maybe another committer remembers something? In any case, I don't see >>>> why storing the credentials like that wouldn't work, if you can accept >>>> the plain-text issues you cite. >>>> >>>> As far as certs, Im afraid you're on your own. I will warn you that >>>> Java errs on the side of verification unless you instruct it not to, so >>>> invalid certs will cause other problems. >>>> >>>> - Ben >>>> >>>> >>>> On Thu, May 9, 2013 at 12:32 PM, Stefano Cossu <[email protected] >>>> <mailto:[email protected]>> wrote: >>>> >>>> Hi there, >>>> I'm starting to tinker with Fedora and trying to write a CMA >>> workflow. >>>> I'm building a digital object that should grab an image datastream >>> from >>>> an HTTPS server which requires basic authentication. >>>> I tried inserting the authentication data in the URL for the >>> datastream, >>>> but now I have 2 problems: >>>> 1) Username and password are stored in plain text in the FOXML, >>> visible >>>> by everyone who looks up that record in Fedora, as well as all over >>> the >>>> logs. >>>> 2) I still can't connect to the server this way. The server's >>>> certificate is expired, I don't know if that plays a role. >>>> >>>> Fedora throws this error: >>>> >>>> ERROR 2013-05-09 11:04:28.618 [http-8080-1] (BaseRestResource) >>>> Unexpected error fulfilling REST API request >>>> org.fcrepo.server.errors.HttpServiceNotFoundException: >>>> [DefaultExternalContentManager] returned an error. The underlying >>> error >>>> was a org.fcrepo.server.errors.GeneralException T >>>> he message was "Error getting >>>> https://username:password@imageserver/myHugePicture" . >>>> at >>>> >>> org.fcrepo.server.storage.DefaultExternalContentManager.getExternalContent(DefaultExternalContentManager.java:152) >>>> ~[fcrepo-server-3.6.2.jar:na] >>>> at >>>> >>> org.fcrepo.server.access.DefaultAccess.getDatastreamDissemination(DefaultAccess.java:1148) >>>> ~[fcrepo-server-3.6.2.jar:na] >>>> at >>>> >>> org.fcrepo.server.rest.DatastreamResource.getDatastream(DatastreamResource.java:247) >>>> ~[fcrepo-server-3.6.2.jar:na] >>>> [...] >>>> >>>> And the image server's Apache error log: >>>> >>>> Thu May 09 11:04:25 2013] [info] [client 10.80.25.47] Connection to >>>> child 0 established (server imageserver:443) >>>> [Thu May 09 11:04:25 2013] [info] Seeding PRNG with 144 bytes of >>> entropy >>>> [Thu May 09 11:04:25 2013] [info] [client 10.80.25.47] SSL library >>> error >>>> 1 in handshake (server imageserver:443) >>>> [Thu May 09 11:04:25 2013] [info] SSL Library Error: 336151608 >>>> error:14094438:SSL routines:SSL3_READ_BYTES:tlsv1 alert internal >>> error >>>> [Thu May 09 11:04:25 2013] [info] [client 10.80.25.47] Connection >>> closed >>>> to child 0 with abortive shutdown (server imageserver:443) >>>> [...] >>>> >>>> Of course, I can always use a redirect datastream and let the client >>>> deal with authentication and SSL, but I'd like to hide the source >>> URI if >>>> possible. >>>> >>>> >>>> Below is the FOXML representation of my object: >>>> >>>> <foxml:digitalObject VERSION="1.1" PID="test:dervPub_obj" >>>> xsi:schemaLocation="info:fedora/fedora-system:def/foxml# >>>> http://www.fedora.info/definitions/1/0/foxml1-1.xsd"> >>>> <foxml:objectProperties> >>>> <foxml:property >>>> NAME="info:fedora/fedora-system:def/model#state" VALUE="Active"/> >>>> <foxml:property >>>> NAME="info:fedora/fedora-system:def/model#label" VALUE="Disseminator >>>> object"/> >>>> <foxml:property >>>> NAME="info:fedora/fedora-system:def/model#ownerId" >>> VALUE="fedoraAdmin"/> >>>> <foxml:property >>>> NAME="info:fedora/fedora-system:def/model#createdDate" >>>> VALUE="2013-05-09T15:37:41.708Z"/> >>>> <foxml:property >>>> NAME="info:fedora/fedora-system:def/view#lastModifiedDate" >>>> VALUE="2013-05-09T15:37:41.892Z"/> >>>> </foxml:objectProperties> >>>> <foxml:datastream ID="AUDIT" STATE="A" CONTROL_GROUP="X" >>>> VERSIONABLE="false"> >>>> <foxml:datastreamVersion ID="AUDIT.0" LABEL="Audit Trail >>> for >>>> this object" CREATED="2013-05-09T15:37:41.708Z" MIMETYPE="text/xml" >>>> FORMAT_URI="info:fedora/fedora-system:format/xml.fedora.audit"> >>>> <foxml:xmlContent> >>>> <audit:auditTrail> >>>> <audit:record ID="AUDREC1"> >>>> <audit:process type="Fedora API-M"/> >>>> <audit:action>addDatastream</audit:action> >>>> <audit:componentID>SOURCE_IMG</audit:componentID> >>>> <audit:responsibility>fedoraAdmin</audit:responsibility> >>>> <audit:date>2013-05-09T15:37:41.892Z</audit:date> >>>> <audit:justification/> >>>> </audit:record> >>>> </audit:auditTrail> >>>> </foxml:xmlContent> >>>> </foxml:datastreamVersion> >>>> </foxml:datastream> >>>> <foxml:datastream ID="DC" STATE="A" CONTROL_GROUP="X" >>>> VERSIONABLE="true"> >>>> <foxml:datastreamVersion ID="DC1.0" LABEL="Dublin Core >>> Record >>>> for this object" CREATED="2013-05-09T15:37:41.708Z" >>> MIMETYPE="text/xml" >>>> FORMAT_URI="http://www.openarchives.org/OAI/2.0/oai_dc/" >>> SIZE="388"> >>>> <foxml:xmlContent> >>>> <oai_dc:dc >>>> xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/oai_dc/ >>>> http://www.openarchives.org/OAI/2.0/oai_dc.xsd"> >>>> <dc:title>Disseminator object</dc:title> >>>> <dc:identifier>test:dervPub_obj</dc:identifier> >>>> </oai_dc:dc> >>>> </foxml:xmlContent> >>>> </foxml:datastreamVersion> >>>> </foxml:datastream> >>>> <foxml:datastream ID="RELS-EXT" STATE="A" CONTROL_GROUP="X" >>>> VERSIONABLE="false"> >>>> <foxml:datastreamVersion ID="RELS-EXT.0" >>> LABEL="Relationships" >>>> CREATED="2013-05-09T15:37:41.837Z" MIMETYPE="application/rdf+xml" >>>> FORMAT_URI="info:fedora/fedora-system:FedoraRELSExt-1.0" SIZE="273"> >>>> <foxml:xmlContent> >>>> <rdf:RDF> >>>> <rdf:Description >>>> rdf:about="info:fedora/test:dervPub_obj"> >>>> <hasModel >>>> rdf:resource="info:fedora/test:dervPub_CModel"/> >>>> </rdf:Description> >>>> </rdf:RDF> >>>> </foxml:xmlContent> >>>> </foxml:datastreamVersion> >>>> </foxml:datastream> >>>> <foxml:datastream ID="SOURCE_IMG" STATE="A" CONTROL_GROUP="E" >>>> VERSIONABLE="true"> >>>> <foxml:datastreamVersion ID="SOURCE_IMG.0" LABEL="full >>> sized >>>> image" CREATED="2013-05-09T15:37:41.892Z" MIMETYPE="image/jpeg"> >>>> <foxml:contentLocation TYPE="URL" >>>> REF="https://username:password@imageserver/myHugePicture"/> >>>> </foxml:datastreamVersion> >>>> </foxml:datastream> >>>> >>>> I would really appreciate your help. >>>> >>>> >>>> >>>> >>> ------------------------------------------------------------------------------ >>>> Learn Graph Databases - Download FREE O'Reilly Book >>>> "Graph Databases" is the definitive new guide to graph databases and >>>> their applications. This 200-page book is written by three acclaimed >>>> leaders in the field. The early access version is available now. >>>> Download your free book today! http://p.sf.net/sfu/neotech_d2d_may >>>> _______________________________________________ >>>> Fedora-commons-users mailing list >>>> [email protected] >>>> <mailto:[email protected]> >>>> https://lists.sourceforge.net/lists/listinfo/fedora-commons-users >>>> >>>> >>>> >>>> >>>> >>> ------------------------------------------------------------------------------ >>>> Learn Graph Databases - Download FREE O'Reilly Book >>>> "Graph Databases" is the definitive new guide to graph databases and >>>> their applications. This 200-page book is written by three acclaimed >>>> leaders in the field. The early access version is available now. >>>> Download your free book today! http://p.sf.net/sfu/neotech_d2d_may >>>> >>>> >>>> >>>> _______________________________________________ >>>> Fedora-commons-users mailing list >>>> [email protected] >>>> https://lists.sourceforge.net/lists/listinfo/fedora-commons-users >>>> >>> >>> -- >>> Scott Prater >>> Shared Development Group >>> General Library System >>> University of Wisconsin - Madison >>> [email protected] >>> 5-5415 >>> >>> >>> ------------------------------------------------------------------------------ >>> Learn Graph Databases - Download FREE O'Reilly Book >>> "Graph Databases" is the definitive new guide to graph databases and >>> their applications. This 200-page book is written by three acclaimed >>> leaders in the field. The early access version is available now. >>> Download your free book today! http://p.sf.net/sfu/neotech_d2d_may >>> _______________________________________________ >>> Fedora-commons-users mailing list >>> [email protected] >>> https://lists.sourceforge.net/lists/listinfo/fedora-commons-users >>> >> >> >> ------------------------------------------------------------------------------ >> Learn Graph Databases - Download FREE O'Reilly Book >> "Graph Databases" is the definitive new guide to graph databases and >> their applications. This 200-page book is written by three acclaimed >> leaders in the field. The early access version is available now. >> Download your free book today! http://p.sf.net/sfu/neotech_d2d_may >> _______________________________________________ >> Fedora-commons-users mailing list >> [email protected] >> https://lists.sourceforge.net/lists/listinfo/fedora-commons-users >> >> > -------------- next part -------------- > An HTML attachment was scrubbed... > > ------------------------------ > > ------------------------------------------------------------------------------ > Learn Graph Databases - Download FREE O'Reilly Book > "Graph Databases" is the definitive new guide to graph databases and > their applications. This 200-page book is written by three acclaimed > leaders in the field. The early access version is available now. > Download your free book today! http://p.sf.net/sfu/neotech_d2d_may > > ------------------------------ > > _______________________________________________ > Fedora-commons-users mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/fedora-commons-users > > > End of Fedora-commons-users Digest, Vol 75, Issue 7 > *************************************************** ------------------------------------------------------------------------------ Learn Graph Databases - Download FREE O'Reilly Book "Graph Databases" is the definitive new guide to graph databases and their applications. This 200-page book is written by three acclaimed leaders in the field. The early access version is available now. Download your free book today! http://p.sf.net/sfu/neotech_d2d_may _______________________________________________ Fedora-commons-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/fedora-commons-users
