March 18th, 2007

LiveJournal WSSE authentication bug

I was having a terrible time figuring out why I couldn't get at the /interface/atom URL for LiveJournal. No matter what I did, I got a 401 response code, even though I specified the required WSSE authentication credentials.

I think I figured it out. LiveJournal won't accept WSSE credentials that are built using a timestamp with a timezone offset in it. For instance, building a WSSE credential with:

2007-03-18T19:10:16-05:00

fails, but with:

2007-03-18T19:10:16Z

succeeds.

I can change my code to always use GMT timestamps, but I think this should be fixed to better accommodate other clients who may be using timestamps with non-GMT offsets.

Daniel Jalkut
Red Sweater Software

Atom GET yields blank post content

I notice that if I PUT an update to a LiveJournal post through the Atom interface, e.g. while authenticated to "marsedit" I update an entry:

PUT /interface/atom/edit/3

The result comes back 200 OK and the post is in fact updated as I specified, but an immediate GET to request the updated content yields a weird content-free entry:


<entry xmlns="http://www.w3.org/2005/Atom">
<id>urn:lj:livejournal.com:atom1:marsedit:965</id>
<author>
<email>[edited]</email>
<name>MarsEdit on LiveJournal</name>
</author>
<link rel="alternate" href="965.html" type="text/html"/>
<link rel="service.edit" href="http://www.livejournal.com/interface/atom/edit/3" type="application/x.atom+xml" title="Edit this post"/>
<issued>2007-03-18T18:53:00</issued>
<title>marsedit @ 2007-03-18T18:53:00</title>
<published>2007-03-18T22:53:33Z</published>
<updated>2007-03-19T00:33:21Z</updated>
</entry>

The workaround is to GET the entire collection again, so I can get all items including elements.

Daniel Jalkut
Red Sweater Software