Hi Willy,

I was unable to reproduce this also...looks like we need more detail
on the environment where this is happening.  Although we haven't been
able to verify it yet, I figured it'd be good to put this in the
tracker:

http://fedora-commons.org/jira/browse/FCREPO-510

Can you attach your install.properties and any more detail you have on
your environment there?

Thanks,
Chris

On Thu, Jun 25, 2009 at 9:30 AM, Bill Branan<[email protected]> wrote:
> Hi Willy,
> When the first, unauthenticated, request is passed in it should be caught
> and rejected during the authorization check, since there is no available
> user. Do you happen to have your XACML policies set in such a way that would
> allow any user to perform an ingest function?
> Of course, the unauthenticated call should not be passed through in the
> first place. We're still trying to reproduce this. Could you tell us a bit
> more about your environment?
> Has anyone else seen this behavior?
> Thanks,
> Bill
>
> On Wed, Jun 24, 2009 at 8:45 PM, Willy Mene <[email protected]> wrote:
>>
>> Ok, I think I found the problem.
>> If your http client uses preemptive authorization (i.e. the Authorization
>> http header is sent with the encoded username and password even before the
>> server gives an unauthorized response) , then everything works fine.
>> However, if you client does not send this header in the initial request
>> and http challenge/response authentication comes into play, then we run into
>> this issue of attempted double object creation.  With the initial request,
>> Fedora always enters the ingest process and creates the object BEFORE the
>> authorization challenge is sent to the client.  Therefore, when the client
>> sends the authorization response, Fedora finds that the object was already
>> created and we see this error.  You can see this in the snippet of the log I
>> sent earlier.
>> Fedora 3.1 was working with non-preemptive authorization.  Did something
>> change in 3.2?
>> Willy
>>
>> On Jun 24, 2009, at 6:35 AM, Bill Branan wrote:
>>
>> Hi Willy,
>> I just tried this and didn't have any problems. I restarted the server (to
>> make sure there were no lingering sessions) then used Poster to POST to the
>> URL you indicated (different host) with some simple FOXML. I was prompted
>> for authentication by Firefox, followed by a 200 response.
>> You mentioned that Fedora appears to be attempting to create the object
>> twice. Does the first attempt to create the object occur before you submit
>> the authentication prompt? Is the object created correctly on the first
>> attempt, or is it just an empty object that happens to have the correct PID?
>>
>> Here is the FOXML I used, just for reference:
>> <?xml version="1.0" encoding="UTF-8"?>
>> <foxml:digitalObject VERSION="1.1" PID="newpid:foobar"
>> xmlns:foxml="info:fedora/fedora-system:def/foxml#"
>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
>> 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="Label"/>
>> </foxml:objectProperties>
>> </foxml:digitalObject>
>> Bill
>>
>> On Tue, Jun 23, 2009 at 5:41 PM, Willy Mene <[email protected]> wrote:
>>>
>>> I'm playing with our Fedora 3.2 instance and the REST API.  I'm using
>>> the Firefox Poster add-on to do an http POST of some simple valid
>>> FOXML to the (example) http://fedorabox:8080/fedora/objects/newpid:foobar
>>>  URI and am running into problems.
>>>
>>> The first time I attempt to do the POST, I get the error "The PID
>>> 'newpid:foobar' already exists in the registry; the object can't be re-
>>> created." even though it is a brand new object.  However, if I search
>>> Fedora for the object, I do find it was created.  When I look through
>>> the logs, I see that Fedora tries to create the object twice with this
>>> one request.
>>>
>>> If I try to POST a second object with a new pid and new FOXML, the
>>> requests succeeds without error.  Fedora only tries the ingest once.
>>>
>>> My guess is that the initial authentication handshake with the first
>>> POST causes Fedora to attempt the ingest twice.  The second POST
>>> succeeds since the browser is already authenticated, and doesn't need
>>> to go through the handshake.  I ran into this because I have some
>>> client software that authenticates with every post (since it's not a
>>> browser) and I keep running into this problem.  I did not have this
>>> issue with 3.0 or 3.1.  I have included the stacktrace error below.
>>>
>>> Has anyone else run into this?  Any help appreciated.
>>>
>>> Thanks,
>>> Willy
>>>
>>> javax.ws.rs.WebApplicationException:
>>> fedora.server.errors.ObjectExistsException: The PID 'newpid:foobar'
>>> already exists in the registry; the object can't be re-created.
>>
>
>
> ------------------------------------------------------------------------------
>
> _______________________________________________
> Fedora-commons-users mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/fedora-commons-users
>
>

------------------------------------------------------------------------------
_______________________________________________
Fedora-commons-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/fedora-commons-users

Reply via email to